Перенаправление портов через кластер k8s
Хорошего дня. У меня есть кластер k8s и gitlab, установленные на выделенном сервере (как типичное приложение в реальной ОС), у меня есть вход на k8s, который направляет трафик по адресу хоста в gitlab через службу externalName
нет, мне нужно предоставлять доступ к ssh, поэтому я создаю службу без селектора и соответствующей конечной точки:
apiVersion: v1
kind: Service
metadata:
name: gitlab-service-ssh
namespace: host
spec:
type: NodePort
ports:
- protocol: TCP
port: 22
nodePort: 30222
---
apiVersion: v1
kind: Endpoints
metadata:
name: gitlab-service-ssh
namespace: host
subsets:
- addresses:
- ip: 192.168.0.24
ports:
- port: 22
я могу получить доступ к ssh с узла кластера k8s черезgit clone ssh://git@git.xxxxxx:30222/XXXXX
и это работает правильно
если я попытаюсь получить доступ с любого компьютера LAN, который я получаюssh: connect to host git.xxxxx port 30222: Resource temporarily unavailable
на этом порте нет активного брандмауэра или другой службы (я пытаюсь использовать другой порт - тот же результат)
так что я не понимаю, что это моя вина.
Я использую k8s версии 1.16 на голом железе с Metallb в качестве баланса нагрузки, хост-машина под Ubuntu 18.04
1 ответ
Убедитесь, что на сервере не установлен Nginx, и по умолчанию он блокирует SSH. Ты должен
sudo ufw allow ssh
.
Также выполните:
netstat -an | select-string 30222
чтобы проверить статус. Попробуйте подключиться через IP, а не через имя хоста. Взгляните: ssh-host.