背景

本地开发环境(Windows机器)运行K8S,当然选择wsl和docker desktop。但是网上相关的方法太多,而且docker desktop安装可能遇到一些异常,导致在安装相关环境时走了一些弯路。
本文不会介绍如何安装wsl、ubuntu和docker desktop,仅描述安装这些软件后应当以何种最优的方式进行配置,使之更有利于平时使用。

WSL Ubuntu初始化工作

wsl中安装了Ubuntu之后,您可能需要立即进行如下配置:

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的描述,这个方法比官方介绍的更简单,而且官方介绍的方法需要注意以下两点:

  1. sudo vi /usr/sbin/enter-systemd-namespace这个章节中提供的脚本有误,第10行/usr/sbin/daemonize应该进行修改成/usr/bin/daemonize
  2. 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 DesktopDocker目录再重新安装。

集成与便利化工作

在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
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐