Назад | Перейти на главную страницу

Google Cloud VPC Псевдоним IP-маршрутизации через зоны

У меня есть мультикластерная / многозонная платформа k8s, работающая на Google Kubernetes Engine. Базовая сеть GCP VPC работает в режиме глобальной маршрутизации. Сервисам k8s назначаются внутренние IP-адреса (clusterIP) через подсети псевдонимов IP.

Я могу пинговать узлы из одного кластера в другой, чтобы не было проблем с правилами брандмауэра или маршрутизацией в целом, но я не могу подключиться к отдельным службам по их внутренним IP-адресам псевдонимов в кластерах.

Я могу подключаться к службам из других узлов и контейнеров в том же кластере, хотя, если я создаю экземпляр вне кластера k8s в той же зоне, я не могу подключиться.

Кажется вероятным, что диапазоны псевдонимов IP-адресов не маршрутизируются, хотя подсети отображаются в таблице маршрутизации VPC.

Есть ли способ обеспечить правильную маршрутизацию всех IP-подсетей Alias ​​по всему VPC?

Немного подробностей ...

kubectl get services --namespace production
NAME                               TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)                         AGE
elasticsearch                      LoadBalancer   10.0.64.103   xxx.xxx.xxx.xxx   9200:30182/TCP,9300:31166/TCP   1m

gcloud compute routes list
NAME                            NETWORK  DEST_RANGE     NEXT_HOP                  PRIORITY
default-route-ac89edf7c623eb22  foo      10.0.64.0/19   foo                       1000

IP-адрес clusterIP находится в указанном диапазоне подсетей, но недоступен за пределами локального кластера k8s.

Это ожидаемое поведение с вашей существующей настройкой. Я считаю, что вы переживаете ограничение псевдонимов IP, который задокументирован в этой документации GCP на "Создание кластеров VPC с использованием псевдонимов IP":

«IP-адреса кластера для внутренних служб остаются доступными только изнутри кластера. Если вы хотите получить доступ к службе Kubernetes из VPC, но извне кластера (например, из экземпляра Compute Engine), используйте внутренний балансировщик нагрузки. "

Поэтому вам следует подумать об использовании Внутренняя балансировка нагрузки чтобы иметь доступ к сервисам извне, которые работают внутри кластера.