Как создать внутренний балансировщик нагрузки уровня 4 в Kubernetes?

Я пытаюсь создать внутренний (без внешнего IP) балансировщик нагрузки уровня 4 в AWS — либо сетевой LB, либо классический LB — для управления внутренним трафиком вместо использования kube-прокси.

Ниже приведен мой файл манифеста — он продолжает создавать внешний LB независимо от того, как я указываю аннотации. Я пробовал это без аннотации «aws-load-balancer-type», а также без «aws-load-balancer-scheme», которая по умолчанию должна иметь значение «внутренняя». Я не уверен, что попробовать дальше. (Следующим я, вероятно, попробую слой 7 фунтов.)

      % k get svc|grep test
test-internal-lb                      LoadBalancer   10.100.253.178   a29xxx.us-west-2.elb.amazonaws.com    80:xxx/TCP,443:xxx/TCP   8s
      apiVersion: v1
kind: Service
metadata:
  name: test-internal-lb
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip
    service.beta.kubernetes.io/aws-load-balancer-scheme: internal
    service.beta.kubernetes.io/aws-load-balancer-type: nlb-ip
spec:
  type: LoadBalancer
  selector:
    app: test-app
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 8080
  - name: https
    protocol: TCP
    port: 443
    targetPort: 8080

1 ответ

РЕШЕНИЕ:

      test-app            LoadBalancer   172.20.40.154    internal-a03xxx.us-west-2.elb.amazonaws.com   80:8000/TCP   11d
      kind: Service
metadata:
  name: test-app
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-internal: “true”
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
spec:
  type: LoadBalancer
  externalTrafficPolicy: Local
  selector:
    app: test-app
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 8000
Другие вопросы по тегам