Ubuntu虚拟机无法连接Mac上Docker Desktop的Kubernetes集群
Docker Desktop Kubernetes跨机器连接拒绝问题解决
问题根源
不是直接复制kubeconfig文件导致的问题,核心原因是Docker Desktop默认的Kubernetes API Server仅监听本地回环地址(127.0.0.1),即使设备B能ping通设备A的局域网IP,也无法访问6443端口。另外,默认kubeconfig中的server字段指向本地域名kubernetes.docker.internal,设备B无法解析该域名,这也是连接失败的原因之一。
解决步骤
1. 调整Docker Desktop的Kubernetes监听设置
- 打开Docker Desktop,点击右上角设置图标 → 进入Kubernetes选项卡
- 点击「Edit Kubernetes yaml」(开启高级设置后可见),找到
kube-apiserver的启动参数部分,添加以下两行:- --bind-address=0.0.0.0 - --advertise-address=192.168.2.152 - 保存配置,Docker Desktop会自动重启Kubernetes集群,等待集群状态恢复正常。
2. 修改kubeconfig文件
- 在设备A上打开
~/.kube/config,找到clusters节点下的server字段,将原有值(通常是https://kubernetes.docker.internal:6443)修改为:https://192.168.2.152:6443 - 将修改后的kubeconfig文件重新复制到设备B的
~/.kube/config路径下(或覆盖原有文件)。
3. 验证连接与防火墙检查
- 在设备B上执行
kubectl get nodes,确认是否能正常获取节点信息。 - 如果仍然失败,检查设备A的防火墙设置:确保允许6443端口的入站连接(Mac上可在「系统设置→网络→防火墙」中添加Docker Desktop的允许规则)。
结论
不需要重新生成配置文件,只需调整Docker Desktop的Kubernetes监听参数和kubeconfig中的server地址即可解决连接拒绝问题。
内容的提问来源于stack exchange,提问作者Rio
相关产品推荐
相关产品推荐

