在缺省安装时,K3S默认使用containerd作为容器运行环境, 若想使用Docker环境替换containerd环境共有两种方法。
在安装时通过环境变量INSTALL_K3S_EXEC
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC=“server --docker” sh -s -或者采取直接传参
curl -sfL https://get.k3s.io | sh -s - server --docker修改K3S服务的配置文件:
vim /etc/systemd/system/multi-user.target.wants/k3s.service文件内容如下
[Unit] Description=Lightweight Kubernetes Documentation=https://k3s.io Wants=network-online.target [Install] WantedBy=multi-user.target [Service] Type=notify EnvironmentFile=/etc/systemd/system/k3s.service.env KillMode=process Delegate=yes # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=1048576 LimitNPROC=infinity LimitCORE=infinity TasksMax=infinity TimeoutStartSec=0 Restart=always RestartSec=5s ExecStartPre=-/sbin/modprobe br_netfilter ExecStartPre=-/sbin/modprobe overlay ExecStart=/usr/local/bin/k3s server ~ ~ ~ "/etc/systemd/system/multi-user.target.wants/k3s.service" 26L, 670C 26,0-1 All在这里我们需要修改ExecStart的值,将其修改为:
/usr/local/bin/k3s server --docker --no-deploy traefik之后保存退出,执行命令重新加载新的服务配置文件:
systemctl daemon-reload完成后重启K3S服务:
service k3s restart稍等数十秒,之后通过命令确认K3S集群是否就绪:
k3s kubectl get node如果得到类似如下的结果:
NAME STATUS ROLES AGE VERSION iz2zeh0l1z8k2z5qifxbknz Ready master 176m v1.18.4+k3s1则说明K3S集群启动成功。
查询节点信息
kubectl get node -o wide显示信息为
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME iz2zeh0l1z8k2z5qifxbknz Ready master 177m v1.18.4+k3s1 172.17.106.133 <none> CentOS Linux 7 (Core) 3.10.0-514.26.2.el7.x86_64 docker://19.3.12显示docker则表示切换成功。
参考博客