在 Win10 上启用 Docker Desktop 中的的 Kubernetes 集群

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-install-configuration

安装完成后确保 Docker Desktop 能正常启动运行,如图

docker-desktop-normal

查看 Kubernetes 版本

检查当前 Docker Desktop 所对应的版本, 在 Docker Desktop 界面中选择设置(右上角的齿轮图标),再在左边的列表中选择 “Kubernetes”, 如图

docker-desktop-k8s-configurtion

可以看到, 对应的 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"
]

如图:

docker-desktop-setup-mirrors

设置好以后,选择 “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 ${value}
docker tag ${value} ${key}
docker rmi ${value}
}

保存以后,在目录开启一个 PowerShell 窗口,执行

1
.\load_images.ps1

拉取完以后,可以使用 docker 命令查看镜像是否都拉取成功,执行

1
docker images

正常的话,系统显示

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, 如图:

win10-docker-desktop-enable-k8s

等一会儿就安装好了,如图:

win10-docker-desktop-enable-k8s-success

接下来就可以在命令行窗口使用 kubectl 发送 kubernetes 的相关命令了。

本文标题:在 Win10 上启用 Docker Desktop 中的的 Kubernetes 集群

文章作者:Morning Star

发布时间:2022年09月03日 - 13:09

最后更新:2022年09月03日 - 13:09

原始链接:https://www.mls-tech.info/microservice/k8s/k8s-enable-in-docker-on-win10/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。