前言介绍
未来k8s 1.24版本装将会取消使用docker
1.23版本之前的架构
kubectl -> dockershim -> dockerd -> containerd -> containerd-shim -> runc
1.24版本及之后的架构
kubectl -> containerd ->containerd-shim ->run
由于之前docker包含了containerd,所以我们不需要再部署containerd,在1.24版本之后取消了docker,所以我们在部署k8s之前,需要先部署containerd
部署containerd
前言:另外由于centos系统将不再维护中,我们这里使用的是ubantu的系统。
系统版本:Ubantu20.04
# 软件下载解压
cd /usr/local/src
wget -c https://github.com/containerd/containerd/releases/tag/v1.6.6
tar xf containerd-1.6.6-linux-amd64.tar.gz
cp bin/* /usr/bin/
# 生成配置文件并修改,新增154,155行
containerd config default > /etc/containerd/config.toml
vim /etc/containerd/config.toml
...
153 [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
154 [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
155 endpoint = ["https://9916w1ow.mirror.aliyuncs.com"]
...
# 创建启动service
cat >> /lib/systemd/system <eof
[Unit]
Description=containerd container runtime
Documentation=http://containerd.io
After=network.target local-fs.target
[Service]
ExecStartPre=/usr/sbin/modprobe overlay
ExecStart=/usr/bin/containerd
Type=notify
Delegate=yes
KillMode=process
Restart=on-failure
RestartSec=5
LimitNPROC=infinity
LimitNOFILE=infinity
TasksMax=infinity
OOMScoreAdjust=-999
[Install]
WantedBy=multi-user.target
eof
systemctl enable containerd
systemctl start containerd
部署containerd客户端工具nerdctl
wget -c https://github.com/containerd/nerdctl/releases/download/v0.22.0/nerdctl-0.22.0-linux-amd64.tar.gz
tar xf nerdctl-0.22.0-linux-amd64.tar.gz
cp nerdctl /usr/bin/
netdctl version
部署CNI 网络插件
wget -c https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgz
# 此目录为存放网络插件目录,执行容器网络指令的时候默认会来这里找插件,不可改动为别的目录
mkdir -p /opt/cni/bin
tar xf cni-plugins-linux-amd64-v1.1.1.tgz -C /opt/cni/bin/
nerdctl命令简单演示
# nerdctl和docker命令基本类似
root@yanghengtai-virtual-machine:/opt# nerdctl network ls
NETWORK ID NAME FILE
0 bridge /etc/cni/net.d/nerdctl-bridge.conflist
host
none
root@yanghengtai-virtual-machine:/opt# nerdctl ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@yanghengtai-virtual-machine:/opt#
root@yanghengtai-virtual-machine:/opt# nerdctl images
REPOSITORY TAG IMAGE ID CREATED PLATFORM SIZE BLOB SIZE