Я нашел способ заставить 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
флага.