我最近将我的Windows 10电脑上的Docker for Desktop更新到最新的Edge通道版本:2.1.1.0。不幸的是,更新后,Kubernetes无法工作,一直卡在“Kubernetes正在启动”的状态。
我已经尝试了以下方法:
- 重新启动Docker
- 重置Kubernetes集群
- 恢复出厂设置
- 重新启动机器
- 卸载并重新安装Docker
但是似乎没有起作用。有什么方法可以解决这个问题吗?
我最近将我的Windows 10电脑上的Docker for Desktop更新到最新的Edge通道版本:2.1.1.0。不幸的是,更新后,Kubernetes无法工作,一直卡在“Kubernetes正在启动”的状态。
我已经尝试了以下方法:
但是似乎没有起作用。有什么方法可以解决这个问题吗?
经过几个小时的尝试,以下是最终帮助我解决问题的步骤:
将 Docker 恢复到出厂设置并退出 Docker Desktop
删除文件夹 C:\ProgramData\DockerDesktop\pki
(在备份文件夹后进行删除)。请注意,许多人报告该文件夹位于其他位置:C:\Users\<user_name>\AppData\Local\Docker\pki
删除文件夹 ~\.kube\
(同样要备份以确保安全)
重新启动 Docker,打开 Docker 设置,进行必要的配置更改(添加代理、设置资源限制等),启用 Kubernetes 并让它启动
等待一段时间,现在 Docker 和 Kubernetes 都应该已经启动了。
当您尝试使用 kubectl 连接到 Kubernetes 时,可能会遇到另一个问题,例如
Unable to connect to the server: x509: certificate signed by unknown authority
你可以通过以下步骤解决这个问题:
https://kubernetes.docker.internal:6443
替换为 https://localhost:6443
如果你使用的是(企业)代理,在 NO_PROXY
中添加 kubernetes.docker.internal
(例如: 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 无法解析您的本地主机名并停留在该状态。
您是否在公司代理后面?如果是,请尝试切换您的代理或尝试在第一次启动 K8 时绕过它。我遇到了同样的问题,实际上这解决了我的问题而不是升级或降级。
Irshad的解决方法对我很有效。在我的情况下,pki目录位于
C:\Users\<user_name>\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的信息,对我有用的做法:
%USERPROFILE%\.kube\config
对我而言,Docker启动成功但是Kubernetes一直卡在"Starting"状态。
Irshad的解决方案也适用于我,只需删除"pki"文件夹即可。
Windows上的文件夹位置:C:\Users\\AppData\Local\Docker\pki
。
我在Windows 10上使用Docker Desktop 2.4.0时遇到了问题。
日志文件位于不同的位置-
C:\Users\\AppData\Local\Docker\log.txt
日志文件总是说出真相。 在我的情况下,我手动编辑了
C:\Users\.kube\config yaml文件
但弄乱了空格和制表符的位置。 纠正后,它就顺利启动了!
按照以下步骤解决了我的问题:
C:\Windows\System32\drivers\etc
如果您想要禁用Kubernetes,但重置按钮无效,请按以下步骤操作:
请查看日志文件:
%USERPROFILE%\AppData\Local\Docker\log.txt
在我的情况下,我发现 Kubernetes 无法重新安装,因为我已经重命名了目录 %USERPROFILE%\.kube
,以便从头开始。
但是环境变量 KUBECONFIG
仍然存在,并且引用一组不再存在的连接配置文件。
要解决此问题,我删除了环境变量,
然后通过 Docker Desktop UI 重新安装了 Kubernetes。
这将重新创建 %USERPROFILE%\.kube\config
然后我恢复了其他配置文件并重新创建了环境变量 KUBECONFIG
并将连接值进行了拼接。