EKS в частной подсети, балансировщик нагрузки в общедоступной подсети

Я запускаю EKS в частной подсети и поэтому не могу создать балансировщик нагрузки с выходом в Интернет, но смог создать Internal LoadBalancer.

Есть ли способ создать Loadbalancer (возможно, вручную) в общедоступной подсети и указать на модули, работающие в EKS, в частной подсети.

Я думал о создании цепочки балансировщика нагрузки, в которой внешний балансировщик нагрузки будет указывать на внутренний балансировщик нагрузки, но это тоже невозможно, поскольку IP-адрес внутреннего балансировщика нагрузки является зарезервированным IP.

Могу ли я попробовать другой способ перенаправить трафик из интернета в pod?


person R-JANA    schedule 03.01.2019    source источник
comment
Я пытаюсь получить IP-адрес мастера в EKS, если я могу получить то же самое, я могу открыть порт узла и поставить балансировщик нагрузки, указывающий на IP-адрес главного узла. Отображаемое имя DNS показывает, что мастер не является частью частной подсети.   -  person R-JANA    schedule 04.01.2019


Ответы (1)


У меня была такая же проблема, потому что я неправильно пометил подсети VPC: https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html

Мне пришлось добавить тег key: kubernetes.io/cluster/{eks-cluster-name}: shared в VPC

Затем вы можете создать LB, используя сервис с типом LoadBalancer

apiVersion: v1
kind: Service
metadata:
  name: helloworld
  labels:
    app: helloworld
spec:
  ports:
  - port: 80
    targetPort: 8080
  selector:
    app: helloworld
  type: LoadBalancer

Это может помочь при создании службы: https://blog.giantswarm.io/load-balancer-service-use-cases-on-aws/

person aovelhanegra    schedule 17.01.2019