当前位置: 首页 > article >正文

k8s集群,CRI-Docker部署条件及方法

CRI-Docker部署条件及方法

文章目录

  • CRI-Docker部署条件及方法
  • CRI-Docker使用条件
    • 安装 cri-docker 的步骤:

CRI-Docker使用条件

在 Kubernetes 1.20 及以上版本,kubeadm 默认使用 containerd 作为容器运行时(Container Runtime Interface, CRI),而不再默认使用 Docker。
因此,安装 CRI-Docker(即 Docker 的 CRI 接口)是可选的,除非你明确需要使用 Docker 作为容器运行时。

  • 为什么不需要安装 cri-docker(默认使用 containerd)?
    从 Kubernetes 1.20 开始,Kubernetes 默认使用 containerd 作为容器运行时,而不是传统的 Docker。在这种情况下,不再需要安装 cri-docker,因为 containerd 已经完全兼容 CRI 并可以直接与 kubelet 进行交互。
    如果你使用的是 Kubernetes 1.20 或更高版本,kubeadm 会自动配置并使用 containerd,因此你无需单独安装 Docker 作为 CRI,除非你需要使用 Docker 的功能。
  • 使用 Docker 作为 CRI(需要安装 cri-docker)
    如果你希望在 Kubernetes 中继续使用 Docker 作为容器运行时,则需要安装 cri-docker。cri-docker 是 Docker提供的一个兼容 CRI 的接口,使 Docker 能够作为 Kubernetes 的容器运行时。

安装 cri-docker 的步骤:

1. 卸载旧版 Docker:
# 如果你之前安装了 Docker,首先卸载它:
sudo yum remove docker docker-common docker-snapshot

2. 安装 cri-docker:
# 安装 Docker 和 cri-docker:

# 下载 Docker CRI 插件
curl -sSL https://github.com/Mirantis/cri-dockerd/releases/download/v0.2.0/cri-dockerd-0.2.0-amd64.tar.gz -o cri-dockerd.tar.gz

# 解压并安装
tar -xvzf cri-dockerd.tar.gz
sudo mv cri-dockerd /usr/local/bin/

# 安装 Docker
sudo yum install -y docker

3. 启动 cri-docker 服务:

# 启动并启用 cri-docker 服务,使其在系统启动时自启:
sudo systemctl enable --now cri-docker

4. 修改 kubelet 配置文件:
配置 kubelet 使用 Docker 作为容器运行时。编辑 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 文件,修改 KUBELET_EXTRA_ARGS 参数:

# 编辑 kubelet 配置
sudo vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
在 KUBELET_EXTRA_ARGS 行添加 --container-runtime=docker

KUBELET_EXTRA_ARGS=--container-runtime=docker --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock

5. 重启 kubelet 服务:

# 修改完配置后,重启 kubelet 服务:
sudo systemctl daemon-reload
sudo systemctl restart kubelet

6. 检查是否使用 Docker:
# 查看 kubelet 当前使用的容器运行时:
kubectl get node <node-name> -o jsonpath='{.status.nodeInfo.containerRuntimeVersion}'

如果配置正确,输出应该类似于:
docker://20.10.7

http://www.kler.cn/a/467594.html

相关文章:

  • 标题:利用Spring Boot构建JWT刷新令牌应用
  • 如何查看PostgreSQL的版本
  • Java 关键字【synchronized】
  • 2025 年前端新技术如何塑造未来开发生态?
  • QT----------QT Data Visualzation
  • 如何通过USB在电脑上查看手机屏幕
  • Spring Cloud微服务多模块架构:父子工程搭建实践
  • 提示词教程:零样本提示
  • ArkTs-@Builder引用传递问题
  • 【MongoDB详解】
  • 旧服务改造及微服务架构演进
  • 如何在不丢失数据的情况下从 IOS 14 回滚到 IOS 13
  • 现代光学基础6
  • ruckus R510升级到Unleashe后不能访问
  • 端到端性能体验稳定性优化常见方案
  • webpack01
  • Elasticsearch 文档批处理 混合处理 批量操作
  • (四)基于STM32通过Event Recoder实现时间测量功能
  • Android中创建ViewModel的几种方法
  • 体验谷歌最新Gemini 2.0 Flash原生多模态音视频对话桌面分享功能
  • 数据结构C语言描述7(图文结合)--哈希、哈希冲突、开放地址法、链地址法等实现
  • 阿里云效自动化部署 Docker镜像
  • 电子电气架构 --- 整车整车网络管理浅析
  • 时序数据库对比
  • Vue项目中生成node_modules文件夹的两种常用方法及npm优势
  • 曲速引擎前端代码生成器 6.6.0 介绍二