当前位置:   article > 正文

基于k8s-for-docker-desktop解决Intel版MacOS启动DockerDesktop下Kubernetes因镜像欠缺失启动失败的问题_docker-desktop k8s 无法启动

docker-desktop k8s 无法启动

估计各方应用会慢慢搞好苹果M系列产品的支持,因为工作和学习的需要换了高点配置的18版Mac Mini,所以本文只针对Intel的MacOS产品。

1 简介

1.1 Docker Desktop

从功能上来看Docker Desktop是Docker Machine和Docker Toolbox的结合体,帮助系统安装Docker环境、Docker引擎,并进行管理。

1.2 k8s-for-docker-desktop

打开k8s-for-docker-desktop的介绍切换为英文简介就知道这是阿里为了国内本地Kubernetes能正常在Docker Desktop下启动的项目。

1.3 问题

回到标题,docker-desktop是可以为我们启动本地Kubernetes环境的,但是从官网下载下或更新后的docker-desktop会出现Kubernetes is starting,并最终启动失败,我总结了两个原因

  • docker-desktop无法正常下载本地Kubernetes所需要的docker镜像
  • docker-desktop版本与本地Kubernetes镜像版本不一致

 

2 解决方案

2.1 docker-desktop无法正常下载本地Kubernetes镜像

1. 在新的电脑下载docker的时候他的镜像源地址会是国外地址,这也是docker-desktop启动失败的主要原因,我们要修改docker的镜像源地址

  1. {
  2. "debug": true,
  3. "experimental": false,
  4. "registry-mirrors": [
  5. "http://hub-mirror.c.163.com"
  6. ]
  7. }

 

2. 启动本地Kubernetes,等待docker-desktop自动下载本地Kubernetes镜像

2.1 如果发现配置了镜像源地址后发现启动失败,可以查看一下当前docker中的镜像,目前需要启动的镜像为11个。那就是docker-desktop拉取镜像失败了,这个时候就可以使用k8s-for-docker-desktop来拉取,到达clone下来的文件夹执行

  1. kirra@KenhodeMac-mini k8s-for-docker-desktop % ./load_images.sh
  2. images.properties found.
  3. 3.7: Pulling from google_containers/pause
  4. Digest: sha256:bb6ed397957e9ca7c65ada0db5c5d1c707c9c8afc80a94acbe69f3ae76988f0c
  5. Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.7
  6. registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.7
  7. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.7
  8. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/pause@sha256:bb6ed397957e9ca7c65ada0db5c5d1c707c9c8afc80a94acbe69f3ae76988f0c
  9. v1.24.0: Pulling from google_containers/kube-controller-manager
  10. Digest: sha256:df044a154e79a18f749d3cd9d958c3edde2b6a00c815176472002b7bbf956637
  11. Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.24.0
  12. registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.24.0
  13. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.24.0
  14. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager@sha256:df044a154e79a18f749d3cd9d958c3edde2b6a00c815176472002b7bbf956637
  15. v1.24.0: Pulling from google_containers/kube-scheduler
  16. Digest: sha256:db842a7c431fd51db7e1911f6d1df27a7b6b6963ceda24852b654d2cd535b776
  17. Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.24.0
  18. registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.24.0
  19. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.24.0
  20. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler@sha256:db842a7c431fd51db7e1911f6d1df27a7b6b6963ceda24852b654d2cd535b776
  21. v1.24.0: Pulling from google_containers/kube-proxy
  22. Digest: sha256:c957d602267fa61082ab8847914b2118955d0739d592cc7b01e278513478d6a8
  23. Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.24.0
  24. registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.24.0
  25. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.24.0
  26. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy@sha256:c957d602267fa61082ab8847914b2118955d0739d592cc7b01e278513478d6a8
  27. v1.24.0: Pulling from google_containers/kube-apiserver
  28. Digest: sha256:a04522b882e919de6141b47d72393fb01226c78e7388400f966198222558c955
  29. Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.24.0
  30. registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.24.0
  31. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.24.0
  32. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver@sha256:a04522b882e919de6141b47d72393fb01226c78e7388400f966198222558c955
  33. 3.5.3-0: Pulling from google_containers/etcd
  34. Digest: sha256:13f53ed1d91e2e11aac476ee9a0269fdda6cc4874eba903efd40daf50c55eee5
  35. Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.3-0
  36. registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.3-0
  37. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.3-0
  38. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/etcd@sha256:13f53ed1d91e2e11aac476ee9a0269fdda6cc4874eba903efd40daf50c55eee5
  39. 1.8.6: Pulling from google_containers/coredns
  40. Digest: sha256:5b6ec0d6de9baaf3e92d0f66cd96a25b9edbce8716f5f15dcd1a616b3abd590e
  41. Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.8.6
  42. registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.8.6
  43. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.8.6
  44. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/coredns@sha256:5b6ec0d6de9baaf3e92d0f66cd96a25b9edbce8716f5f15dcd1a616b3abd590e
  45. v1.2.0: Pulling from google_containers/nginx-ingress-controller
  46. 8663204ce13b: Pull complete
  47. 84179402ed35: Pull complete
  48. d77f49ad4de1: Pull complete
  49. 1ccd9bf31a02: Pull complete
  50. b19121afa234: Pull complete
  51. 181c59e50a5d: Pull complete
  52. 4f4fb700ef54: Pull complete
  53. d56037635072: Pull complete
  54. bd3a69071f57: Pull complete
  55. 6a351a692218: Pull complete
  56. dcd58390a200: Pull complete
  57. a1970f0aa3ab: Pull complete
  58. e5dfb0a8ce00: Pull complete
  59. 46d2a52230bc: Pull complete
  60. f6ce04c8e75e: Pull complete
  61. Digest: sha256:d8196e3bc1e72547c5dec66d6556c0ff92a23f6d0919b206be170bc90d5f9185
  62. Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.2.0
  63. registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.2.0
  64. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.2.0
  65. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller@sha256:d8196e3bc1e72547c5dec66d6556c0ff92a23f6d0919b206be170bc90d5f9185
  66. v1.1.1: Pulling from google_containers/kube-webhook-certgen
  67. ec52731e9273: Pull complete
  68. b90aa28117d4: Pull complete
  69. Digest: sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660
  70. Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1
  71. registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1
  72. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1
  73. Untagged: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen@sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660
  74. kirra@KenhodeMac-mini k8s-for-docker-desktop % kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml
  75. The connection to the server raw.githubusercontent.com was refused - did you specify the right host or port?
  76. kirra@KenhodeMac-mini k8s-for-docker-desktop % kubectl apply -f kubernetes-dashboard.yaml
  77. namespace/kubernetes-dashboard created
  78. serviceaccount/kubernetes-dashboard created
  79. service/kubernetes-dashboard created
  80. secret/kubernetes-dashboard-certs created
  81. secret/kubernetes-dashboard-csrf created
  82. secret/kubernetes-dashboard-key-holder created
  83. configmap/kubernetes-dashboard-settings created
  84. role.rbac.authorization.k8s.io/kubernetes-dashboard created
  85. clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
  86. rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
  87. clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
  88. deployment.apps/kubernetes-dashboard created
  89. service/dashboard-metrics-scraper created
  90. deployment.apps/dashboard-metrics-scraper created

3 当发现Kubernetes为绿则证明启动成功

 

2.2 docker-desktop版本与本地Kubernetes镜像版本不一致

一般第一种解决方式基本就能解决问题,出现这个原因就是docker-desktop更新后镜像又下载失败,使用旧版k8s-for-docker-desktop配置来进行镜像更新,其根本原因就是就是k8s-for-docker-desktop的配置没有更新为新版本对应的配置。

例如我们启动docker-desktop 3.6.0版本的Kubernetes,我们需要在k8s-for-docker-desktop寻找对应的版本,切换到对应的分支,把配置复制到我们本地k8s-for-docker-desktop配置当中。

并重新执行

./load_images.sh

当然最稳健的方式还是重试clone对应分支的所有内容

3 访问与使用

访问与使用Kubernetes可以参考我此前的博文Kubernetes可视化界面Kubernetes Dashboard

参考:https://zh.m.wikipedia.org/zh/Docker

https://github.com/AliyunContainerService/k8s-for-docker-desktop 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/48468?site
推荐阅读
相关标签
  

闽ICP备14008679号