【问题标题】:" Kubernetes is starting ....." forever error on windows 10“ Kubernetes 正在启动......” Windows 10 上的永远错误
【发布时间】:2019-08-17 02:53:39
【问题描述】:

我的 Windows 10 机器上有一个 kubernetes 单节点集群。由于一些错误,我不得不重新安装Docker Desktop,从那时起,kubernetes 安装失败,而 docker 安装成功。所有解决问题的尝试,例如删除.kube目录下的config文件,重新安装失败。有关详细信息,请参见附加的 pix。安装的 docker 版本是Docker version 18.09.2, build 6247962。所有的在线搜索努力都不会产生可能的解决方案。我将不胜感激指向解决方案或走动的指针。

【问题讨论】:

    标签: docker error-handling kubernetes failed-installation docker-desktop


    【解决方案1】:

    我遇到了两种错误

    1. 系统 pod 正在运行,找到标签但仍在等待标签...
    2. xxxx:EOF

    我终于按照以下项目的建议解决了这个问题, https://github.com/AliyunContainerService/k8s-for-docker-desktop/ 按照它告诉你的去做,如果不工作, 删除 ~/.kube 和 ~/Library/Group\ Containers/group.com.docker/pki 目录,然后重新启动 docker 桌面并等待 5 分钟。 Kubernetes 状态最终是running

    【讨论】:

      【解决方案2】:

      我建议您按照Nepomucen here 的建议使用命令:docker ps -a --filter name=k8s 检查正在运行的 Kubernetes 组件。

      然后,使用命令:docker logs {container id from the previous command} 检查每个组件的日志。您可能会从日志中获得一些想法。

      就我而言,它是-x509: certificate is valid for docker-for-desktop, kubernetes, kubernetes.default, kubernetes.default.svc, kubernetes.default.svc.cluster.local, host.docker.internal, 不是 vm.docker.internal

      所以,我尝试了link 中建议的解决方案,它对我有用

      【讨论】:

      • 就我而言,它没有创建任何 Docker 容器(甚至检查了系统容器)。删除 C:\ProgramData\DockerDesktop\pki 并重新启动 Docker 修复它。
      【解决方案3】:

      删除 C:\programdata\DockerDesktop 中的 pki 目录为我解决了这个问题。

      【讨论】:

      • 不幸的是,它对我来说只是第一次。错误又回来了。 pki 文件夹不存在了,所以我不能再删除它了...
      • 我没有这样的文件夹
      【解决方案4】:

      对于任何提出这个问题的人来说,对我有用的是:

      1. 停止 Docker
      2. kubernetes.docker.internal 添加到Windows 环境变量列表中,名称为NO PROXY (**)
      3. 将泊坞窗重置为默认设置
      4. 关闭再重新打开
      5. 启用 Kubernetes

      *我在 github 上按照这个问题的步骤进行操作:https://github.com/docker/for-win/issues/6627#issuecomment-637713206。你可以在那里找到更多解释,但主要是 windows 需要让 kubernetes '绕过'它的代理。

      Some clients support the no_proxy environment variable that specifies a set of domains for which the proxy should not be consulted

      **要添加 Windows 环境变量,请在 Windows 搜索中键入 environment 并打开“编辑系统环境变量”或直接从控制面板打开它。点击environment variables按钮并在system variables添加一个新的

      【讨论】:

      • 我遇到了同样的问题,并以同样的方式解决了,但在阅读这个答案之前:) 实际上遇到了这个问题,因为我为其他一些应用程序用例设置了 HTTPS_PROXY env 的手动设置。
      【解决方案5】:

      为了将来参考,解决此问题的一种解决方法可能是删除 C:/ProgramData/DockerDesktop/pki 文件夹。

      【讨论】:

      【解决方案6】:

      只需在“重置”选项卡上执行“重置 Kubernetes 集群”即可解决我的问题。

      【讨论】:

      • 非常感谢。对我来说,这确实是所需要的。然后仪表板显示它立即可用(未挂起),并且 kubectl 按预期工作。
      【解决方案7】:

      就我而言,我将 kubectl 上下文设置为 AWS EKS。

      1. 一旦我将当前的 kubectl 上下文重置为 docker kubectl config use-context docker-desktop
      2. 重新启动 Docker 桌面
      3. 使用按钮重置 Kubernetes 集群,它启动了 - 都是超级绿色

      【讨论】:

        【解决方案8】:

        我将从分析 Kubernetes 系统容器的日志开始。

        关于如何做到这一点,请参考 StackOverflow 上的this 回答。

        【讨论】:

        • 我已按照您提供的链接中的说明进行操作。不幸的是,kube-dns 图像未在此处运行,输出为:docker ps -a --filter name=k8s_kubedns_kube-dns --format "table {{.ID}}\t{{.Image}}" CONTAINER ID IMAGE
        • 您能否检查一下是否有任何与 Kubernetes 相关的容器曾经使用此 cmd 运行过:docker ps -a --filter name=k8s
        • 运行着 6 个 kubernetes 容器:kube-scheduler、kube-controller-manager、kube-apiserver、POD_etcd、POD_kube-scheduler 和 POD_kube-controller-manager。
        【解决方案9】:

        在我的例子中,系统容器没有被创建,我得到的只是从 kubernetes 返回的 EOF,此时系统容器应该被创建。

        经过调查,有.kube和config删除,pki之类的解决方案。我还调查了网络设置和公司政策、dns 等是否会产生影响。一切都是部分可行的,但没有提供解决方案。

        唯一可行的解​​决方案是卸载并安装最新的稳定版 Docker Desktop。所以,我的理解是,由于随着时间的推移,这个 docker 设置有很多升级,一些配置或部分安装造成了混乱和不可恢复的 kubernetes 设置/首次启动。

        【讨论】:

          【解决方案10】:

          我有同样的问题..

          我删除了用户主目录(C:\Users\mani\.kube)

          中的.kube文件夹

          帮我解决了问题...

          【讨论】:

            【解决方案11】:

            好吧,我终于在我的 kube 中找到了问题。

            似乎我的主机文件无效,无法重现,但您可以放松步骤:

            1. 打开命令行并尝试ping到kubernetes.docker.internal,这是docker添加到主机文件的k8s ip。

            2. 如果您无法 ping (127.0.0.1),请保存主机文件的副本 (c:\windows\system32\drivers\etc\host) 并尝试编辑/删除 docker cmets "# added by Docker Desktop" 等。

            3. 如果你得到 ping docker 可以得到配置的 ip。

            注意:在 .kube\config 中可以看到“server:”键下的 IP。

            1. 您可以在 DDfW 图像选项卡中看到服务器开始工作(您会看到图像弹出并且总大小发生变化。如果没有工作尝试重新启动 docker 到默认出厂设置重新安装等。

            【讨论】:

              【解决方案12】:

              就我而言,我必须完全卸载并重新安装适用于 Linux 的 Windows 子系统。

              所以:

              1. 卸载 Docker 桌面。 (我还删除/重命名了所有 config-data 文件夹)
              2. 卸载 WSL。 (最后一步是取消选中“打开和关闭 Windows 功能”中的“Windows Subsystem for Linux”条目)
              3. 重启电脑。
              4. 重新安装 WSL。 (包括再次重启)
              5. 重新安装 Docker 桌面。

              我可能不需要每一步,但至少在我的情况下需要重新安装 WSL。 (我重新安装了完整的 Docker Desktop,但这还不够)

              【讨论】:

                【解决方案13】:

                对于那些在C:/ProgramData/DockerDesktop 中没有找到pki 文件夹的人,你可以在这个位置找到它:

                C:\Users\<your_user_name>\AppData\Local\Docker
                

                删除它,看看它是否有效。还要确保删除 .kube 文件夹

                【讨论】:

                  【解决方案14】:

                  在我的情况下,我无法 ping Kubernetes,所以:

                  1. 在命令行中尝试ping kubernetes.docker.internal
                  2. 如果您无法 ping,您似乎也遇到了同样的问题。
                  3. 要修复它,请打开 hosts 文件 (c:\windows\system32\drivers\etc\hosts) 并在文件末尾添加一行:
                    127.0.0.1 kubernetes.docker.internal
                  4. 现在应该可以了)

                  【讨论】:

                    猜你喜欢
                    • 2022-07-13
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2015-10-29
                    • 1970-01-01
                    相关资源
                    最近更新 更多