打造好用的Docker Desktop、WSL Ubuntu系统
本地开发环境(Windows机器)运行K8S,当然选择wsl和docker desktop。但是网上相关的方法太多,而且docker desktop安装可能遇到一些异常,导致在安装相关环境时走了一些弯路。本文不会介绍如何安装wsl、ubuntu和docker desktop,仅描述安装这些软件后应当以何种最优的方式进行配置,使之更有利于平时使用。
背景
本地开发环境(Windows机器)运行K8S,当然选择wsl和docker desktop。但是网上相关的方法太多,而且docker desktop安装可能遇到一些异常,导致在安装相关环境时走了一些弯路。
本文不会介绍如何安装wsl、ubuntu和docker desktop,仅描述安装这些软件后应当以何种最优的方式进行配置,使之更有利于平时使用。
WSL Ubuntu初始化工作
wsl中安装了Ubuntu之后,您可能需要立即进行如下配置:
- 将其从c盘移到其他逻辑盘中(参考https://www.cnblogs.com/hepengju/p/15839745.html)
- 更改apt源(参考下文)
- 配置systemd(参考下文)
apt源更改为国内源
CODENAME=$(cat /etc/apt/sources.list | grep " main " | head -1 | awk -F ' main ' '{print $1}' | awk '{print $NF}')
mv /etc/apt/sources.list /etc/apt/sources.list.bak
cat << __EOF__ > /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ $CODENAME main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ $CODENAME main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ $CODENAME-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ $CODENAME-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ $CODENAME-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ $CODENAME-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ $CODENAME-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ $CODENAME-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ $CODENAME-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ $CODENAME-backports main restricted universe multiverse
__EOF__
apt update -y
apt upgrade -y
systemd
参考https://blog.csdn.net/pleong/article/details/124964195的描述,这个方法比官方介绍的更简单,而且官方介绍的方法需要注意以下两点:
sudo vi /usr/sbin/enter-systemd-namespace
这个章节中提供的脚本有误,第10行/usr/sbin/daemonize
应该进行修改成/usr/bin/daemonize
nsenter -t "$SYSTEMD_PID" -a
中的-a
选项可能会遇到问题,应该改成-m -p
另外如果脚本执行错误,会导致会话进不去。因此最好就在当前窗口输入命令检查是否有异常,例如:
nsenter
Docker desktop
在国内安装docker desktop,以及在docker desktop中安装kubernetes(目前最新版本为1.24.0)均不需要搭梯子。
Docker可以配置国内源,优先用阿里云的源,例如:
{
...
"registry-mirrors": [
"https://<your id>.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn/",
"https://reg-mirror.qiniu.com/"
]
...
}
如果有异常,可以删除C:\Users\<your account>\AppData\Roaming\
目录下的Docker Desktop
或Docker
目录再重新安装。
集成与便利化工作
在Ubuntu中集成docker和k8s
WSL Ubuntu中不要再安装docker和k8s了,应当直接用Windows的。
- Docker:在
Settings -> Resources -> WSL Integration
中勾选 - K8S:在
Settings -> Kubernetes
中勾选Show system containers (advanced)
即可。
别名和命令补全
确保bash-completion已安装:
apt install -y bash-completion
添加kubectl别名并进行命令补全:
cat << __EOF__ >> /etc/bash.bashrc
alias k=kubectl
source <(kubectl completion bash)
source <(kubectl completion bash | sed s/kubectl/k/g)
__EOF__
重新进入会话即可。
kubens
curl -L https://github.com/ahmetb/kubectx/releases/download/v0.9.4/kubens -o /usr/bin/kubens
chmod +x /usr/bin/kubens
其他参考
在Ubuntu中安装K8S(不推荐)
由于上述通过docker desktop安装的方式工作良好,因此下列安装方式并不推荐。
kind(有问题)
参考https://kubernetes.io/blog/2020/05/21/wsl-docker-kubernetes-on-the-windows-desktop/#kind-kubernetes-made-easy-in-a-container安装kind
https://kubernetes.io/blog/2020/05/21/wsl-docker-kubernetes-on-the-windows-desktop/
但是目前Kind总遇到Deployment不能启动(而又无任何异常)的情况。所以不建议。
直接安装k8s
参考https://blog.csdn.net/m0_60496726/article/details/120765822
在/etc/apt/sources.list
文件中,增加一行:
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
更新软件
apt upgrade
apt update -y
遇到问题时,将第一个提示的Public key输入到下面命令中执行,然后再执行apt update -y
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <the public key>
安装kubectl kubeadm kubelet
apt-get install -y kubelet kubeadm kubectl --allow-unauthenticated
更多推荐
所有评论(0)