环境搭建
我个人的环境是wsl2+docker-desktop(wsl2 backend)+kind。我并不推荐这套方案,因为wsl2和宿主机之间的localhost模式端口可能有冲突,docker的host网桥模式会有影响,而且wsl2的内存泄露相关的问题并没有很好的缓解。注:后续实践演示均在个人环境上。
因此我更推荐使用linux虚拟机,使用docker+kind的环境,或者docker+minikube环境。docker可以用apt/dnf/yum等直接安装。
minikube、kind是k8s的发行版,适合单机部署k8s集群,适合入门学习k8s相关的概念,相关特性请看对比minikube-vs-kind-vs-k3。简单点说,kind相比minikube还支持多cluster。
如果打算用多机部署k8s集群,请参考kubeadm。
但wsl2并非一无是处,它挂载windows宿主机文件系统在/mnt上,方便了文件传输,并且wsl2与vscode的集成也方便调试,docker-desktop自带kubectl,而且dashboard也很方便的监控容器资源消耗。
TIPs
wsl2
关于wsl2方案,两个注意点:
- 尽量不要把linux环境下运行文件或资源文件放在
/mnt上,这样会减缓wsl2的运行效率。 - 最好配置
.wslconf的内存限制,可以一定程度缓解内存泄漏。
自动补全
安装bash-completion,docker便能自动代码补全
# $1是要自动补全的命令,比如kind、kubectl。
$1 completion bash | sudo tee /etc/bash_completion.d/$1 >/dev/null 2>&1