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

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

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

Внимание! Начиная с версии Kubernetes 1.23, для корректной работы балансировщиков нагрузки на узлы необходимо добавить аннотацию, разрешающую kube-proxy принимать подключения на внешние IP-адреса. Это необходимо, поскольку healthcheck балансировщиков нагрузки использует внешний адрес балансировщика.