Разобрать порт 22 внешнего балансировщика нагрузки GKE k8s, не выставляя кластер

У нас есть модуль, который действует как SFTP-сервер и должен быть открыт для порта 22. Это должен быть порт 22, чтобы обеспечить плавный переход от нашей старой инфраструктуры. Этот модуль должен быть открыт снаружи, доступным для всего (т.е. 0.0.0.0/0). Порт 22 заблокирован в наших сетях GCP, за исключением определенных виртуальных машин для соответствия, и этот блок охватывает наши узлы k8s.

Мы предложили три решения, ни одно из которых мы не хотим реализовать:

  • Используя кластер в качестве целевого тега, выставьте весь кластер (слишком рискованно / соответствие)
  • Ограничьте модуль одним узлом и предоставьте только этот узел (без избыточности).
  • Создайте новый пул узлов специально для этой службы и предоставьте только этот пул узлов (с избыточностью, но дорогой)

Есть ли способ, который я не перечислил выше, в котором мы можем выставить этот pod/loadbalancer, не выставляя другие части сети?

1 ответ

Когда вы выставляете свой модуль или развертывание, вы делаете это с помощью службы. В вашем случае вы захотите использовать сервисный тип LoadBalancer, который создаст внешнюю конечную точку (внешний IP) и соответствующий GCE Network Load Balancer. Затем трафик будет перенаправлен с балансировщика нагрузки на порт узла (в диапазоне 30000), который затем будет перенаправлен на целевой порт, который в вашем случае является портом 22.

Это означает, что модуль открывает порт 22, а узел GKE (виртуальная машина GCE) открывает порт 30xxx. GKE создаст для вас подходящее правило брандмауэра.

Кроме того, если вас интересует безопасность, вы также можете фильтровать трафик по диапазонам источников.

Другие вопросы по тегам