Разобрать порт 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 создаст для вас подходящее правило брандмауэра.
Кроме того, если вас интересует безопасность, вы также можете фильтровать трафик по диапазонам источников.