Взаимодействие с облачными ресурсами провайдера 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-портом.