在K8S集群部署容器運行時:Containerd

      網友投稿 1357 2025-03-31

      一、Containerd簡介


      containerd?實現了 kubernetes 的 Container Runtime Interface (CRI) 接口,提供容器運行時核心功能,如鏡像管理、容器管理等,相比 dockerd 更加簡單、健壯和可移植。

      而且由于kubernetes官方社區在發布的v1.20版本中聲明將棄用 Dockershim,即 Docker 容器運行時接口(CRI),這意味著不再支持 Docker,并將在后續版本中刪除。

      二、Containerd部署

      1、下載分發二進制文件

      一、Containerd簡介

      containerd?實現了 kubernetes 的 Container Runtime Interface (CRI) 接口,提供容器運行時核心功能,如鏡像管理、容器管理等,相比 dockerd 更加簡單、健壯和可移植。

      而且由于kubernetes官方社區在發布的v1.20版本中聲明將棄用 Dockershim,即 Docker 容器運行時接口(CRI),這意味著不再支持 Docker,并將在后續版本中刪除。

      二、Containerd部署

      1、下載分發二進制文件

      所需組件-:下載最新的二進制包

      https://github.com/kubernetes-sigs/cri-tools/releases/

      https://github.com/opencontainers/runc/releases/

      https://github.com/containernetworking/plugins/releases/

      https://github.com/containerd/containerd/releases/

      如果下載太慢,那么下載到本地電腦然后上傳至服務器

      [root@k8s-master1 ~]# mkdir -p /opt/k8s/work/

      在K8S集群中部署容器運行時:Containerd

      [root@k8s-master1 ~]# cd /opt/k8s/work/

      [root@k8s-master1 work]# wget https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.19.0/crictl-v1.19.0-linux-amd64.tar.gz \

      https://github.com/opencontainers/runc/releases/download/v1.0.0-rc92/runc.amd64 \

      https://github.com/containernetworking/plugins/releases/download/v0.9.0/cni-plugins-linux-amd64-v0.9.0.tgz \

      https://github.com/containerd/containerd/releases/download/v1.4.3/containerd-1.4.3-linux-amd64.tar.gz

      [root@k8s-master1 work]# mkdir containerd

      [root@k8s-master1 work]# tar -xvf containerd-1.4.3-linux-amd64.tar.gz -C containerd

      [root@k8s-master1 work]# tar -xvf crictl-v1.19.0-linux-amd64.tar.gz

      [root@k8s-master1 work]# mkdir cni-plugins

      [root@k8s-master1 work]# tar -xvf cni-plugins-linux-amd64-v0.9.0.tgz -C cni-plugins

      [root@k8s-master1 work]# mv runc.amd64 runc

      2、分發二進制程序

      將程序包分發給Worker節點

      NODE_IPS變量可以在profile中定義worker節點的IP地址數組

      [root@k8s-master1 work]# for node_ip in ${NODE_IPS[@]}

      do

      echo ">>> ${node_ip}"

      ssh root@${node_ip} "mkdir -p /opt/k8s/bin"

      scp containerd/bin/* crictl cni-plugins/* runc root@${node_ip}:/opt/k8s/bin

      ssh root@${node_ip} "chmod a+x /opt/k8s/bin/* && mkdir -p /etc/cni/net.d"

      done

      3、創建和分發 containerd 配置文件

      [root@k8s-master1 work]# cat << EOF | sudo tee containerd-config.toml

      version = 2

      root = "/data/k8s/containerd/root"

      state = "/data/k8s/containerd/state"

      [plugins]

      [plugins."io.containerd.grpc.v1.cri"]

      sandbox_image = "registry.cn-hangzhou.aliyuncs.com/hu279318344/pause-amd64:3.1"

      [plugins."io.containerd.grpc.v1.cri".cni]

      bin_dir = "/opt/k8s/bin"

      conf_dir = "/etc/cni/net.d"

      [plugins."io.containerd.runtime.v1.linux"]

      shim = "containerd-shim"

      runtime = "runc"

      runtime_root = ""

      no_shim = false

      shim_debug = false

      EOF

      分發配置文件至集群各個worker節點

      NODE_IPS變量我是在/etc/profile中定義的各個Worker節點IP數組

      CONTAINERD_DIR同樣也是在/etc/profile中定義的,這里我定義的路徑為/data/k8s/containerd

      [root@k8s-master1 work]# for node_ip in ${NODE_IPS[@]}

      do

      echo ">>> ${node_ip}"

      ssh root@${node_ip} "mkdir -p /etc/containerd/ ${CONTAINERD_DIR}/{root,state}"

      scp containerd-config.toml root@${node_ip}:/etc/containerd/config.toml

      done

      4、創建 containerd systemd模板文件

      [root@k8s-master1 work]# cat <

      [Unit]

      Description=containerd container runtime

      Documentation=https://containerd.io

      After=network.target

      [Service]

      Environment="PATH=/opt/k8s/bin:/bin:/sbin:/usr/bin:/usr/sbin"

      ExecStartPre=/sbin/modprobe overlay

      ExecStart=/opt/k8s/bin/containerd

      Restart=always

      RestartSec=5

      Delegate=yes

      KillMode=process

      OOMScoreAdjust=-999

      LimitNOFILE=1048576

      LimitNPROC=infinity

      LimitCORE=infinity

      [Install]

      WantedBy=multi-user.target

      EOF

      5、分發 systemd文件并啟動服務

      [root@k8s-master1 work]# for node_ip in ${NODE_IPS[@]}

      do

      echo ">>> ${node_ip}"

      scp containerd.service root@${node_ip}:/etc/systemd/system

      ssh root@${node_ip} "systemctl enable containerd && systemctl restart containerd"

      done

      三、部署crictl命令行工具

      [root@k8s-master1 work]# cat << EOF | sudo tee crictl.yaml

      runtime-endpoint: unix:///run/containerd/containerd.sock

      image-endpoint: unix:///run/containerd/containerd.sock

      timeout: 10

      debug: false

      EOF

      分發到所有 worker 節點:

      [root@k8s-master1 work]# for node_ip in ${NODE_IPS[@]}

      do

      echo ">>> ${node_ip}"

      scp crictl.yaml root@${node_ip}:/etc/crictl.yaml

      done

      2、crictl命令使用

      Docker Nginx 容器

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel考勤表下拉菜單設置方法介紹
      下一篇:怎么添加紅色波浪線方框(文字添加紅色雙波浪線方框)
      相關文章
      亚洲日韩中文无码久久| 亚洲五月午夜免费在线视频| 亚洲日本在线观看视频| 亚洲综合色婷婷在线观看| 亚洲综合免费视频| 亚洲黄色中文字幕| 青青草原精品国产亚洲av| 亚洲精品视频在线| 亚洲国产人成在线观看69网站| 亚洲AV日韩精品久久久久久| 亚洲第一精品在线视频| 91精品国产亚洲爽啪在线影院 | 久久亚洲春色中文字幕久久久| 亚洲AV无码成人精品区蜜桃| 亚洲AV无码精品色午夜果冻不卡| 亚洲av伊人久久综合密臀性色| 亚洲人成在线电影| 精品日韩亚洲AV无码| 亚洲国产精品免费在线观看| 亚洲中文字幕人成乱码| 亚洲高清中文字幕免费| 亚洲AV女人18毛片水真多| 豆国产96在线|亚洲| 亚洲人成网站观看在线播放| 久久亚洲AV永久无码精品| 中文字幕亚洲一区二区va在线| 亚洲精品成人片在线播放| 亚洲一卡2卡三卡4卡有限公司| 亚洲精品综合久久中文字幕 | 伊人久久综在合线亚洲91| 亚洲精品二区国产综合野狼| 亚洲国产精品嫩草影院在线观看| 久久亚洲国产精品五月天| 亚洲欧洲另类春色校园小说| 亚洲视频无码高清在线| 国产AV无码专区亚洲AV蜜芽| 亚洲一级片免费看| 久久精品国产亚洲AV麻豆不卡| 亚洲精品中文字幕无码AV| 亚洲午夜无码久久久久小说| va亚洲va日韩不卡在线观看|