Как получить доступ к сервисам в кластере kubernetes, когда ssh к другим виртуальным машинам через прокси? - PullRequest
0 голосов
/ 10 декабря 2018

Подумайте, построим ли мы две виртуальные машины на голом сервере через сеть, одна из них будет master , а другая - worker ssh к мастеру и создаю кластер, используя kubeadm, который имеет три модуля и сервис с type: ClusterIP.Поэтому, когда я хочу получить доступ к кластеру, я делаю kubectl proxy в мастере.Теперь мы можем исследовать API с curl и wget в ВМ, который мы ssh к нему, как это:

$ curl http://localhost:8080/api/

Пока все хорошо!но я хочу получить доступ к услугам на моем ноутбуке?Локальный хост, который идет выше, относится к голому серверу!Как мой ноутбук может получить доступ к сервисам через прокси-сервер, если кластер размещен на другом компьютере?

Когда я делаю $ curl http://localhost:8080/api/ на своем ноутбуке, он говорит: 127.0.0.1 refused to connect, что имеет смысл!Но как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Вы также можете указать дополнительные аргументы для команды kubectl proxy, чтобы позволить вашему обратному прокси-серверу прослушивать IP-адрес не по умолчанию (127.0.0.1) - выставить за пределами

kubectl proxy --port=8001 --address='<MASTER_IP_ADDRESS>' --accept-hosts="^.*$"

Вы можетеполучите ваш главный IP-адрес, введя следующую команду: kubectl cluster-info

0 голосов
/ 10 декабря 2018

Если вы перенаправите порт 8080 при запуске sshing на master, вы можете использовать localhost на своем ноутбуке для доступа к apis в кластере.

Вы можете попробовать добавить флаг -L к вашей команде ssh:

$ ssh -L 8080:localhost:8080 your.master.host.com

Тогда с curl по localhost будет работать.

...