前言
因为本身主要是坐容器方面的运维工作,因此少不了一套本地K8s集群环境,去进行各种测试和练手,但是实际上,由于是集群,往往需要多个节点,因此,要么就是希望本地机器配置高一点,多搞几个虚拟机,来做测试集群,或者财大气粗的大佬们的话,请直接上云,花钱吧!什么样的集群都有,而且无论在哪里都可以用!无疑,上云是最好的,但是花钱,而用虚拟机呢,一般的笔记本配置即便够高,但是开了几个虚拟机之后,风扇就不停的响,极其影响体验!不过还好,看到wsl2出来之后,就终于有了完美的体验了,虽然性能肯定是比不上物理机的,但是只是方便自己做开发,测试和技术练手的话,那完全没问题!本文就来讲一讲,这个基本完美的解法————wsl2 + windows terminal + k8s !
说明
- windows的版本必须够高,至少大于1903,具体见下文
- Window上必须是Wsl2, 只有wsl2提供的linux才是完整的,才能跑docker容器
一,升级Win到最新(推荐)
为了后续将wsl升级到wsl2,因此对于win的要求如下:
- 对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本。
- 对于 ARM64 系统:版本 2004 或更高版本,采用 内部版本 19041 或更高版本。
- 低于 18362 的版本不支持 WSL 2。 使用 Windows Update 助手更新 Windows 版本。
备注:
如果运行的是 Windows 10 版本1903 或 1909,请在 Windows 菜单中打开“设置”,导航到“更新和安全性”,然后选择“检查更新”。 内部版本号必须是 18362.1049+ 或 18363.1049+,次要内部版本号需要高于 .1049
升级步骤
开始>>>设置>>>更新与安全>>>Windows更新>>>检查更新
二,安装Terminal和wsl
配置环境
安装wsl需要在Windows功能中开启子系统的功能,而升级到wsl2需要开启虚拟机平台的功能,
配置步骤
开始>>>控制面板>>>程序>>>启用或关闭Windows功能>>>勾选 适用于Linux的Windows子系统 和 虚拟机平台 >>>重启
如下
安装
在Windows商店中搜索wsl并安装即可,如下
本次测试安装的wsl是ubuntu 20.04
三,升级wsl到wsl2
从商店中安装wsl默认是1版本的,而1版本的支持的linux是不完整的,因此需要将wsl升级到wsl2,wsl使用虚拟机来嵌套linux内核,因此可以说是完整的linux系统
下载升级包
因为大多的windows笔记本都是x86架构,因此这里只放x86架构的下载包,如下
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
其他架构的情况,请见下文参考文档
下载后,使用管理员权限去安装即可
配置wsl2
设置安装的wsl为wsl2( 最好使用管理员权限 ),如下
打开powershell,命令如下
wsl --list --all
设置刚下载wsl为版本2
wsl --set-version Ubuntu-18.04 2
设置默认的wsl为版本2
wsl --set-default-version 2
如下
四,安装docker
需要注意的是,在wsl中使用apt install docker.io时,安装的docker默认是systemd管理的,而在wsl中仍然是无法使用systemd来管理程序,只能使用init来管理,因此安装docker的方式不同 ,命令如下
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
$ sudo service docker start
命令运行的过程中,会提示推荐使用docker desktop for window,忽略即可,如下
安装后,在wsl中运行docker命令,如下,说明docker安装ok了
五,使用kind来创建多节点的k8s
创建k8s集群的话,我们可以使用Kind工具来创建,这个工具简单翻译过来就是Kubernetes in docker,其在github上的地址如下
https://github.com/kubernetes-sigs/kind/releases
直接下载最新版本后,如下使用即可
mv kind-linux-amd64 /usr/bin/kind && chmod +x /usr/bin/kind
直接使用kind create cluster创建出来的集群是单节点,如果需要创建多节点的,需要写yaml文件,如下
cat kind-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane ## 控制平面
- role: control-plane
- role: control-plane
- role: worker ## 工作平面
- role: worker
- role: worker
## 以上是3个master和3个work节点的yaml,需要自定义,直接对应修改即可
使用如下命令创建
kind create cluster --name mycluster --config kind-config.yaml
等待创建成功后,会有提示如下
安装kubectl,如下
apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubectl
安装好后,直接kubectl get no ,即可查看到kind创建的集群
六,小技巧
Terminal直接进入root,并启动docker
- 配置免密sudo权限,如下
- 写入普通用户的登录shell中,因为下面我创建wsl时候的普通用户是my
- 如上述,即可达到,点击Windows Terminal即可进入root账户,且开机自启动docker
配置docker加速器
- 配置如下
root@DESKTOP-1RP80G5:/root # cat /etc/docker/daemon.json
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
- 重启docker
service docker restart
参考
kubernetes安装:https://developer.aliyun.com/mirror/kubernetes
docker国内加速:https://www.cnblogs.com/nhdlb/p/12567154.html
wsl升级:https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
wsl2安装docker:https://www.cnblogs.com/360linux/p/13662355.html