Kubernetes не создает интернет-балансировщик нагрузки AWS - PullRequest
0 голосов
/ 05 ноября 2019

Насколько мне известно, документация по входному контроллеру, простое создание Сервиса и Входа без специальных аннотаций должно создавать балансировщики нагрузки с выходом в Интернет, странно, это создает внутренние балансировщики нагрузки. Поэтому я добавил аннотацию service.beta.kubernetes.io/aws-load-balancer-internal: "false", которая тоже не работает. Кстати, я использую NGINX в качестве входного контроллера, в тестовом кластере в настоящее время в версии 0.8.21. Возможно, мне стоит обновить его когда-нибудь.

Вот мой простой spec-файл:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/tls-acme: "true"
    kubernetes.io/ingress.class: nginx
    service.beta.kubernetes.io/aws-load-balancer-internal: "false"
  labels:
    external: "true"
    comp: ingress-nginx
    env: develop
  name: develop-api-external-ing
  namespace: develop
spec:
  rules:
    - host: api.example.com
      http:
        paths:
          - backend:
              serviceName: api-external
              servicePort: 3000
            path: /
  tls:
    - hosts:
        - api.example.com
      secretName: api-tls
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: api
    env: develop
  name: api-external
  namespace: develop
spec:
  ports:
    - name: http
      port: 3000
      protocol: TCP
      targetPort: 3000
  selector:
    app: api
    env: develop
  sessionAffinity: None
  type: ClusterIP

Ответы [ 2 ]

1 голос
/ 05 ноября 2019

Вы не ошибаетесь, служба и вход должны создавать балансировщик нагрузки ... но вам следует взглянуть на документацию немного подробнее ...

Входу нужна служба NodePort, ваш ClusterIP,Поэтому, даже если он что-то создал, он не будет работать.

В вашем входе вы используете kubernetes.io/ingress.class: nginx, что означает, что вы хотите переопределить использование входа по умолчанию и принудительно зарегистрировать его в ingress-nginx.

Чтобы заставить его работать, измените тип вашего сервиса, удалите аннотацию класса входа.

0 голосов
/ 05 ноября 2019

Вы можете настроить NLB (балансировщик сетевой нагрузки) и указать URL-адрес для значений хоста правила входа. Вам не нужно выставлять нижележащую серверную службу как NodePort или как другой балансировщик нагрузки.

...