Docker Desktop for Windows 启动 Kubernetes
记录 Docker Desktop for Windows 启动 Kubernetes 功能。
在此之前,我已经在网上看过了很多相关的文章,但经过测试,几乎都不能用。
于是仔细的阅读了 Docker Documenttation 和 MSDN WSL ,最终成功在 Windows 10 + WSL2 + Docker Desktop 的环境下启动了 Kubernetes。
以下是笔记,希望能够对你有些许帮助,或者节省些许时间。时间真的很宝贵😀。
环境
Windows 10
Edition: Windows 10 Pro
Version: 20H2
Installed on: 2020-10-22
OS build: 19042.867
Experience: Windows Feature Experience Pack 120.2212.551.0
截图1:
Docker Desktop for Windows
截图2:
如图所示,3.2.2
版本的 Docker Desktop 支持的 Kubernetes 版本为 v1.19.7
具体步骤
- 清理环境,卸载旧版 Docker Desktop 【可选】
- 安装 WSL 和 Linux
- 安装并设置 Docker Desktop
- 拉取 kubernetes 容器镜像
- 启动 Kubernetes
步骤1 - 清理环境【可选】
卸载旧版Docker Desktop即可 。
当然,你也可以选择把 WSL 清理一下。
步骤2 - 安装 WSL 和 Linux
这里假设你没有安装过 WSL
以下为摘要步骤:
2.1 - 启用适用于 Linux 的 Windows 子系统
Windows Subsystem for Linux :适用于Linux的Windows子系统
2.2 - 下载 Linux 内核更新包
运行上一步中下载的更新包。(双击以运行 - 系统将提示你提供提升的权限,选择“是”以批准此安装。)
安装完成后,请继续执行下一步 - 在安装新的 Linux 分发时,将 WSL 2 设置为默认版本。
2.3 - 将 WSL 2 设置为默认版本
打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:
1 | wsl --set-default-version 2 |
2.4 - 安装所选的 Linux 分发
这里以 Ubuntu
为例:
- 打开 Microsoft Store,并选择你偏好的 Linux 分发版。
- 在分发版的页面中,选择“获取(Get)”。
首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。
然后,需要为新的 Linux 分发版创建用户帐户和密码。
祝贺你!现已成功安装并设置了与 Windows 操作系统完全集成的 Linux 分发!
以下命令可以查看 wsl linux 分发所用的 wsl 版本,带 *
的为默认Linux分发。
1 | wsl --list --verbose |
2.5 - 安装 Windows 终端(可选)
Windows Teminal: Windows 终端
Windows 终端可启用多个选项卡(在多个 Linux 命令行、Windows 命令提示符、PowerShell 和 Azure CLI 等之间快速切换)、创建键绑定(用于打开或关闭选项卡、复制粘贴等的快捷方式键)、使用搜索功能,以及使用自定义主题(配色方案、字体样式和大小、背景图像/模糊/透明度)。
步骤3 - 安装并设置 Docker Desktop
1) 下载:
2) 安装:
如果 Windows10 已经安装了 WSL 2,Docker Desktop 会默认启用 WSL。
如果没有安装 WSL 2 ,请按照前文的描述或者MSDN文档安装 WSL2 后再继续。
从 Docker 菜单中,选择 Settings > General (设置 > 常规)。
选中 Use WSL 2 based engine 复选框。
如果您在支持 WSL 2 的系统上安装了Docker Desktop,则默认情况下将启用此选项。
点击 Apply & Restart (应用&重启) 保存设置
Docker Desktop重新启动后,转到 Settings > Resources > WSL Integration (设置 > 资源 > WSL集成)。
Docker-WSL 集成将在默认的WSL发行版上启用。
(可选)选择要启用Docker-WSL集成的任何其他发行版。
步骤4 - 拉取 kubernetes 容器镜像
Kubernetes 的镜像是在国外,由于咱们国内的网络原因,无法直接获取到这些镜像,就需要咱们自行想办法。
阿里云在 Github 的一个项目 AliyunContainerService/k8s-for-docker-desktop 帮我们解决了这个问题,所以让我们先把它 clone 下来。
因为咱们的 Docker Desktop 的 Kubernetes 版本为 v1.19.7,所以我们 clone 下来之后,需要切换到 v1.19.7 这个分支上。
接下来执行 PowerShell 脚本 load_images.ps1
:
1 | ./load_images.ps1 |
如果遇到 PowerShell 脚本的权限问题,请参考 k8s-for-docker-desktop 的 README 自行解决,或者在评论区留言。
步骤5 - 启动 kubernetes
从 Docker Desktop 菜单进入 Settings > Kubernetes。
勾选 Enable Kubernetes。
步骤 6 - 测试
测试命令:
1 | kubectl cluster-info |
1 | kubectl get namespaces |
1 | kubectl get pods --all-namespaces |
1 | kubectl get services |
创建示例 Pod
1 | piVersion: v1 |
1 | kubectl apply -f pod.yaml |
DONE
总的来说,Docker Desktop 通过 WSL2 很好的支持了 Windows 10,能够让我们在开发环境更好进行 DEBUG 和测试等。