Як виконати Brownfield-деплоймент Ingress Controller для Azure Application Gateway

💡 Усі статті, обговорення, новини про DevOps — в одному місці. Приєднуйтесь до DevOps спільноти!

У цьому матеріалі розглянемо Brownfield-деплоймент Ingress Controller для Azure Application Gateway у кластері AKS. Якщо ви не знайомі з поняттями Greenfield та Brownfield деплойменту, радимо ознайомитися з частиною першою, де надано детальні пояснення обох підходів.

Що таке Brownfield-деплоймент?

У випадку Brownfield-деплойменту ми маємо:

  • Вже існуючий кластер AKS.
  • Вже створений Application Gateway.

Мета — інтегрувати існуючу інфраструктуру, включивши Ingress Controller Add-on у вже розгорнутий кластер AKS.

Крок 1: Створення ресурсної групи та кластера AKS

Якщо ви ще не маєте існуючих ресурсів, почніть із створення інфраструктури, яку надалі інтегруєте.

1. Увійдіть до Azure Portal.

2. Створіть Resource Group з ім’ям demo у регіоні Central India.

3. Створіть кластер AKS:

  • Назва: demoAKS
  • Розмір вузлів: Standard_D2s_v3
  • Кількість вузлів: зменшити (наприклад, до 1 для демонстрації)
  • Мережева модель: Azure CNI
  • Вимкнути: Monitoring (Prometheus)

Після успішної валідації — натисніть Create.

Крок 2: Деплоймент тестового застосунку

Після створення кластеру:

1. Підключіться до кластера через Azure CLI:

az aks get-credentials —resource-group demo —name demoAKS

2. Перевірте доступність:

kubectl get pods

Результат: No resources found, що очікувано.

1. Створіть простий deployment + service:

  • Тип сервісу: LoadBalancer (для публічного IP)
  • Наприклад:
apiVersion: v1
kind: Service
metadata:
name: demo-service
spec:
type: LoadBalancer
ports:
— port: 80
selector:
app: demo-app

2. Застосуйте маніфест:

kubectl apply -f demo-app.yaml

3. Дочекайтесь зовнішнього IP:

kubectl get services

4. Перевірте роботу в браузері за отриманою IP-адресою.

Крок 3: Створення Application Gateway

1. У порталі Azure створіть Application Gateway:

  • Назва: appGatewayOne
  • Tier: Standard v2 або WAF v2 (обов’язково для інтеграції з AKS)
  • Публічна IP-адреса: Standard
  • Створіть окремий subnet для Application Gateway (наприклад, appGatewaySubnet)
  • Виберіть існуючий VNet, у якому знаходиться AKS.

У реальному середовищі рекомендовано використовувати окремі VNet для AKS та App Gateway з увімкненим peering.

2. Для створення необхідно задати:

  • Тимчасовий backend pool
  • Тимчасові backend settings
  • Frontend listener
  • Routing rule

Після валідації — натисніть Create.

Крок 4: Інтеграція AKS із Application Gateway

  1. Перейдіть до свого кластеру AKS → NetworkingApplication Gateway Ingress Controller.
  2. Натисніть Enable.
  3. Виберіть Existing Application Gateway.
  4. Виберіть створений App Gateway appGatewayOne та збережіть.

Після цього Azure автоматично:

  • Розгорне Ingress Controller Pod у kube-system.
  • Встановить зв’язок між API Server та App Gateway.
  • Оновить конфігурацію backend, frontend, pools тощо.

Крок 5: Додавання ресурсу типу Ingress

1. Створіть новий YAML-файл з ресурсом Ingress, наприклад:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: demo-ingress
annotations:
kubernetes.io/ingress.class: azure/application-gateway
spec:
rules:
— http:
paths:
— path: /
pathType: Prefix
backend:
service:
name: demo-service
port:
number: 80

2. Застосуйте файл:

kubectl apply -f ingress.yaml

3. Перевірте:

kubectl get ingress

Ви побачите призначену публічну IP-адресу з Application Gateway.

Крок 6: Перевірка конфігурації App Gateway

1. У App Gateway перевірте:

  • Backend pools
  • HTTP settings
  • Listeners
  • Routing rules

Всі тимчасові значення були замінені на актуальні, отримані з Ingress ресурсу.

2. Для перевірки логів Ingress Controller:

kubectl get pods -n kube-system
kubectl logs <pod-name> -n kube-system

Ви побачите журнали з деталями: IP-конфігурація, порти, маршрути.

Висновок

Таким чином, у Brownfield-деплойменті:

  • Ви не створюєте все з нуля, а інтегруєте існуючу інфраструктуру.
  • Ingress Controller автоматично конфігурує App Gateway.
  • Можна легко масштабувати або змінювати маршрутизацію без ручного втручання в App Gateway.

Для порівняння з Greenfield-деплойментом — перегляньте першу частину нашого гайду.

👍ПодобаєтьсяСподобалось2
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі