Кубе Ингресс и Эльб

Я использую свой (Kops) кластер кубов на AWS. Кластер находится в частной подсети. Я не могу создать внешний (с выходом в Интернет) балансировщик нагрузки, потому что мой кластер находится в приватном пространстве. Можно ли каким-то образом создать балансировщик нагрузки, обращенный к Интернету, с моим кластером, находящимся в приватном пространстве, если это не является возможным решением, как я могу представить свой сервис, работающий внутри моего куба, для внешнего мира?

Я создаю с помощью ниже аннотации для моего сервиса

    kind: Service
    metadata:
    name: helloweb
    annotations:
      service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0

Если я не использую "-internal" в аннотации, сервис переходит в состояние ожидания

     Normal   EnsuringLoadBalancer        9s (x3 over 24s)  service- 
     controller  Ensuring load balancer
     Warning  CreatingLoadBalancerFailed  8s (x3 over 24s)  service- 
     controller  Error creating load balancer (will retry): failed to 
     ensure load balancer for service default/helloweb: could not find 
     any suitable subnets for creating the ELB

Я также пробовал вход, даже вход не может создать внешний эльб. Вот мое входное определение...

    kind: Service
    apiVersion: v1
    metadata:
    name: ingress-nginx
    namespace: ingress-nginx
    labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    annotations:
    service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0


    kubectl get ing
    NAME        HOSTS                 ADDRESS   PORTS AGE                                         
    ingress-rules exampleapp1.kubexpress.cloud,exampleapp2.kubexpress.cloud   internal- 
      l0adbalancer.eu-central-1.elb.amazonaws.com   80        10d

1 ответ

Решение

Проблема была в моей конфигурации Kops. Я исправил это, создав служебную подсеть для каждой частной подсети, в которой будут находиться мои главные / рабочие узлы kube.

Другие вопросы по тегам