我想使用KOPS创建一个kubernetes集群,该集群完全使用私有拓扑(所有主/从机节点都在私有子网上,API ELB是内部的)。
创建集群后-如何配置kubectl通过我的堡垒服务器使用ssh隧道?
发布于 2019-08-05 22:02:10
我找到了一种方法让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标志。
更新
由于我的评论,我发现来自Gravitational的Teleport项目,它最初是一个无需密码进行身份验证的SSH工具(您只需使用OTP登录一次,就会为您的用户提供一个有效期有限的证书,并用于向允许的服务器进行身份验证。),它也与Kubernetes兼容。
基本上,你必须:
tsh login --proxy https://yourserveripaddress:3080kubectl登录这里的神奇之处在于,远程端口将更新您的~/.kube/config文件,以便访问您的集群。
它真的很好用,你应该考虑试一试。
在您使用Chef的情况下,我已经创建了a cookbook for Teleport。
发布于 2018-09-10 17:20:53
您可以只使用VPN over SSH,这对您的kubectl是透明的,示例工具:https://github.com/sshuttle/sshuttle,它使用SSH和iptables创建VPN隧道。
要求在堡垒主机上至少安装python 2.3。
https://stackoverflow.com/questions/52253124
复制相似问题