Настройка Cloud Nat для приватного Kubernetes кластера в Google Cloud

Cloud NAT позволяет виртуальным машинам и подам выходить в Интернет, используя общий публичный IP-адрес.
Приватный Google Kubernetes-кластер, ноды которого не имеют публичных IP-адресов используются в случае:
— с точки зрения безопасности,чтобы невозможно было подключиться к ним снаружи
— необходимо,чтобы все ноды/поды выходили в Интернет с одного(или нескольких) IP-адреса/ов(например, для добавления этих одного/нескольких IP-адресов в white-листы на удаленной стороне, к которой подключаются ноды/поды)

Cloud NAT использует NAT-gateway для управления этими соединениями. NAT-gateway зависит от региона и сети VPC. Если виртуальные машины запущены в нескольких регионах, то необходимо создавать NAT Gateway для каждого региона
Более подробная информация доступна здесь:
https://cloud.google.com/nat/docs/overview?hl=en_US

Алгоритм действий состоит из следующих шагов:
1.Создание приватного Google Kubernetes кластера
2.Создание Nat Gateway
3.Тестирование выхода в Интернет с приватного кластера

1.Создание приватного Google Kubernetes кластера из 3-х машин(по умолчанию)
Ноды кластера будут иметь только приватные IP-адреса, а master-публичный

Описание нескольких используемых опций

Для усиления безопасности значение параметра master-authorized-networks следует изменить на адрес/диапазон адресов, с которых будет разрешено подключаться к Kubernetes master-серверу(API-серверу) через HTTPS(например, с помощью утилиты kubectl)
В данном примере подключение разрешено с любого адреса
Аналогичное поведение(разрешение подключений к мастеру отовсюду) может быть достигнуто через использование опциb

, чтобы отключить какие-либо ограничения на подключения к мастеру.

– диапазон IP-адресов, который будет использоваться для master-сети. Должен иметь размер сети /28 и использоваться вместе с опцией —enable-private-nodes

Для создания приватного кластера обязательно необходимо использоваться опции

, что позволяет VPC автоматически настраивать маршрутизацию для подов

– создавать кластер без публичных IP-адресов на нодах кластера

Настройка kubectl на использование созданного кластера
В консоли Google Cloud https://console.cloud.google.com/kubernetes/list
получаем команду для автоматической настройки kubectl-утилиты на работу с созданным Kubernetes-кластером

Просмотр состояние нод кластера

 

2.Создание Nat Gateway

На вкладке NatIPAdress выбираем Manual и определяем статический IP-адрес(если он уже существует в нашем регионе) или создаем новый статический IP-адрес в том же регионе, что и созданный кластер
После нажатия кнопки Create проверяем его настройки

Просмотр виртуального роутера/Nat Gateway с командной строки

Список Nat Gateway в необходимом регионе

Детальная информация о выбранном Nat Gateway

 

3.Тестирование выхода в Интернет с пода в приватном кластере
Создадим новый деплоймент,который запустит под и зайдем в этот под для выполнения команды по проверки внешнего IP-адреса, через который pod выходит в интернет

Как видно из вывода команды, под выходит в Интернет с ip-адресом 35.205.128.59, который соответствует IP-адресу NAT Gateway

 

Источник:
https://medium.com/google-cloud/using-cloud-nat-with-gke-cluster-c82364546d9e
https://medium.com/bluekiri/setup-a-kubernetes-cluster-on-gcp-with-cloud-nat-efe6aa5780c6
https://medium.com/bluekiri/high-availability-nat-gateway-at-google-cloud-platform-with-cloud-nat-8a792b1c4cc4
https://cloud.google.com/nat/docs/overview?hl=en_US

Комментирование и размещение ссылок запрещено.

Комментарии закрыты.

Яндекс.Метрика