在wsl2 ubuntu-22.04,使用k3s官网的一键安装命令,是安装不成功的。

curl -sfL https://get.k3s.io | sh - 
# Check for Ready node, takes ~30 seconds 
sudo k3s kubectl get node 

原因,k3s的运行还依赖systemd。在执行上面命令之前,

先要在wsl2 上开启systemd

在wsl2 上新建文件:/etc/wsl.conf,添加以下内容:

[boot]
systemd=true

重启wsl2

在windows11 上执行wsl --shutdown,然后开启新的wsl,wsl
在ubuntu上执行命令,验证systemd 的开启效果。
systemctl list-unit-files --type=service

重新执行k3s 的一键安装脚本

则会看到安装成功的输出了:

➜  ~ curl -sfL https://get.k3s.io | sh -
# Check for Ready node, takes ~30 seconds
sudo k3s kubectl get node
....
[INFO]  systemd: Starting k3s
NAME            STATUS   ROLES                  AGE   VERSION
nb-hz20314960   Ready    control-plane,master   14m   v1.28.4+k3s2

免sudo 执行kubectl

更改的文件权限:
sudo chmod 644 /etc/rancher/k3s/k3s.yaml
重启k3s
sudo systemctl restart k3s
然后执行 kubectl get node 则不再需要root权限。

得到k3s的kubeconfig

接下来可以去这个路径复制 kubeconfig,添加到你操作电脑的kubeconfig里,即可跟WSL2 下的k3s进行交互了。
/etc/rancher/k3s/k3s.yaml


Systemd support is now available in WSL!