解决Windows下Docker Desktop 总是 kubernetes is starting...

升级到Windows10 2004后,安装了Ubuntu-20.04子系统和Docker Desktop,在启动Kubernetes后,一直卡在kubernetes is starting...

初次操作步骤

第一次安装好Docker后什么配置都没做,直接在Kubernetes选项中勾选了Enable KubernetesShow system containers(advanced) (如下图,写文章时截的图,请忽略Kubernetes running),然后点击Apply & Restart ,然后就是无尽的等待。。。
1分钟...
5分钟...
10分钟...
30分钟...
等待ing...
20200517213654.png

终于等不及先睡了

第一次尝试解决问题

先把 docker desktop 重置到了出厂设置

删除 C:\Users\用户名\AppData\Local\Docker\pki 文件夹
删除 C:\Users\用户名\.kube 文件夹
Troubleshoot-->Reset to factory defaults

经过简单搜索,可能是docker镜像源的问题,于是修改为国内镜像加速器,如下:

{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://reg-mirror.qiniu.com"    
  ],
  "insecure-registries": [],
  "debug": true,
  "experimental": false
}

勾选 Enable Kubernetes
点击 Apply & Restart

依旧是无尽的等待...

第二次尝试解决问题

先把 docker desktop 重置到了出厂设置

删除 C:\Users\用户名\AppData\Local\Docker\pki 文件夹
删除 C:\Users\用户名\.kube 文件夹
Troubleshoot-->Reset to factory defaults

再次经过和度娘艰苦卓绝地深入探索,终于在漆黑的山洞里看到了隐约的点点亮光。
先从 https://github.com/AliyunContainerService/k8s-for-docker-desktop 克隆了最新的master分支,这个分支支持当前 docker desktop 的k8s版本 v1.16.5
以下三行命令使用PowerShell,要在Docker启动的状态下操作

git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop 
cd k8s-for-docker-desktop
.\load_images.ps1

脚本执行完毕,使用 docker images 命令可以看到 pull 的镜像们。

再次

勾选 Enable Kubernetes
点击 Apply & Restart

又一次无情的无尽等待...

最后一次尝试

先把 docker desktop 重置到了出厂设置

删除 C:\Users\用户名\AppData\Local\Docker\pki 文件夹
删除 C:\Users\用户名\.kube 文件夹
Troubleshoot-->Reset to factory defaults

喊了邻居度娘,谷哥一起帮忙,终于查到了一个issue https://github.com/docker/for-win/issues/6264#issuecomment-612575602

做了如下操作:
1、在 hosts 里添加了一行 127.0.0.1 kubernetes.docker.internal
2、又把镜像加速器修改了下,用了Azure的国内源

{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://reg-mirror.qiniu.com",
    "https://hub-mirror.c.163.com"
  ],
  "insecure-registries": [],
  "debug": true,
  "experimental": false
}

3、clone 并执行了“第二次尝试解决问题”中的 load_images.ps1 脚本

再次

勾选 Enable Kubernetes
点击 Apply & Restart

果不其然,又是一次无情的等...等了三五分钟,奇迹般的 Kubernetes 状态变成了running

但到底是因为修改了hosts,还是修改了docker镜像源才成功的我也说不准,我已无力再尝试,期待你的留言。

上一篇‡: [转]JS中浮点数精度问题

下一篇‡: 更新Visual Studio后,Xamarin Android生成报错

最近回复