Docker桌面版-Kubernetes启动失败

69

我已经安装了Docker Desktop (版本: 2.3.0.4)并启用了Kubernetes。我部署了几个POD,一切正常工作,但自从昨天起我遇到了下面奇怪的问题:

Unable to connect to the server: dial tcp 127.0.0.1:6443: connectex: No 
connection could be made because the target machine actively refused it.

因此,我的系统上没有进行任何更改。 我正在使用Windows 10机器上的Linux容器。

我尝试了以下步骤:

  1. 重新启动了Docker桌面版
  2. 尝试了minikube和Docker桌面版
  3. 试图禁用防火墙,但由于某些权限问题,我无法关闭它。
  4. 我还重置了Kubernetes集群。

Docker Desktop Error

14个回答

145

我尝试了许多不同的更改来修复Docker桌面版Kubernetes无法启动的问题。最终对我有效的方法是...

点击故障排除图标(它是一个错误图标),然后选择清理/清除数据


5
我可以确认,直接使用 Clean/Purge Data 而不执行上述步骤,在我这里取得了惊人的效果。 - Adrian Wiik
5
清理/清除数据并重新启动整个笔记本电脑对我来说是有效的。 - Baodi Di
2
也适用于我的情况。 - joe
2
对我没有起作用。 - Mike Williamson
7
点击清除数据后,会出现一个对话框,显示三个选项以清除哪些数据?分别为 hyper-vwsl2windows containers - Ali Sherafat
显示剩余11条评论

17

最终,我找到了解决方案。

VPN导致了问题,我正在使用办公室的笔记本电脑,在重新启动后,VPN已启用并登录,因此 Kubernetes 无法工作。

禁用 VPN 后,Kubernetes 集群正常工作。

pods

希望这也能帮助其他人解决问题。


6
不能解决问题。Kubernetes应该能够在办公室/代理环境中工作。VPN影响了Kubernetes的哪些部分?VPN中哪个部分阻止了Kubernetes启动? - GaidinD
在我的情况下,由于连接中国的 Kubernetes 网站出现问题,导致 Kubernetes 启动失败。 - Rong.l

15

对我来说,只是执行“清理和净化”不够。这是我做的。

  1. 注销VPN
  2. 进入故障并执行“清理和净化数据”
  3. 也选择“恢复出厂设置”
  4. 重新启动Docker桌面版
  5. 选择“启用Kubernetes”

此时,启用Kubernetes需要等待一段时间才能完成。现在一切都很好。

$ kubectl get namespace
NAME              STATUS   AGE
default           Active   80s
kube-node-lease   Active   82s
kube-public       Active   82s
kube-system       Active   82s

15
我尝试过清除/清理数据和重置出厂设置,但都没有奏效。
我不得不从这里重置 Kubernetes 集群。 enter image description here

4

我的步骤:

  1. 重启 Docker - 没有帮助。
  2. 重置 Kubernetes - 没有帮助。
  3. 将缺失的 'wslconfig' 文件添加到 C:\Users[MY USER] - 没有帮助。
  4. 在每个步骤之间重新启动计算机 - 没有帮助。
  5. 停止使用 Wsl 重用 Wsl - 没有帮助。
  6. 卸载 Docker 并重新安装并启用 Kubernetes - 没有帮助。
  7. 从 C:\Users[MY USER] 中删除 '.kube' 文件夹并重置 Kubernetes - 这会导致 Kubernetes 尝试停止,失败后重新启动 Docker - 成功了。

第7点很重要。如果您将kube配置设置为只读,Docker桌面将无法启动Kubernetes。您必须允许对kube配置进行写操作,以使Docker桌面能够启动Kubernetes。否则,它将永远停留在“启动中”的状态,没有真正的答案。 - undefined

1

在我的情况下,企业代理服务器导致Kubernetes启动失败。将*.docker.internal添加到no_proxy主机列表中解决了这个问题。


0

我的Docker桌面版正在公司代理服务器后面运行。 我从Windows操作系统中删除了以下代理环境变量。

HTTPS_PROXY:serveraddess
HTTP_PROXY:serveraddress

我在Docker桌面版中设置了手动代理。 输入图像描述


0
在我的情况下,Kubernetes(Mac上的Docker桌面版)无法正常运行,尽管我可以管理Pods、Services等。当我打开Docker桌面版时,它会显示:

Kubernetes启动失败(红色背景)

我通过重置Docker桌面版并清理存储来解决了这个问题。

0

我遇到了类似的问题。

  • 安装Minikube

我在Windows 10上安装了Minikube,并按照以下方式运行。 开始使用kubectl 然后我为docker授予权限。

  • 检查集群信息

当我检查集群信息时,结果如下 集群信息结果

  • 尝试获取Pods

当我尝试获取Pods时,没有出现任何错误。


Minikube是一个完全不同的故事。 - mbx

0

我在更新 Docker desktop(版本 4.11.1)后也遇到了类似的问题。降级后问题得到解决。

故障排除步骤

通过运行以下命令检查是否有错误:

kubectl get events|grep node

并确保所有 pod 处于运行状态。

kubectl get pods --namespace kube-system


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接