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

具体步骤

  1. 清理环境,卸载旧版 Docker Desktop 【可选】
  2. 安装 WSL 和 Linux
  3. 安装并设置 Docker Desktop
  4. 拉取 kubernetes 容器镜像
  5. 启动 Kubernetes

步骤1 - 清理环境【可选】

卸载旧版Docker Desktop即可 。
当然,你也可以选择把 WSL 清理一下。

步骤2 - 安装 WSL 和 Linux

参考MSDN文档:适用于 Linux 的 Windows 子系统安装指南 (Windows 10)

这里假设你没有安装过 WSL

以下为摘要步骤:

2.1 - 启用适用于 Linux 的 Windows 子系统

Windows Subsystem for Linux :适用于Linux的Windows子系统

2.2 - 下载 Linux 内核更新包

  1. 下载最新包:
    适用于 x64 计算机的 WSL2 Linux 内核更新包

  2. 运行上一步中下载的更新包。(双击以运行 - 系统将提示你提供提升的权限,选择“是”以批准此安装。)
    安装完成后,请继续执行下一步 - 在安装新的 Linux 分发时,将 WSL 2 设置为默认版本。

2.3 - 将 WSL 2 设置为默认版本

打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:

1
wsl --set-default-version 2

2.4 - 安装所选的 Linux 分发

这里以 Ubuntu 为例:

  1. 打开 Microsoft Store,并选择你偏好的 Linux 分发版。

  1. 在分发版的页面中,选择“获取(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 后再继续。

  1. 从 Docker 菜单中,选择 Settings > General (设置 > 常规)。

  2. 选中 Use WSL 2 based engine 复选框。
    如果您在支持 WSL 2 的系统上安装了Docker Desktop,则默认情况下将启用此选项。

  1. 点击 Apply & Restart (应用&重启) 保存设置

  2. Docker Desktop重新启动后,转到 Settings > Resources > WSL Integration (设置 > 资源 > WSL集成)。

  3. 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
2
kubectl get services
kubectl get services --all-namespaces

创建示例 Pod

Docker Doc pod.yaml

1
2
3
4
5
6
7
8
9
piVersion: v1
kind: Pod
metadata:
name: demo
spec:
containers:
- name: testpod
image: alpine:3.5
command: ["ping", "8.8.8.8"]
1
kubectl apply -f pod.yaml

DONE

总的来说,Docker Desktop 通过 WSL2 很好的支持了 Windows 10,能够让我们在开发环境更好进行 DEBUG 和测试等。

参考文档