containerd离线快速部署脚本
本文最后更新于 782 天前,其中的信息可能已经有所发展或是发生改变。

containerd离线快速部署脚本

前言

本脚本旨在提供一个简洁有效的离线方法来安装containerd。将通过一份易于理解的脚本步骤完成安装。后续可根据您的实际需求,适当调整containerd版本及其相关依赖。

注意: 本安装脚本已在containerd 1.7.18版本上基于Centos7测试验证🛠️。请注意,尽管本脚本主要面向该版本,不同版本的安装步骤可能存在差异。建议您在实施前,对脚本进行必要的调整以适应特定版本。

脚本如下

使用依赖版本如下:

  1. CONTAINERD_VERSION=1.7.18
  2. NERDCTL_VERSION=1.7.6
  3. RUNC_VERSION=1.1.12
  4. BUILDKIT_VERSION=v0.13.2

清单如下:

[root@localhost containerd_install]# tree
.
├── buildkit-v0.13.2.linux-amd64.tar.gz
├── cri-containerd-cni-1.7.18-linux-amd64.tar.gz
├── install_containerd.sh
├── nerdctl-1.7.6-linux-amd64.tar.gz
├── runc.amd64

脚本如下:

#!/bin/bash
DIR=`pwd`
# https://github.com/containerd/containerd
CONTAINERD_VERSION=1.7.18
# https://github.com/containerd/nerdctl
NERDCTL_VERSION=1.7.6
# https://github.com/opencontainers/runc
RUNC_VERSION=1.1.12
# https://github.com/moby/buildkit
BUILDKIT_VERSION=v0.13.2
install_containerd(){
  tar -xvzf cri-containerd-cni-*-linux-amd64.tar.gz -C /
  #rm -f cri-containerd-cni-*-linux-amd64.tar.gz
  # 创建默认配置文件
  mkdir -p /etc/containerd
  # 创建containerd默认配置文件
  containerd config default | tee /etc/containerd/config.toml
  cp /etc/containerd/config.toml /etc/containerd/config.toml.init
  # 修改Containerd的配置文件
  sed -i "s#SystemdCgroup\ \=\ false#SystemdCgroup\ \=\ true#g" /etc/containerd/config.toml
  cat /etc/containerd/config.toml | grep SystemdCgroup

  sed -i "s#registry.k8s.io#m.daocloud.io/registry.k8s.io#g" /etc/containerd/config.toml
  cat /etc/containerd/config.toml | grep sandbox_image

  # 配置加速
  sed -i "s#config_path\ \=\ \"\"#config_path\ \=\ \"/etc/containerd/certs.d\"#g" /etc/containerd/config.toml
  cat /etc/containerd/config.toml | grep certs.d
  # 创建相应目录
  mkdir /etc/containerd/certs.d/docker.io -pv
  cat > /etc/containerd/certs.d/docker.io/hosts.toml << EOF
server = "https://docker.io"
[host."https://docker.199604.com"]
  capabilities = ["pull", "resolve"]
EOF

  #生成配置文件
  cat > /etc/crictl.yaml <<EOF
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
EOF

  systemctl daemon-reload
  systemctl enable --now containerd.service
  systemctl restart  containerd.service
  # 验证containerd是否安装成功
  crictl info
}

# 覆盖containerd的runc工具
install_runc(){
  mv runc.amd64 runc && chmod +x runc && mv -f runc /usr/local/sbin/
  ln -s /usr/local/sbin/runc /usr/bin/runc
  runc -version
}

install_nerdctl(){
  cd ${DIR}
  mkdir nerdctl
  tar -xf nerdctl-${NERDCTL_VERSION}-linux-amd64.tar.gz -C nerdctl/
  mv nerdctl/nerdctl /usr/local/bin/
  rm -rf nerdctl

  cat << 'EOF' > /usr/local/bin/docker
#!/bin/bash
/usr/local/bin/nerdctl $@
EOF
  chmod +x /usr/local/bin/docker
  nerdctl --version
}

install_buildkit(){
  mkdir -p /usr/local/buildkit
  tar -xf buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz -C /usr/local/buildkit
  echo 'export PATH=/usr/local/buildkit/bin:$PATH' >> /etc/profile
  source /etc/profile
  # 创建buildkitd自启动服务
  cat > /etc/systemd/system/buildkitd.service << 'EOF'
[Unit]
Documentation=https://github.com/moby/buildkit
Description=buildkitd
After=network.target

[Service]
ExecStart=/usr/local/buildkit/bin/buildkitd --oci-worker=false --containerd-worker=true

[Install]
WantedBy=multi-user.target
EOF
  # 重新加载Unit file
  systemctl daemon-reload
  # 启动服务
  systemctl start buildkitd
  # 开机自启动
  systemctl enable buildkitd
}

install(){
  install_containerd
  install_runc
  install_nerdctl
  install_buildkit
}

install

为了解决国内下载Docker镜像的速度和无法下载镜像问题,/etc/containerd/certs.d/docker.io/hosts.toml下的加速地址请自行替换。通过这一配置,可以显著加快从Docker Hub下载镜像的速度,有效缓解等待时间。

自建docker加速可参考:利用cloudflare的worker服务搭建DockerHub镜像加速

注意

crictl默认配置文件在/etc/containerd/config.toml文件,所以docker拉取和私有镜像配置在K8S环境需要在/etc/containerd/config.toml配置!否则nodes节点全是NotReady

image-20240627234526847

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇