繁体   English   中英

Docker for Windows 在更新到版本 2.1.1.0 Edge(或稳定版)后卡在“Kubernetes 正在启动”

[英]Docker for Windows stuck at "Kubernetes is Starting" after updating to version 2.1.1.0 Edge (or Stable)

我最近在 Windows 10 机器上将我的 Docker for Desktop 更新到了最新的 Edge 通道版本:2.1.1.0。 不幸的是,更新后,Kubernetes 不再工作,因为它总是卡在“Kubernetes 正在启动”。

到目前为止,我已经尝试过以下方法。

  • 重启 Docker
  • 重置 Kubernetes 集群
  • 恢复出厂默认设置
  • 重启机器
  • 卸载并重新安装 Docker

似乎没有任何工作。 我该如何解决?

经过数小时尝试不同的事情,这最终帮助了我:

  1. 将 Docker 恢复为出厂默认设置并退出 Docker for Desktop

  2. 删除文件夹C:\ProgramData\DockerDesktop\pki (备份它以防万一)。 请注意,许多人报告该文件夹位于其他位置: C:\Users\<user_name>\AppData\Local\Docker\pki

  3. 删除文件夹~\.kube\ (再次备份以确保安全)

  4. 再次启动 Docker,打开 Docker 设置,进行必要的配置更改(添加代理、设置资源限制等),启用 Kubernetes 并让它启动

  5. 稍等片刻,Docker 和 Kubernetes 都将启动。

当您尝试使用 kubectl 连接到 Kubernetes 时,您可能会遇到另一个问题,例如

Unable to connect to the server: x509: certificate signed by unknown authority

您可以通过以下方式解决此问题

  1. 在文本编辑器中打开 ~.kube\config
  2. https://kubernetes.docker.internal:6443替换为https://localhost:6443
  3. 再次尝试连接。

或者,如果您使用(公司)代理:在代理配置正确的情况下,将kubernetes.docker.internal添加到NO_PROXY (例如export NO_PROXY=kubernetes.docker.internal )。

如果这仍然不能解决您的问题,请查看C:\ProgramData\DockerDesktop\log\中的日志以进一步调试问题

我建议您检查您的 etc/hosts 文件是否有以下行。

127.0.0.1       docker-for-desktop
127.0.0.1       kubernetes.docker.internal

因为 docker 无法解析您的 localhost 并且它卡在该状态。

您是否支持某些公司代理? 如果是这样,请在第一次启动 K8 时尝试切换您的代理或尝试绕过它。 我有同样的问题,这实际上解决了我的问题,而不是升级或降级。

Irshad 的解决方案对我有用。 就我而言, pki dir 在
C:\Users\<用户名>\AppData\Local\Docker

我今天面临这个问题,花了几个小时试图解决这个问题。 首先是找出为什么它一直挂在启动。 您可以通过检查C:\ProgramData\DockerDesktop的日志来找到原因。 会有一些service.txt文件,打开最近修改的那个。

对我来说,问题是这样的,

[19:32:58.189][ApiProxy][Error] time="2020-01-20T19:32:58+13:00" msg="Cannot list nodes: Get https://kubernetes.docker.internal:6443/api/v1/nodes: EOF"

一旦知道了问题,我们就可以轻松解决它。 我必须删除C:\ProgramData\DockerDesktop中名为pki的文件夹(如issues/4316中所述)并重新启动 docker。

现在一切都很好。 这可能不是启动时所有挂起的原因,但检查日志肯定会有所帮助。

希望这可以帮助!

根据https://forums.docker.com/t/waiting-for-kubernetes-to-be-up-and-running/47009上的信息,什么对我有用:

  1. 将 Docker 重置为出厂设置
  2. 退出 Docker
  3. 将 KUBECONFIG 环境变量设置为 %USERPROFILE%\.kube\config
  4. 重启 Docker 并启用 Kubernetes(仍然需要几分钟才能启动)

我在 Windows 10 上遇到了 Docker Desktop 2.4.0 的问题。日志文件位于不同的位置 -

C:\Users<用户名>\AppData\Local\Docker\log.txt

日志文件总是告诉真实情况。 就我而言,我手动编辑了

C:\Users<用户名>.kube\config yaml 文件

并弄乱了空格和制表符。 在纠正它时,它开始顺利!

对我来说, docker 正在启动,而 kubernetes 被困在了Starting中。

Irshad 的解决方案也适用于我,只需删除pki文件夹。

Windows 的文件夹位置: C:\Users\<username>\AppData\Local\Docker\pki

我的问题在接下来的步骤中得到了解决:

  1. 转到C:\Windows\System32\drivers\etc
  2. 右键单击主机文件并转到属性
  3. 禁用只读模式
  4. 重新安装泊坞窗

如果您正在查看至少如何禁用 Kubernetes 和重置按钮无济于事:

  1. 点击“重置 Kubernetes 集群”
  2. 重启docker(左边的Kubernetes状态现在必须是红色的)
  3. 清除“启用 Kubernetes”复选框
  4. 重新启动泊坞窗。

浏览了上面的每个答案,这是唯一为我修复它的答案!

它包含上面的一些东西,但清理所有文件很重要,否则,它不会得到修复

1卸载docker 2在您的Windows用户文件夹中,删除以下

.kube
.docker

3 删除ProgramData中的dockerdockerDesktop

C:\Users\user\AppData\Local C:\user\raffaeler\AppData\Roaming

4 安装最新的 Docker

5 然后只激活 Kubernetes,不激活其他选项。

继续观看以下日志文​​件以了解进度。 对我来说,kubernetes 的出现花了很多时间。

%USERPROFILE%\AppData\Local\Docker\log.txt
%USERPROFILE%\AppData\Roaming\Docker\log\vm\kubelet.log
%USERPROFILE%\AppData\Roaming\Docker\log\vm\dockerd.log

检查日志文件
%USERPROFILE%\AppData\Local\Docker\log.txt

就我而言,我发现 kubernetes 不会重新安装,因为我已重命名目录%USERPROFILE%\.kube
为了从头开始。

然而,环境变量KUBECONFIG仍然设置,并且指的是一组不再存在的连接配置文件。

为了解决我删除环境变量的问题,
然后通过docker桌面ui重新安装kubernetes。
这重新创建了%USERPROFILE%\.kube\config

然后我恢复了其他配置文件并使用连接值重新创建了变量KUBECONFIG

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM