考虑我们是否通过网络在裸机服务器中构建两个VM,一个是 master ,另一个是 worker . 我 ssh
到master并使用 kubeadm
构建一个集群,它有三个pod和一个带有 type: ClusterIP
的服务 . 因此,当我想要访问集群时,我在主服务器中执行 kubectl proxy
. 现在我们可以在VM中使用 curl
和 wget
来探索API,我们 ssh
就像这样:
$ curl http://localhost:8080/api/
到现在为止还挺好!但我希望通过笔记本电脑访问这些服务?上面的localhost是指裸机服务器!当群集放在另一台机器上时,我的笔记本电脑如何通过代理访问服务?
当我在笔记本电脑上做 $ curl http://localhost:8080/api/
时,它说: 127.0.0.1 refused to connect
哪个有意义!但是这个解决方案是什么?
2 回答
您还可以为
kubectl proxy
命令指定一个额外的参数,让您的反向代理服务器监听非默认的IP地址(127.0.0.1) - 暴露在外面您可以通过发出以下命令获取主IP地址:
kubectl cluster-info
如果在sshing到master时转发端口8080,则可以使用笔记本电脑上的localhost访问群集上的api .
您可以尝试将
-L
标志添加到ssh
命令:$ ssh -L 8080:localhost:8080 your.master.host.com
然后
curl
到localhost
将起作用 .