Как настроить контроллер входа шлюза приложений Azure (AGIC) yaml

#azure #kubernetes #kubernetes-ingress #azure-aks #azure-application-gateway

Вопрос:

Мне нужна помощь в настройке AGIC. Я использую службу балансировки нагрузки для своего существующего кластера AKS, и ниже приведен пример файла yaml, который работает, и я могу получить доступ к приложению с помощью общедоступного IP-адреса LB :

 apiVersion: apps/v1
kind: Deployment
metadata:
  name: aspnetapp
  namespace: asp-test
  labels:
    app: asp-frontend
spec:
  selector:
    matchLabels:
      app: asp-frontend
  template:
    metadata:
      labels:
        app: asp-frontend
    spec:
      containers:
      - name: aspnetapp
        image: "mcr.microsoft.com/dotnet/core/samples:aspnetapp" 
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: aspnetapp-load
  namespace: asp-test
  labels:
    app: asp-frontend
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-resource-group: mc_asp-onef-dev_rg_asp_aks_eastus2
spec:
  loadBalancerIP: 10.10.10.10
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 80
  selector:
    app: asp-frontend
 

==================

Теперь я хотел бы использовать AGIC вместо LB, и я просто добавляю раздел ниже в файл, но я получаю ошибку «502 плохой шлюз». Мои сети AKS и AG просматриваются. У меня нет NSG, чтобы блокировать соединение. Развертывание прошло успешно, и модули запущены. Я могу получить доступ к нему, используя LB IP, но не используя AGIC.

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

 ---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: aspnetapp
  namespace: asp-test
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: aspnetapp-load
          servicePort: 80