在Macbook Pro M1上搭建K8s集群,然后连接开发。但因为芯片问题,导致一些服务器无法正常启动(比如mysql),因此构思了如下的开发模式:
- Mac作为开发机器,不运行k8s集群
- windows作为k8s集群工具,启动所有的集群服务
- mac通过kubectl连接到windows中的集群
- 通过telepresence拦截集群中的一些请求,从而实现集群中的服务替换,并能够通过服务名直接访问集群中的其他服务。
目前集群使用了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应该就会生效了)。
我有个疑问,你这种组网下10.61到23.130的网络能通吗?如果能通我觉得kubectl proxy 命令可能可以满足你的需求,在k8s cluster里执行kubectl 把api server的端口暴露出来。