У нас есть модуль, который действует как SFTP-сервер и должен быть доступен через порт 22. Это должен быть порт 22, чтобы обеспечить беспрепятственный переход от нашей старой инфраструктуры. Этот модуль должен быть доступен извне, доступен со всего (т.е. 0.0.0.0/0
). Порт 22 заблокирован в наших сетях GCP, за исключением определенных виртуальных машин для соответствия, и этот блок охватывает наши узлы k8s.
Мы придумали три решения, ни одно из которых мы не хотим реализовать:
Есть ли способ, который я не перечислил выше, с помощью которого мы можем раскрыть этот модуль / балансировщик нагрузки, не открывая другие части сети?
Когда вы открываете свой модуль или развертывание, вы делаете это с помощью служба. Для вашего варианта использования вы захотите использовать тип службы LoadBalancer, который создаст внешнюю конечную точку (внешний IP-адрес) и соответствующий балансировщик сетевой нагрузки GCE. Затем трафик будет перенаправлен от балансировщика нагрузки на порт узла (в диапазоне 30000), который затем будет перенаправлять трафик на целевой порт, которым в вашем случае является порт 22.
Это означает, что модуль предоставляет порт 22, а узел GKE (GCE VM) предоставляет порт 30xxx. GKE создаст для вас соответствующее правило брандмауэра.
Кроме того, если вас беспокоит безопасность, вы также можете фильтровать трафик по исходным диапазонам