Как правильно предоставить внутренний микросервис gRPC другим службам в EKS?

#amazon-web-services #microservices #grpc #amazon-eks

Вопрос:

Мы пытаемся создать микросервис gRPC на AWS EKS. Мы дошли до того, что у нас есть ALB, однако это дает нам эту ошибку: A certificate must be specified for HTTPS listeners

Вот наш сервис YAML:

 apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata:  namespace: dev  name: some-service-name  annotations:  alb.ingress.kubernetes.io/backend-protocol-version: GRPC  alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS": 80}, {"HTTPS": 50051}]'  alb.ingress.kubernetes.io/target-type: ip  kubernetes.io/ingress.class: alb  alb.ingress.kubernetes.io/scheme: internal  service.beta.kubernetes.io/aws-load-balancer-internal: "true" spec:  rules:  - http:  paths:  - backend:  serviceName: some-service-name  servicePort: 50051  path: /*  

Мы не хотим раскрывать эту услугу извне, а хотим, чтобы ее использовали только внутренние службы. Я чувствую, что для этого нам даже не нужен HTTPS, и мы можем использовать HTTP, однако похоже, что gRPC требует HTTPS.

Как правильно заставить это работать? Примеры, которые я видел, по-видимому, в основном относятся к внешним сервисам. Нужно ли нам создавать частный центр сертификации, создавать из него сертификат, а затем приписывать его прослушивателю HTTPS в настройках балансировщика нагрузки?

Спасибо!