Wsl2+K8s+Terminal——超级爽滑Win开发体验

半日闲 2021年01月12日 69次浏览

前言

因为本身主要是坐容器方面的运维工作,因此少不了一套本地K8s集群环境,去进行各种测试和练手,但是实际上,由于是集群,往往需要多个节点,因此,要么就是希望本地机器配置高一点,多搞几个虚拟机,来做测试集群,或者财大气粗的大佬们的话,请直接上云,花钱吧!什么样的集群都有,而且无论在哪里都可以用!无疑,上云是最好的,但是花钱,而用虚拟机呢,一般的笔记本配置即便够高,但是开了几个虚拟机之后,风扇就不停的响,极其影响体验!不过还好,看到wsl2出来之后,就终于有了完美的体验了,虽然性能肯定是比不上物理机的,但是只是方便自己做开发,测试和技术练手的话,那完全没问题!本文就来讲一讲,这个基本完美的解法————wsl2 + windows terminal + k8s !

说明

  1. windows的版本必须够高,至少大于1903,具体见下文
  2. 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子系统 和 虚拟机平台 >>>重启
如下
image.png

安装

在Windows商店中搜索wsl并安装即可,如下
image.png
本次测试安装的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

如下
image.png

四,安装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,忽略即可,如下
image.png
安装后,在wsl中运行docker命令,如下,说明docker安装ok了
image.png

五,使用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

等待创建成功后,会有提示如下
image.png
安装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

  1. 配置免密sudo权限,如下

image.png

  1. 写入普通用户的登录shell中,因为下面我创建wsl时候的普通用户是my

image.png

  1. 如上述,即可达到,点击Windows Terminal即可进入root账户,且开机自启动docker

配置docker加速器

  1. 配置如下
root@DESKTOP-1RP80G5:/root # cat /etc/docker/daemon.json
{
  "registry-mirrors": [
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}
  1. 重启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