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