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

Я хочу создать кластер kubernetes, используя KOPS, который полностью использует частную топологию (все главные / рабочие узлы находятся в частных подсетях, API ELB является внутренним).

Как только кластер создан - как мне настроить kubectl для использования ssh-туннеля через мой бастионный сервер?

Ответы [ 2 ]

0 голосов
/ 05 августа 2019

Я нашел способ заставить kubectl проходить через SSH-туннель, он не идеален, но пока я не нашел что-то лучшее, я разместил его сейчас.

Сначала создайте туннель:

ssh -f user@XX.XX.XXX.XX -L 6443:localhost:6443 -N

Затем скопируйте файл ~/.kube/config на локальный компьютер и измените кластер server, чтобы он указывал на 127.0.0.1 вместо URL-адреса или IP-адреса сервера.

Поскольку сертификаты создаются для сервера, на котором был создан главный узел, вы получите следующую ошибку:

Unable to connect to the server: x509: certificate is valid for 10.96.0.1, 10.0.0.1, not 127.0.0.1

Вы должны пройти флаг --insecure-skip-tls-verify=true:

kubectl --insecure-skip-tls-verify=true version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.3", GitCommit:"5e53fd6bc17c0dec8434817e69b04a25d8ae0ff0", GitTreeState:"clean", BuildDate:"2019-06-06T01:44:30Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.1", GitCommit:"4485c6f18cee9a5d3c3b4e523bd27972b1b53892", GitTreeState:"clean", BuildDate:"2019-07-18T09:09:21Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}

Надеюсь, это поможет, и я надеюсь найти лучший способ избежать этого --insecure-skip-tls-verify=true флага.

0 голосов
/ 10 сентября 2018

Вы можете просто использовать VPN через SSH, что будет прозрачно для вашего kubectl, пример инструмента: https://github.com/sshuttle/sshuttle, который создает VPN-туннель с использованием SSH и iptables

Требуется, чтобы на бастионном хосте был хотя бы Python 2.3.

...