我遇到了两种错误:
最终,我按照以下项目的建议解决了问题:https://github.com/AliyunContainerService/k8s-for-docker-desktop/ 按照其指示操作,如果不起作用, 删除~/.kube和~/Library/Group\ Containers/group.com.docker/pki目录,然后重新启动Docker桌面并等待约5分钟。 Kubernetes状态最终为 running 。
如果您没有在 C:/ProgramData/DockerDesktop
文件夹中找到 pki 文件夹,您可以在以下位置找到它:
C:\Users\<your_user_name>\AppData\Local\Docker
尝试删除它并查看是否有效。同时确保删除.kube文件夹。
docker ps -a --filter name=k8s
检查运行的Kubernetes组件,如Nepomucen here所推荐。docker logs {previous command中的容器ID}
检查每个组件的日志。您可能会从日志中得到一些想法。x509:证书对于docker-for-desktop、kubernetes、kubernetes.default、kubernetes.default.svc、kubernetes.default.svc.cluster.local、host.docker.internal有效,
而不是vm.docker.internal
因此,我尝试了这个 link 中提出的解决方案,并且它对我有用。C:\ProgramData\DockerDesktop\pki
并重新启动Docker即可解决问题。 - Pouladkubernetes.docker.internal
,名称为 NO PROXY
(**)*我按照此 Github Issue 中的步骤执行:https://github.com/docker/for-win/issues/6627#issuecomment-637713206。您可以在那里找到更多的解释,但主要是 Windows 需要让 Kubernetes“绕过”其代理。
一些客户端支持 no_proxy 环境变量,该变量指定了不需要查询代理的一组域名
**要添加一个 Windows 环境变量,在 Windows 搜索中键入 environment
并打开“编辑系统环境变量”,或直接从控制面板打开。点击 environment variables
按钮,然后将其添加到 system variables
。
对我而言,只需在“重置”选项卡上执行“重置Kubernetes集群”,即可解决该问题。
为了将来参考,解决此问题的一种解决方法可能是删除C:/ProgramData/DockerDesktop/pki文件夹。
~/.kube/config
文件上,以添加更多的k8s上下文。kubectl config view
$ kubectl config view
error: error loading config file "~\.kube\config": yaml: line 88: found a tab character that violates indentation
修复您看到的错误,然后重试。
ping kubernetes.docker.internal
c:\windows\system32\drivers\etc\hosts
),并在文件末尾添加一行:127.0.0.1 kubernetes.docker.internal