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