Kubernetes 1.24 1.25 集群使用docker作为容器
背景
在新版本Kubernetes环境(1.24以及以上版本)下官方不在支持docker作为容器运行时了,若要继续使用docker 需要对docker进行配置一番。需要安装cri-docker作为Kubernetes容器
查看当前容器运行时
# 查看指定节点容器运行时kubectl describe node k8s-node05 | grep ContainerContainer Runtime Version: containerd://1.6.8# 查看所有节点容器运行时kubectl describe node | grep ContainerContainer Runtime Version: containerd://1.6.8Container Runtime Version: containerd://1.6.8Container Runtime Version: containerd://1.6.8Container Runtime Version: containerd://1.6.8Container Runtime Version: containerd://1.6.8Container Runtime Version: containerd://1.6.8Container Runtime Version: containerd://1.6.8Container Runtime Version: containerd://1.6.8
安装docker
# 更新源信息yum update# 安装必要软件yum install -y yum-utils device-mapper-persistent-data lvm2# 写入docker源信息sudo yum-config-manager \--add-repo \https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo# 更新源信息并进行安装yum updateyum install docker-ce docker-ce-cli containerd.io# 配置加速器sudo mkdir -p etc/dockersudo tee etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://ted9wxpi.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker
安装cri-docker
# 由于1.24以及更高版本不支持docker所以安装cri-docker# 下载cri-dockerwget https://ghproxy.com/https://github.com/Mirantis/cri-dockerd/releases/download/v0.2.5/cri-dockerd-0.2.5.amd64.tgz# 解压cri-dockertar xvf cri-dockerd-0.2.5.amd64.tgzcp cri-dockerd/cri-dockerd usr/bin/# 写入启动配置文件cat > usr/lib/systemd/system/cri-docker.service <<EOF[Unit]Description=CRI Interface for Docker Application Container EngineDocumentation=https://docs.mirantis.comAfter=network-online.target firewalld.service docker.serviceWants=network-online.targetRequires=cri-docker.socket[Service]Type=notifyExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7ExecReload=/bin/kill -s HUP $MAINPIDTimeoutSec=0RestartSec=2Restart=alwaysStartLimitBurst=3StartLimitInterval=60sLimitNOFILE=infinityLimitNPROC=infinityLimitCORE=infinityTasksMax=infinityDelegate=yesKillMode=process[Install]WantedBy=multi-user.targetEOF# 写入socket配置文件cat > usr/lib/systemd/system/cri-docker.socket <<EOF[Unit]Description=CRI Docker Socket for the APIPartOf=cri-docker.service[Socket]ListenStream=%t/cri-dockerd.sockSocketMode=0660SocketUser=rootSocketGroup=docker[Install]WantedBy=sockets.targetEOF# 进行启动cri-dockersystemctl daemon-reload ; systemctl enable cri-docker --now
为kubelet配置容器运行时
# 1.25 版本下 所有k8s节点配置kubelet servicecat > usr/lib/systemd/system/kubelet.service << EOF[Unit]Description=Kubernetes KubeletDocumentation=https://github.com/kubernetes/kubernetesAfter=containerd.serviceRequires=containerd.service[Service]ExecStart=/usr/local/bin/kubelet \\--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.kubeconfig \\--kubeconfig=/etc/kubernetes/kubelet.kubeconfig \\--config=/etc/kubernetes/kubelet-conf.yml \\--container-runtime-endpoint=unix:///run/cri-dockerd.sock \\--node-labels=node.kubernetes.io/node=[Install]WantedBy=multi-user.targetEOF# 1.24 版本下 所有k8s节点配置kubelet servicecat > usr/lib/systemd/system/kubelet.service << EOF[Unit]Description=Kubernetes KubeletDocumentation=https://github.com/kubernetes/kubernetesAfter=containerd.serviceRequires=containerd.service[Service]ExecStart=/usr/local/bin/kubelet \\--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.kubeconfig \\--kubeconfig=/etc/kubernetes/kubelet.kubeconfig \\--config=/etc/kubernetes/kubelet-conf.yml \\--container-runtime=remote \\--runtime-request-timeout=15m \\--container-runtime-endpoint=unix:///run/cri-dockerd.sock \\--cgroup-driver=systemd \\--node-labels=node.kubernetes.io/node= \\--feature-gates=IPv6DualStack=true[Install]WantedBy=multi-user.targetEOF# 重启systemctl daemon-reloadsystemctl restart kubeletsystemctl enable --now kubelet
验证# 查看指定节点容器运行时kubectl describe node k8s-node05 | grep ContainerContainer Runtime Version: docker://20.10.17# 查看所有节点容器运行时kubectl describe node | grep ContainerContainer Runtime Version: containerd://1.6.8Container Runtime Version: containerd://1.6.8Container Runtime Version: containerd://1.6.8Container Runtime Version: containerd://1.6.8Container Runtime Version: containerd://1.6.8Container Runtime Version: containerd://1.6.8Container Runtime Version: containerd://1.6.8Container Runtime Version: docker://20.10.17
关于
https://www.oiox.cn/
https://www.oiox.cn/index.php/start-page.html
CSDN、GitHub、知乎、开源中国、思否、掘金、简书、华为云、阿里云、腾讯云、哔哩哔哩、今日头条、新浪微博、个人博客
全网可搜《小陈运维》
文章主要发布于微信公众号
文章转载自Linux运维交流社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




