1. 环境准备
    # 添加 overlay br_netfilter 模块配置
    cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
    overlay
    br_netfilter
    EOF
    
    # 加载 overlay br_netfilter模块
    sudo modprobe overlay
    sudo modprobe br_netfilter
    
    # 设置必需的 sysctl 参数
    cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
    net.bridge.bridge-nf-call-iptables  = 1
    net.ipv4.ip_forward                 = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    EOF
    
    # 应用 sysctl 配置的参数,无需重启
    sudo sysctl --system
    
  2. 安装containerd
    # 使用发行版对应的包管理工具安装(ubuntu 示例)
    
    # 先更新包下载信息
    sudo apt-get update
    
    # 安装 containerd
    sudo apt-get install containerd
    
  3. 创建containerd配置文件
    # 生成默认配置
    sudo mkdir -p /etc/containerd
    containerd config default | sudo tee /etc/containerd/config.toml
    
  4. 修改containerd配置文件
    # vi编辑配置文件
    sudo vi /etc/containerd/config.toml
    
    # 将 pause 修改为国内源镜像,找到 sanbox_image修改前缀为国内源
    sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.6"
    
    # 找到 SystemdCgroup
    SystemdCgroup = true
    
  5. 保存配置,重启containerd
    # 重启 containerd
    sudo systemctl restart containerd
    
    # 将 containerd 设置为开机自启
    sudo systemctl enable containerd
    
  6. 配置crictl默认的containerd unix端点
    # 现在只是安装了containerd,并未安装ctr命令行,所以无法与containerd命令行界面进行交互
    
    # 可以选择现在进行单独安装,也可以在安装完kublet后使用由kubelet集成的ctr
    sudo apt-get install ctr
    
    # 编写配置文件 /etc/crictl.yaml
    sudo vi /etc/crictl.yaml
    
    # 写入如下内容
    runtime-endpoint: unix:///run/containerd/containerd.sock
    image-endpoint: unix:///run/containerd/containerd.sock
    timeout: 10
    debug: true #  不想看DEBUG输出可以设为false
    
  7. 测试CRI
    crictl images
    
    # 正常输出image列表则配置完成
    
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐