Docker Desktop 现在直接支持部署一个单机版的 Kubernetes,非常利于学习和开发等需要单机,低电脑配置的场景。 本文介绍了如何在一台PC(笔记本)上的 Win10 环境中安装 Docker Destkop 并启用 Kubernetes。
安装 Docker Desktop
因为每个 Docker Desktop 版本对应的 Kubernetes 版本是不同的,所以本文以 4.10.1 版 Docker Desktop 为例
首先下载 4.10.1 版本的 Docker Desktop
如果在官网找不到,我在网盘中共享了一份
链接:https://pan.baidu.com/s/1ja87uL0dg5BIUOS-IaluSQ
提取码:aj4q
下载好以后,双击启动安装程序
在 Configuration 页面记得选择 “Use WSL 2 instead of Hyper-V” 这个选择, 如图:
安装完成后确保 Docker Desktop 能正常启动运行,如图
查看 Kubernetes 版本
检查当前 Docker Desktop 所对应的版本, 在 Docker Desktop 界面中选择设置(右上角的齿轮图标),再在左边的列表中选择 “Kubernetes”, 如图
可以看到, 对应的 kubernetes 版本为 v1.24.1
为 Docker Desktop 设置国内镜像仓库
在 Docker Engine 页面加入以下内容,
1 2 3 4
| "registry-mirrors": [ "https://zy2z5esb.mirror.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn" ]
|
如图:
设置好以后,选择 “Apply & Restart”
拉取 Kubernetes 需要的镜像
因为 kubernetes 需要的镜像在国内拉取经常会失败,所以我们选择从国内的镜像仓库(比如阿里)镜像拉取。
Github 上有个项目就是专门用来处理镜像的国内拉取的: k8s-for-docker-desktop/images.properties at master · AliyunContainerService/k8s-for-docker-desktop · GitHub, 本文的镜像拉取部分参考了该网站。
建立一个名为 images.properties 的文件,内容如下
1 2 3 4 5 6 7 8 9
| k8s.gcr.io/pause:3.7=registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.7 k8s.gcr.io/kube-controller-manager:v1.24.1=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.24.1 k8s.gcr.io/kube-scheduler:v1.24.1=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.24.1 k8s.gcr.io/kube-proxy:v1.24.1=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.24.1 k8s.gcr.io/kube-apiserver:v1.24.1=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.24.1 k8s.gcr.io/etcd:3.5.3-0=registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.3-0 k8s.gcr.io/coredns/coredns:v1.8.6=registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.8.6 k8s.gcr.io/ingress-nginx/controller:v1.2.0=registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.2.0 k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1
|
再在相同目录下建立一个名为: load_images.ps1 的文件,内容如下:
1 2 3 4 5 6 7 8 9
| foreach($line in Get-Content .\images.properties) { $data = $line.Split('=') $key = $data[0]; $value = $data[1]; Write-Output "$key=$value" docker pull #123;value} docker tag #123;value} #123;key} docker rmi #123;value} }
|
保存以后,在目录开启一个 PowerShell 窗口,执行
拉取完以后,可以使用 docker 命令查看镜像是否都拉取成功,执行
正常的话,系统显示
1 2 3 4 5 6 7 8 9 10
| REPOSITORY TAG IMAGE ID CREATED SIZE k8s.gcr.io/kube-apiserver v1.24.1 e9f4b425f919 3 months ago 130MB k8s.gcr.io/kube-proxy v1.24.1 beb86f5d8e6c 3 months ago 110MB k8s.gcr.io/kube-controller-manager v1.24.1 b4ea7e648530 3 months ago 119MB k8s.gcr.io/kube-scheduler v1.24.1 18688a72645c 3 months ago 51MB k8s.gcr.io/ingress-nginx/controller v1.2.0 04fcc7019408 4 months ago 288MB k8s.gcr.io/etcd 3.5.3-0 aebe758cef4c 4 months ago 299MB k8s.gcr.io/pause 3.7 221177c6082a 5 months ago 711kB k8s.gcr.io/ingress-nginx/kube-webhook-certgen v1.1.1 c41e9fcadf5a 10 months ago 47.7MB k8s.gcr.io/coredns/coredns v1.8.6 a4ca41631cc7 11 months ago 46.8MB
|
开启 Kubernetes
在 Docker Desktop 页面,选择设置 -> Kubernetes -> Enable Kubernetes, 如图:
等一会儿就安装好了,如图:
接下来就可以在命令行窗口使用 kubectl 发送 kubernetes 的相关命令了。