Взаимодействие с облачными ресурсами провайдера Azure осуществляется с помощью модуля cloud-provider-azure. Он предоставляет возможность модулю управления узлами использовать ресурсы Azure при заказе узлов для описанной группы узлов.

Функционал модуля cloud-provider-azure:

  • Управляет ресурсами Azure с помощью модуля cloud-controller-manager:
    • Создает сетевые маршруты для сети PodNetwork на стороне Azure.
    • Создает LoadBalancer’ы для Service-объектов Kubernetes с типом LoadBalancer.
    • Актуализирует метаданные узлов кластера согласно описанным параметрам конфигурации и удаляет из кластера узлы, которых уже нет в Azure.
  • Заказывает диски в Azure с помощью компонента CSI storage.
  • Включает необходимый CNI (использует simple bridge).
  • Регистрируется в модуле node-manager, чтобы AzureInstanceClass’ы можно было использовать при описании NodeGroup.

Внимание! При использовании балансировщиков нагрузки исходящий трафик также идет через них. Если ни у одного балансировщика нет правил для UDP, весь исходящий UDP-трафик блокируется, вследствие чего не работают такие утилиты, как ntpdate и chrony. Для решения проблемы необходимо самостоятельно добавить load balancing rule с любым UDP-портом к уже существующему балансировщику либо в кластере создать сервис с типом LoadBalancer с любым UDP-портом.