Настройте Cloud NAT только для 1 пула узлов в кластере GKE

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


person rockwotj    schedule 11.04.2020    source источник


Ответы (2)


Вы можете проверить старое решение nat gw от Google, Например, виртуальная машина на основе экземпляра вместо Cloud NAT. Возможный способ сделать то, что вам нужно, следующий:

  1. Создайте выделенный пул узлов GKE с тегом
  2. Создайте экземпляр виртуальной машины NAT, используя приведенные выше примеры terraform или вручную
  3. Создайте маршрут по умолчанию, используя созданный экземпляр виртуальной машины NAT в качестве пункта назначения, и примените этот маршрут к экземплярам с тегом, который вы использовали для создания пула узлов GKE.

В упомянутом решении nat gw используется аналогичный метод, но он применяет маршрут ко всем пулам узлов с использованием всего тега кластера, а не отдельного тега пула узлов.

person Alex Vorona    schedule 12.04.2020

Сначала мы должны обрисовать в общих чертах, что вам нужно будет настроить.

Компоненты:

1.) Экземпляр шлюза NAT

2.) Сетевые теги и маршруты VPC

3.) Пулы узлов с сетевыми тегами.

Для 1 и 2 вам потребуется настроить другой экземпляр виртуальной машины GCE в качестве шлюза NAT аналогично тому, как показано в нашем Руководство по GCE NAT. Это должно привести к созданию экземпляра NAT и маршрута VPC, который направляет сетевой трафик от тегированных ресурсов к NAT.

Обязательно используйте теги, относящиеся к пулам узлов, которые будут использовать экземпляр в качестве NAT.

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

Узел / Nodepool с тегами -> Маршрут VPC -> Экземпляр NAT -> Интернет

Чтобы применить это ко всему пулу узлов, вам нужно будет применить теги на уровне пула узлов, чтобы он каскадировался на базовые узлы, и вы можете увидеть, как это сделать здесь. К сожалению, это невозможно для существующих пулов узлов, поэтому вам придется удалить и воссоздать существующие пулы узлов с соответствующими тегами, например, ниже:

Пулы узлов контейнера gcloud создают прокси --cluster = prod-cluster --tags = NatRouteA

person Jujosiga    schedule 15.04.2020