遇到一个很罕见的问题,使用Windows的Docker Desktop内置Kubernetes的时候,重启Docker Desktop会导致k8s cluster启动失败。在网上找了一圈,没有找到真正符合我的情况,而且大多数解决方式都要求重置cluster。
对于不想丢失数据和不想折腾的人,不妨可以看看自己是否通过netsh命令创建了端口转发。
netsh interface portproxy show all
如果输出包含k8s API server 监听的端口,基本上可以确定失败原因了。暂时删除该转发规则,再重启Docker Desktop就可以成功启动cluster了。
删除规则:
netsh interface portproxy delete v4tov4 listenport=6443 listenaddress=0.0.0.0
重新添加:
netsh interface portproxy add v4tov4 listenport=6443 listenaddress=0.0.0.0 connectport=6443 connectaddress=127.0.0.1