Docker Desktop 可以直接启用Kubernetes 1.25 了

作为目前事实上的容器编排系统标准,K8s 无疑是现代云原生应用的基石,很多同学入门可能直接就被卡到第一关,从哪去弄个 K8s 的环境,Docker Desktop 自带了Kubernetes 服务,但是在过往的经验中就是用梯子也安装不了,卡在拉取k8s 镜像的过程中 。因此阿里云有一个项目 k8s-for-docker-desktop 帮助大家拉取镜像 , 大家现在通过网络找到的相关文章都是基于这个项目进行的操作 。这个项目最新的一些k8s 版本没有 , 对于一个硬性需求的项目突然不活跃了,肯定是有原因的,这也正是我写这篇博客要和你分享的内容 。
接下来就开始我们直接在 Docker Desktop上启用Kubernetes 1.25 的过程记录 。
1、在电脑上安装好 Docker Desktop 4.12 , 所带的kubernetes 1.25,如果可以的话,推荐使用 WSL 作为宿主 , 后面运行 Docker 时的性能会更好些 。最新版的软件在安装时也是会默认使用 WSL 作为宿主的 。
安装 Docker 之前需要你在 BIOS 中开启虚拟化,同时基于你的宿主程序的选择,你还需要执行如下的操作

  1. 使用 WSL2 作为宿主:在“控制面板\所有控制面板项\程序和功能”中选择“启用或者关闭 Windows 功能” 勾选上适用于 Linux 的 Windows 子系统,然后在 Microsoft 商城中下载一个 Linux 的发行版本
  2. 使用 Hyper-V 作为宿主:在“控制面板\所有控制面板项\程序和功能”中选择“启用或者关闭 Windows 功能” 勾选上 Hyper-V(没记错的话,如果你有安装别的虚拟机软件,启用 Hyper-V 后原来的虚拟机由于冲突是没办法继续使用了)
这里要注意 , 以后你看到这篇文章的时候用的是更新的版本:
Docker Desktop 可以直接启用Kubernetes 1.25 了

文章插图
Docker Desktop 中内置的 K8s 其实是依赖于相关的镜像 , 由于这些镜像位于 google 的服务器上,因此基本上是无法正常拉取下来的 , 所以这里就需要借助镜像网站将这些 docker 镜像拉取到本地 。
因为直接从 国外 Docker Hub 拉取镜像的速度是非常慢的,所以安装完成之后我们可以配置镜像网站地址,加速 docker 镜像的拉取
找到 Docker 的设置页面,在 Docker Engine 页面,将镜像网站的地址加入到右侧配置文件的 registry-mirrors 节点下面,这里我使用的是 Docker阿里云镜像和中科大的镜像网站地址,调整完成之后重启 Dokcer 即可
Docker Desktop 可以直接启用Kubernetes 1.25 了

文章插图
{   "builder": {     "gc": {       "defaultKeepStorage": "20GB",       "enabled": true     }   },   "experimental": false,   "features": {     "buildkit": true   },   "live-restore": true,   "registry-mirrors": [     "https://docker.mirrors.ustc.edu.cn",     "https://cr.console.aliyun.com/"   ]}
镜像地址配置完成之后,做一下清理工作
Docker Desktop 可以直接启用Kubernetes 1.25 了

文章插图
打开 Docker 的设置页面,找到 Kubernetes 页面,选中 Enable Kubernetes,然后点击 Apply & Restart,这个执行过程有个几十分钟到数小时,具体看网络情况,建议在人少的早餐6-7之间来做 。
Docker Desktop 可以直接启用Kubernetes 1.25 了

文章插图
当左下角出现 K8s 的 logo,并逐步变为绿色 , 整个 K8s 的环境也就运行起来了 。此时我们就可以通过 kubectl 来操作集群,可以看到这里已经可以打印出整个“集群”的信息
Docker Desktop 可以直接启用Kubernetes 1.25 了

文章插图
上图中我们看到Docker 桌面的k8s 服务使用到了下列镜像:
【Docker Desktop 可以直接启用Kubernetes 1.25 了】C:\Users\zsygz>docker imagesREPOSITORY                                                TAG                                                                          IMAGE ID       CREATED         SIZEhubproxy.docker.internal:5000/docker/desktop-kubernetes   kubernetes-v1.25.0-cni-v1.1.1-critools-v1.24.2-cri-dockerd-v0.2.5-1-debian   2042e761d17a   6 weeks ago     363MBk8s.gcr.io/kube-apiserver                                 v1.25.0                                                                      4d2edfd10d3e   6 weeks ago     128MBk8s.gcr.io/kube-controller-manager                        v1.25.0                                                                      1a54c86c03a6   6 weeks ago     117MBk8s.gcr.io/kube-scheduler                                 v1.25.0                                                                      bef2cf311509   6 weeks ago     50.6MBk8s.gcr.io/kube-proxy                                     v1.25.0                                                                      58a9a0c6d96f   6 weeks ago     61.7MBk8s.gcr.io/pause                                          3.8                                                                          4873874c08ef   3 months ago    711kBk8s.gcr.io/etcd                                           3.5.4-0                                                                      a8a176a5d5d6   4 months ago    300MBk8s.gcr.io/coredns                                        v1.9.3                                                                       5185b96f0bec   4 months ago    48.8MBdocker/desktop-vpnkit-controller                          v2.0                                                                         8c2c38aa676e   17 months ago   21MBdocker/desktop-storage-provisioner                        v2.0                                                                         99f89471f470   17 months ago   41.9MB

推荐阅读