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