kubectl 如何访问另一台主机上的k8s集群

在Macbook Pro M1上搭建K8s集群,然后连接开发。但因为芯片问题,导致一些服务器无法正常启动(比如mysql),因此构思了如下的开发模式:

  1. Mac作为开发机器,不运行k8s集群
  2. windows作为k8s集群工具,启动所有的集群服务
  3. mac通过kubectl连接到windows中的集群
  4. 通过telepresence拦截集群中的一些请求,从而实现集群中的服务替换,并能够通过服务名直接访问集群中的其他服务。

image.png

目前集群使用了microk8s进行启动和管理。k8s集群在vmware的虚拟机ubuntu server中启动(直接在windows下使用microk8s会通过multipass创建一个ubuntu虚拟机)。

遇到了问题在于,因为Mac和k8s集群不在同一子域名下,当我修改~/.kube/config中的server为192.168.10.11:16443之后,执行kubectl get services得到错误:只能通过127.0.0.1或者192.168.23.132连接集群,无法通过192.168.10.11连接集群。

这种问题应该如何解决呢?或者有没有其他的方案可以实现这样的效果呢?(只要能够通过kubectl访问到k8s,telepresence应该就会生效了)。

阅读 2.2k
1 个回答

我有个疑问,你这种组网下10.61到23.130的网络能通吗?如果能通我觉得kubectl proxy 命令可能可以满足你的需求,在k8s cluster里执行kubectl 把api server的端口暴露出来。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进