树叶云kubernetes教程:Kubernetes 将节点上的容器运行时从Docker Engine改为containerd

腾空节点

kubectl drain <node-to-drain> --ignore-daemonsets

将 ​<node-to-drain>​ 替换为你所要腾空的节点的名称

停止 Docker 守护进程 

systemctl stop kubelet
systemctl disable docker.service --now

安装 Containerd 

  • Linux
    1. 从官方的 Docker 仓库安装 ​containerd.io​ 包。关于为你所使用的 Linux 发行版来设置 Docker 仓库,以及安装 ​containerd.io​ 包的详细说明,可参见 开始使用 containerd。
    2. 配置 containerd:
    3. sudo mkdir -p /etc/containerd
      containerd config default | sudo tee /etc/containerd/config.toml
    4. 重启 containerd:
    5. sudo systemctl restart containerd
  • Windows(PowerShell)
  • 启动一个 Powershell 会话,将 ​$Version​ 设置为期望的版本(例如:​$Version="1.4.3"​), 之后运行下面的命令:

    1. 下载 containerd:
    2. curl.exe -L https://github.com/containerd/containerd/releases/download/v$Version/containerd-$Version-windows-amd64.tar.gz -o containerd-windows-amd64.tar.gz
      tar.exe xvf .\containerd-windows-amd64.tar.gz
    3. 解压缩并执行配置:
    4. Copy-Item -Path ".\bin\" -Destination "$Env:ProgramFiles\containerd" -Recurse -Force
      cd $Env:ProgramFiles\containerd\
      .\containerd.exe config default | Out-File config.toml -Encoding ascii
      
      # 请审查配置信息。取决于你的安装环境,你可能需要调整:
      # - the sandbox_image (Kubernetes pause 镜像)
      # - cni bin_dir 和 conf_dir 的位置
      Get-Content config.toml
      
      # (可选步骤,但强烈建议执行)将 containerd 排除在 Windows Defender 扫描之外
      Add-MpPreference -ExclusionProcess "$Env:ProgramFiles\containerd\containerd.exe"
    5. 启动 containerd:
    6. .\containerd.exe --register-service
      Start-Service containerd

配置 kubelet 使用 containerd 作为其容器运行时

编辑文件 ​/var/lib/kubelet/kubeadm-flags.env​,将 containerd 运行时添加到标志中: ​--container-runtime=remote​ 和 ​--container-runtime-endpoint=unix:///run/containerd/containerd.sock"​。

对于使用 kubeadm 的用户,可以考虑下面的问题:

kubeadm ​工具将每个主机的 CRI 套接字保存在该主机对应的 Node 对象的注解中。 使用 ​kubeadm ​的用户应该知道,​kubeadm ​工具将每个主机的 CRI 套接字保存在该主机对应的 Node 对象的注解中。 要更改这一注解信息,你可以在一台包含 kubeadm ​/etc/kubernetes/admin.conf​ 文件的机器上执行以下命令:

kubectl edit no <node-name>

这一命令会打开一个文本编辑器,供你在其中编辑 Node 对象。 要选择不同的文本编辑器,你可以设置 ​KUBE_EDITOR ​环境变量。

  • 更改 ​kubeadm.alpha.kubernetes.io/cri-socket​ 值,将其从 ​/var/run/dockershim.sock​ 改为你所选择的 CRI 套接字路径 (例如:​unix:///run/containerd/containerd.sock​)。
  • 注意新的 CRI 套接字路径必须带有 ​unix://​ 前缀。

  • 保存文本编辑器中所作的修改,这会更新 Node 对象。

重启 kubelet 

systemctl start kubelet

验证节点处于健康状态 

运行 ​kubectl get nodes -o wide​,containerd 会显示为我们所更改的节点上的运行时。

最后,在一切顺利时删除 Docker。

  • CentOS
  • sudo yum remove docker-ce docker-ce-cli
    
  • Debian
  • sudo apt-get purge docker-ce docker-ce-cli
    
  • Fedora
  • sudo dnf remove docker-ce docker-ce-cli
    
  • Ubuntu
  • sudo apt-get purge docker-ce docker-ce-cli
    

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/192295.html<

(0)
管理的头像管理
上一篇2025-04-01 12:46
下一篇 2025-04-01 12:47

相关推荐

  • 骨干网络体系结构能干什么?骨干网络体系结构的作用

    骨干网络体系结构是现代信息社会的“超级高速公路网”,它通过分层设计、冗余备份和智能调度,确保海量数据在全球范围内高速、稳定、安全地传输,是支撑云计算、物联网及人工智能应用的底层基石,想象一下,如果你把互联网比作一个巨大的城市交通系统,那么骨干网络就是连接各个城市的主干道和立交桥,没有它,你的每一次微信发送、每一……

    2026-06-18
    0
  • 高io数据库可以干什么用?高io数据库适合什么场景

    高IO数据库的核心价值在于通过极高的读写吞吐量,解决海量数据场景下的性能瓶颈,是支撑高并发交易、实时分析及大规模内容分发的关键基础设施,在数字化转型的深水区,数据不再仅仅是静态的记录,而是流动的资产,传统的机械硬盘或普通SSD早已无法满足现代应用对速度的极致追求,高IO(Input/Output)数据库,就是那……

    2026-06-18
    0
  • 高io服务器性能如何?高io服务器适合什么场景

    高IO服务器并非单纯指代某种硬件,而是指在随机读写、高并发连接及小文件处理场景下,具备极致IOPS(每秒输入输出操作次数)和低延迟特性的计算资源,它是支撑现代高并发应用稳定运行的核心基石,在2026年的数字化浪潮中,业务负载早已从简单的静态页面展示演变为复杂的实时数据处理,许多开发者在排查系统瓶颈时,往往忽略了……

    2026-06-18
    0
  • 隔离网络空间哪里便宜?国内隔离网络空间价格

    隔离网络空间并没有统一的“便宜”标准,其成本高度取决于物理隔离等级、带宽需求及安全合规要求,通常物理网闸方案初期投入较高但长期运维成本低,而逻辑隔离方案虽初期便宜但存在潜在安全风险,建议根据业务敏感度选择混合隔离架构以平衡成本与安全,在数字化时代,企业构建独立网络环境的需求日益增长,但“隔离网络空间哪里便宜”这……

    2026-06-18
    0
  • 骨干网络体系结构设备为何故障?常见原因有哪些

    骨干网络体系结构设备故障的核心原因通常归结为硬件老化、配置错误、物理链路中断及外部攻击四大类,其中电源模块失效与光模块性能衰减是占比最高的隐性故障源,骨干网作为数字经济的“大动脉”,其稳定性直接关乎国计民生,当核心路由器或交换机出现丢包、震荡甚至宕机时,运维人员往往面临巨大的压力,很多人第一反应是检查软件配置……

    2026-06-18
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注