云计算大作业2 k8s的安装与踩坑
软工学硕,1021041410孙旸
作为目前事实上的容器编排系统标准,K8s 无疑是现代应用的基石。
而由于硬件的限制,最简单的方式就是直接使用 Windows or Mac 上的 Docker Desktop 内置的 K8s
1. 安装docker desktop
前往docker desktop的官网下载docker desktop并安装。
https://www.docker.com/products/docker-desktop/


2. 安装WSL2
安装完docker desktop后会显示一个报错,提示你需要安装 WSL2 kernel来启动docker。

那么转到微软官网的教程进行WSL的安装
2.1 启用适用于 Linux 的 Windows 子系统
以管理员身份打开powershell,然后输入以下命令
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
然后重启计算机,即可实现老版WSL1的下载。

2.2 检查运行WSL2的windows版本需求
我使用的是ARM64 系统,所以要求的版本为 2004 或更高版本,采用内部版本 19041 或更高版本。
若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定”。
若要更新windows版本,到“设置”菜单中的最新 Windows 版本。

2.3 启用虚拟机功能
有两种方法
第一种是以管理员身份打开powershell,然后输入以下命令
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
第二种是在 控制面板\程序\程序和功能中找到启用或关闭windows功能,给其中的虚拟机平台打上勾。
然后重启电脑,完成虚拟机功能的启动。

2.4 下载 Linux 内核更新包
在后续安装Ubuntu的过程中,出现了wsl的报错 WslRegisterDistribution failed with error: 0x800701bc

这才知道是由于没有进行这一步,通过下文的链接即可下载。
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
如果这不是最新版的话也可以前往微软的官网进行下载
https://docs.microsoft.com/zh-cn/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package
2.5 将 WSL 2 设置为默认版本
在powershell中输入
wsl --set-default-version 2
即可设置完成
以上完毕后重启一次电脑。
2.6 安装linux发行版
前往Microsoft store并搜索你所需要的的Ubuntu发行版,我这里使用的是Ubuntu18.04

点击获取后会自动下载安装。
然后打开,第一次会要求注册id和密码,和正常的linux系统没有啥不同。

至此,WSL2的配置全部结束,linux虚拟机启动完成,可以启动docker desktop并进行docker和k8s的配置
3 docker和k8s的配置
3.1 配置docker
首先打开docker desktop,进入右上角的设置中,resource->WSL INTEGRATION,找到自己所使用的wsl2虚拟机按钮,即可打开相应的docker。

在WSL2中输入docker如果出现docker的帮助指令列表说明docker安装成功。

然后可以通过docker desktop中的kubernetes来为wsl提供k8s服务。
3.2 配置k8s
docker desktop中内置了kubernetes来用于管理docker,但是由于某些众所周知的网络原因,我们无法直接通过内置的 enable kubernetes来进行配置。
首先我们要换源,将docker engine中的源换成国内的
在setting->docker engine中替换如下配置
{ "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com" ], "insecure-registries": [], "debug": false, "experimental": false, "features": { "buildkit": true } }

然后重启docker desktop。
下一步我们需要安装kubernetes的镜像,否则会因为网络的问题而卡死。
以管理员身份启动powershell,进入到自己想要保存的对应的目录中,使用git下载阿里云提供的github版本。
git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop/tree/v1.22.5
然后进入下载的目录中,使用git checkout来切换对应的版本号,这里的版本号是根据docker desktop中的k8s版本号来切换的。

所以此处我切换到了1.22.5的版本,然后执行其中的脚本,在powershell中输入
.\load_images.ps1


等待脚本运行完毕,即可认为k8s安装完毕。
然后关闭虚拟机,重启一次docker,再打开虚拟机 ,点击setting->kubernetes,点击 enable kubernetes,大概经过两分钟左右的配置,即可启用kubernetes。

接着在linux中验证k8s的指令,确认kubernetes配置完成。

至此,在windows上配置kubernetes的全过程结束。
主要参考
https://zhuanlan.zhihu.com/p/407560411
https://www.cnblogs.com/danvic712/p/enable-k8s-in-docker-desktop.html
https://docs.microsoft.com/zh-cn/windows/wsl/install-manual
https://github.com/AliyunContainerService/k8s-for-docker-desktop/tree/v1.22.5

浙公网安备 33010602011771号