首页 文章

当ssh通过代理到另一个虚拟机时,如何访问kubernetes集群中的服务?

提问于
浏览
0

考虑我们是否通过网络在裸机服务器中构建两个VM,一个是 master ,另一个是 worker . 我 ssh 到master并使用 kubeadm 构建一个集群,它有三个pod和一个带有 type: ClusterIP 的服务 . 因此,当我想要访问集群时,我在主服务器中执行 kubectl proxy . 现在我们可以在VM中使用 curlwget 来探索API,我们 ssh 就像这样:

$ curl http://localhost:8080/api/

到现在为止还挺好!但我希望通过笔记本电脑访问这些服务?上面的localhost是指裸机服务器!当群集放在另一台机器上时,我的笔记本电脑如何通过代理访问服务?

当我在笔记本电脑上做 $ curl http://localhost:8080/api/ 时,它说: 127.0.0.1 refused to connect 哪个有意义!但是这个解决方案是什么?

2 回答

  • 0

    您还可以为 kubectl proxy 命令指定一个额外的参数,让您的反向代理服务器监听非默认的IP地址(127.0.0.1) - 暴露在外面

    kubectl proxy --port=8001 --address='<MASTER_IP_ADDRESS>' --accept-hosts="^.*$"
    

    您可以通过发出以下命令获取主IP地址: kubectl cluster-info

  • 1

    如果在sshing到master时转发端口8080,则可以使用笔记本电脑上的localhost访问群集上的api .

    您可以尝试将 -L 标志添加到 ssh 命令:

    $ ssh -L 8080:localhost:8080 your.master.host.com

    然后 curllocalhost 将起作用 .

相关问题