轻量级Kubernetes:K3S修改docker为运行环境

    技术2022-07-27  86

    背景介绍

    在缺省安装时,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则表示切换成功。

    参考博客

    Processed: 0.019, SQL: 9