Почему Kubernetes (AWS EKS) регистрирует всех работников в балансировщике нагрузки? - PullRequest
0 голосов
/ 02 марта 2019

Я хочу знать, является ли это поведением по умолчанию или что-то не так с моими настройками.

У меня 150 рабочих, работающих на kubernetes.

Я сделал набор рабочих kubernetes (10 рабочих), выполняющих только определенное развертывание, используя nodeSelector, я создал сервис (type = LoadBalancer) для него, когда Балансировщик нагрузки был создан, все 150 рабочих Kubernetes былизарегистрирован на балансировщике нагрузки, хотя я ожидал увидеть только этот набор работников (10 работников) этого развертывания / службы.

Он вел себя так же с alb-ingress-controller и AWS NLB

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
  - port: 8080
  type: LoadBalancer

и развертывание

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  selector:
    matchLabels:
      app: my-app
  replicas: 10
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: master-api
        image: private/my-app:prod
        resources:
          requests:
            memory: 8000Mi
        ports:
        - containerPort: 8080
      nodeSelector:
        role: api 

Я уже был помечен 10 рабочими узлами с меткой role=api 10 запускают только модули этого развертывания, и ни один другой работник не использует эту службу, я тожеиметь другой сервис или контейнер, использующий порт 8080

1 Ответ

0 голосов
/ 02 марта 2019

Таким образом, контроллер ALB фактически не проверяет ваши метки и т. Д. Он просто смотрит на метки в вашей подсети.Итак, если ваши рабочие узлы работают внутри подсети с тегом kubernetes.io/role/alb-ingress или чем-то подобным, все ваши рабочие узлы из него будут добавлены в балансировщик нагрузки.

Я полагаю, что это часть автоматическоговещь открытия документы

...