Не удается получить доступ к службе kubernetes типа LoadBalancer в AKS

#azure #kubernetes #yaml #azure-aks #azure-load-balancer

#azure #kubernetes #yaml #azure-aks #azure-балансировщик нагрузки

Вопрос:

Я создаю обычный ванильный кластер AKS с реестром контейнеров ACR и развертываю фиктивную службу, что я делал несколько раз раньше и что должно работать, но это не так — служба развертывается без ошибок, я вижу, что модуль и служба активны, порты, похоже, совпадают — но я не могу связаться с приложением, запущенным в модуле.

Вот мой файл YAML:

 apiVersion: v1
kind: Service
metadata:
  name: dummyapp-prep
spec:
  selector:
    app: dummyapp-prep
  ports:
    - protocol: TCP
      port: 80
  type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: dummyapp-prep
spec:
  selector:
    matchLabels:
      run: dummyapp-prep
  replicas: 1
  template:
    metadata:
      labels:
        run: dummyapp-prep
    spec:
      containers:
      - name: dummyapp-prep
        image: dummyappregistry.azurecr.io/dummyappregistry.azurecr.io/dummyapp-prep:dummyapp-prep-18
        ports:
        - containerPort: 80
      imagePullSecrets:
      - name: secret
  

Все развертывается нормально — я вижу службу, и она получает внешний IP:

 kubectl get services
NAME            TYPE           CLUSTER-IP   EXTERNAL-IP     PORT(S)        AGE
dummyapp-prep   LoadBalancer   10.0.230.4   52.149.106.85   80:32708/TCP   4m24s
kubernetes      ClusterIP      10.0.0.1     <none>          443/TCP        26h
  

Модуль в порядке, я подключаюсь к нему и сворачиваю приложение на localhost: 80. Тем не менее, просмотр http://52.149.106.85:80 тайм-ауты

Я проверяю Azure Load Balancer — IP зарегистрирован.

Что еще может быть не так?

Ответ №1:

У вас применена неправильная метка. Служба ищет, app: dummyapp-prep пока модуль и развертывание есть run: dummyapp-prep . Обратите внимание на run vs app названия меток.

Вы также можете проверить, привязана ли служба, проверив объект конечной точки, созданный для вас сервером API, выполнив kubectl describe endpoints dummyapp-prep . Если в Subsets разделе не указаны IP-адреса модулей, это будет означать, что служба не может найти модули.