Dor*_*ron 5 ssh-tunnel kubernetes kubectl kops
我想使用完全使用私有拓扑的KOPS创建一个kubernetes集群(所有主节点/工作节点都在私有子网中,API ELB是内部的)。
创建集群后,如何配置kubectl通过堡垒服务器使用ssh隧道?
我找到了一种kubectl通过 SSH 隧道运行的方法,这并不理想,但在找到更好的方法之前,我现在发布了它。
首先创建隧道:
ssh -f user@XX.XX.XXX.XX -L 6443:localhost:6443 -N
Run Code Online (Sandbox Code Playgroud)
然后复制~/.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
Run Code Online (Sandbox Code Playgroud)
你必须通过--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"}
Run Code Online (Sandbox Code Playgroud)
我希望这会有所帮助,并且我希望找到一种更好的方法来避免此--insecure-skip-tls-verify=true标志。
自从我发表评论以来,我发现了来自Gravitational的Teleport项目,它最初是一个无需密码即可进行身份验证的 SSH 工具(您使用OTP登录一次,并且提供了一个对您的用户而言有效期有限的证书,并用于验证允许的服务器。),也与 Kubernetes 兼容。
基本上你必须:
tsh login --proxy https://yourserveripaddress:3080kubectl访问您的集群。这里的神奇之处在于 Teleport 将更新您的~/.kube/config文件以访问您的集群。
它真的很好用,你应该考虑试一试。
如果您使用的是Chef,我已经为 Teleport制作了一本食谱。
您可以只使用基于 SSH 的 VPN,这对您的 kubectl 来说是透明的,示例工具: https: //github.com/sshuttle/sshuttle,它使用 SSH 和 iptables 创建 VPN 隧道
要求是堡垒主机上至少有 python 2.3。
| 归档时间: |
|
| 查看次数: |
2352 次 |
| 最近记录: |