Как подключить GKE к внешней базе данных, которая работает на виртуальной машине другого проекта?

# #kubernetes #google-cloud-platform #google-kubernetes-engine #gke-networking

Вопрос:

У меня есть GKE с общедоступными узлами(узлы имеют свой внешний IP-адрес), я хочу подключиться к базе данных MySQL, которая работает внутри виртуальной машины в другом проекте. Я попытался подключиться к балансировщику нагрузки, но время его работы истекло. Я попытался связаться с cloud NAT, но все еще не могу установить соединение.

Тем не менее, я могу подключиться, если внесу в белый список точный внешний IP-адрес узла, на котором запущен модуль (с которого я хочу подключиться к базе данных). Но я не могу добавить все внешние IP-адреса узлов в брандмауэр, так как у него много узлов.

Как создать единый внешний IP-адрес, который я могу использовать для включения в белый список, чтобы я мог подключиться к виртуальной машине из общедоступного кластера GKE?

Ответ №1:

Вы должны установить шлюз NAT перед всеми виртуальными машинами или узлами, на которых работает кластер GKE.

Таким образом, весь исходящий трафик поступает из одной выходной точки.

Вы можете проверить : https://registry.terraform.io/modules/GoogleCloudPlatform/nat-gateway/google/latest/examples/gke-nat-gateway

вы можете напрямую применить его, и ваш GKE будет работать за NAT, и весь трафик из модуля будет выходить из одной точки.

чтобы проверить, работает выход или нет

вы можете exec войти в модуль и отправить curl ifconfig.me запрос, в ответ вы получите свой внешний IP-адрес.

Попробуйте из модулей, запланированных на разных узлах.

Как только все будет установлено, вы можете внести IP-адрес NAT в белый список в базе данных.