安装 k8s集群的问题:默认容器运行时从 Docker 改为 Containerd

news2025/6/3 23:58:37

安装 k8s集群的问题:默认容器运行时从 Docker 改为 Containerd

  • 1、背景
  • 2、容器运行时从 Docker 改为 Containerd
    • 2.1、安装 Containerd:
    • 2.2、生成 Containerd 的配置文件
    • 2.3 、创建 /etc/crictl.yaml 文件
    • 2.4 、配置 Containerd 服务开机自启


💖The Begin💖点点关注,收藏不迷路💖

1、背景

Kuberetes 1.20版本开始,Kuberetes官方已经将默认的容器运行时从Docker改为Containerd。

因此,从Kubernetes 1.20开始,Kuberetes官方将支持使用Docker和Containerd作为容器运时,也意味着Kubemetes从Docker的依赖中解耦了出来。

Kubernetes1.24及之后的版本中作为容器运行时已经被官方弃用,Containerd成为唯一推荐的容器运行时。

2、容器运行时从 Docker 改为 Containerd

装 Kubernetes 集群 时,默认容器运行时从 Docker 改为 Containerd 的流程如下:

2.1、安装 Containerd:

yum install -y containerd

2.2、生成 Containerd 的配置文件

1、创建一个目录用于存放 Containerd 的配置文件。

sudo mkdir -p /etc/containerd

2、将 Containerd 的默认配置写入到一个名为 config.toml 的文件中。你可以根据需要编辑这个文件,然后将其用作自定义的 Containerd 配置文件。

containerd config default > /etc/containerd/config.toml

在这里插入图片描述

3、修改 /etc/containerd/config.toml 文件

需要将 SystemdCgroup=false 修改为 SystemdCgroup=true,以表示 Containerd 驱动程序将使用 Systemd 进行 Cgroup 管理。

在 Kubernetes 中,容器运行时需要与宿主机的 Cgroup 和 Namespace 进行交互,以管理容器的资源。对于 Cgroup 的驱动程序,Docker 和 Containerd 默认使用的都是 Cgroupfs,而 systemd-cgroup 则是 Systemd 对 Cgroup 的一个实现。

相比于 Cgroupfs,systemd-cgroup 在资源隔离方面提供了更好的性能和更多的特性。例如,systemd-cgroup 可以使用更多的内存压缩算法,以便更有效地使用内存。

此外,systemd-cgroup 还提供了更好的 Cgroup 监控和控制机制,可以更精确地调整容器的资源使用量。使用 systemd-cgroup 作为容器运行时的 Cgroup 驱动程序可以提高 Kubernetes 集群中容器的资源管理效率,从而提升整个集群的性能。

vi /etc/containerd/config.toml

将 SystemdCgroup=false 修改为 SystemdCgroup=true

在这里插入图片描述

另外,将 sandbox_image 设置为阿里云镜像仓库中的 pause:3.7,是因为国内的网络可以访问阿里云镜像仓库。

在 Kubernetes 中,每个 Pod 中都有一个 pause 容器,这个容器不会运行任何应用,只是简单地休眠。它的作用是保证 Pod 中所有的容器共享同一个网络命名空间和 IPC 命名空间。

pause 容器会在 Pod 的初始化过程中首先启动,然后为 Pod 中的其他容器创建对应的网络和 IPC 命名空间,并且在其他容器启动之前保持运行状态,以保证其他容器可以加入共享的命名空间中。

简单来说,pause 容器就是一个占位符,它为 Pod 中的其他容器提供了一个共享的环境,使它们可以共享同一个网络和 IPC 命名空间。这也是 Kubernetes 实现容器间通信和网络隔离的重要机制之一。

vi /etc/containerd/config.toml

将 sandbox_image="k8s.gcr.io/pause:3.6" 修改为 sandbox_image="registry.aliyuncs.com/google_containers/pause:3.7"

在这里插入图片描述

2.3 、创建 /etc/crictl.yaml 文件

cat >/etc/crictl.yaml <<EOF
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
EOF

/etc/crictl.yaml 文件是 crictl 工具的配置文件,用于指定与 Containerd 交互的相关设置。通过指定 runtime-endpoint 和 image-endpoint,可以告诉 crictl 使用 UNIX 域套接字的方式来连接 Containerd 的 API。

Containerd 提供了一个 Socket 文件 /run/containerd/containerd.sock,crictl 可以通过连接这个 Socket 文件与 Containerd 进行通信,从而实现对容器和镜像等操作的管理。

通过这种方式,crictl 可以方便地与 Containerd 进行交互,并执行各种容器操作,如创建、删除、查询容器等。

2.4 、配置 Containerd 服务开机自启

1、检查 Containerd 服务是否已启用自启动。
systemctl is-enabled containerd

2、启用 Containerd 服务的自启动
systemctl enable containerd

3、手动启动 Containerd 服务
systemctl start containerd

4、查看 Containerd 服务的当前状态
systemctl status containerd

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1592855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3用户交互——事件

Vue3用户交互——事件 1. 鼠标单击事件、输入框双向绑定和修饰符 html代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1…

动态规划|62.不同路径

力扣题目链接 class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m, vector<int>(n, 0));for (int i 0; i < m; i) dp[i][0] 1;for (int j 0; j < n; j) dp[0][j] 1;for (int i 1; i < m; i) {for (int j 1; …

Netty学习——高级篇2 Netty解码技术

接上篇&#xff1a;Netty学习——高级篇1 拆包 、粘包与编解码技术&#xff0c;本章继续介绍Netty的其他解码器 1 DelimiterBasedFrameDecoder分隔符解码器 DelimiterBasedFrameDecoder 分隔符解码器是按照指定分隔符进行解码的解码器&#xff0c;通过分隔符可以将二进制流拆分…

nginx+keepalived集群-双主

1. nginx部署 单机部署可参考&#xff1a;https://blog.csdn.net/ym5209999/article/details/119897237 主备模式可参考&#xff1a;https://blog.csdn.net/ym5209999/article/details/132983080 2. keepalived安装 [rootnginx1 ~]# yum -y install keepalived3. keepalived…

Unity DOTS1.0 入门(3) System与SystemGroup 概述

System与SystemGroup 概述 System System是提供一种代码逻辑,改变组件的数据状态,从一个状态到另外一个状态System在main thread里面运行, system.Update方法每一帧执行一次(其他线程中运行的就是JobSystem的事情了&#xff09;System是通过一个System Group这个体系来决定它…

【动态规划】路径问题模型

【动态规划】路径问题模型 文章目录 【动态规划】路径问题模型前言一、不同路径二、不同路径-2三、珠宝的最高价值四、下降路径最小和五、最小路径和六、地下城游戏总结 前言 ​ 本文将从基础的不同路径问题开始&#xff0c;逐步深入到更复杂的最小路径和等问题&#xff0c;最…

webpack or vite? vuex or pinia?

2022.2.18, 新建一个vue3的项目&#xff0c;过程如下&#xff1a; 目录结构如下&#xff1a; 当还在犹豫选择webpack还是vite&#xff0c;vuex或者pinia的时候&#xff0c;尤大大已经给出了默认选择&#xff0c;vite && pinia。

Spring Boot 学习(5)——开发流程:快速入门

花了几天的时间&#xff0c;整出个 “hello spring boot”&#xff0c;并且把它从 2 搞到了 3。 纸上得来终觉浅&#xff01;自己实践出真知&#xff01;现在再回头来囫囵一遍&#xff0c;加深下印象。回想下从前自觉某一编程语言大都如此&#xff0c;先找到简单示例照着画一遍…

【LAMMPS学习】八、基础知识(2.7)NEMD 模拟

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

深入微服务框架:构建高效、可扩展与弹性的现代应用架构

前言&#xff1a;当今快速迭代和多变的商业环境中&#xff0c;传统的单体应用程序面临着一系列挑战&#xff0c;包括难以管理复杂性、缺乏灵活性以及无法有效扩展等问题。随着业务需求的不断增长和技术栈的不断演进&#xff0c;企业亟需一种更加模块化、易于管理和扩展的应用程…

【Godot4.2】CanvasItem绘图函数全解析 - 8.绘制点索引

概述 在示意图绘制过程中或者测试过程中&#xff0c;可能需要标记点的索引。 最常见的形式就是用一个圆圈作为背景&#xff0c;用阿拉伯数字作为索引。 实现的重点是动态计算背景圆的半径。原理是&#xff0c;获取字符串的矩形&#xff0c;取对角线长度的一半作为外接圆的半…

Servlet测试1

通过按钮提交get,post请求&#xff0c;并且后端响应数据&#xff0c;显示到前端 当点击get按钮时 是发起Get请求 后端接收到Get请求后&#xff0c;把数据写入到body内 当点击pst按钮时 是发起Post请求 后端接收到Post请求后&#xff0c;把数据写入到body内 之后前端就从bod…

【避坑/个人总结】CARLA仿真遇到问题总结1

问题描述 执行以下命令时&#xff1a; ./CarlaUE4.sh // 以及 ros2 launch carla_shenlan_bridge_ego_vis carla_bridge_ego_vehilce.launch.py 出现以下的问题&#xff1a; 解决方法&#xff1a; 更新numpy库到1.23的版本

Linux【实战篇】—— NFS服务搭建与配置

目录 一、介绍 1.1什么是NFS&#xff1f; 1.2客户端与服务端之间的NFS如何进行数据传输&#xff1f; 1.3RPC和NFS的启动顺序 1.4NFS服务 系统守护进程 二、安装NFS服务端 2.1安装NFS服务 2.2 创建共享目录 2.3创建共享目录首页文件 2.4关闭防火墙 2.5启动NFS服务 2.…

【蓝桥杯】2024年第15届真题题目

试题 A: 握手问题 本题总分&#xff1a; 5 分 【问题描述】 小蓝组织了一场算法交流会议&#xff0c;总共有 50 人参加了本次会议。在会议上&#xff0c; 大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进 行一次握手&#xff08;且仅有一次&a…

【数据恢复软件】:Magnet AXIOM V8.0

Magnet AXIOM V8.0重大更新 1、全新的UI设计 2、更快的相应速度 3、补全工件分析 4、支持亚马逊AWS云数据&#xff08; 获取同一帐户或安全帐户上下文中的快照。 支持Windows实例、加密卷和超过1 TB的卷、具有多个卷的实例等等&#xff01; &#xff09; 5、Bug修复 6、AI支持…

【QT+QGIS跨平台编译】099:【QGIS_CORE跨平台编译】—【错误处理:qgscoordinatereferencesystem.cpp编译不通过】

点击查看专栏目录 文章目录 一、错误信息二、原因分析三、错误处理3.1 qgscoordinatereferencesystem_legacy.h3.2 qgscoordinatereferencesystem.cpp一、错误信息 macOS操作系统中,Release环境下编译qgscoordinatereferencesystem.cpp,出现错误,详细信息如下: 二

【软件设计师】计算机软考下午题试题六,Java设计模式之简单工厂模式。

【软件设计师】计算机软考下午题试题六&#xff0c;Java设计模式之简单工厂模式。 代码如下&#xff1a; //简单工厂模式 public class SimpleFactory {public static void main(String[] args) {Product ProductAFactory.createProduct("A");ProductA.info();Produc…

LeetCode 2924.找到冠军 II:脑筋急转弯——只关心入度

【LetMeFly】2924.找到冠军 II&#xff1a;脑筋急转弯——只关心入度 力扣题目链接&#xff1a;https://leetcode.cn/problems/find-champion-ii/ 一场比赛中共有 n 支队伍&#xff0c;按从 0 到 n - 1 编号。每支队伍也是 有向无环图&#xff08;DAG&#xff09; 上的一个节…

Docker Image (镜像) 常见命令

Docker Image (镜像) 常用命令 docker images 功能&#xff1a;列出本地所有的镜像。如果镜像 ID 相同&#xff0c;但是 Tag 标签不同&#xff0c;也会被当作不同的条目被列出来。 语法&#xff1a; docker images [options] [REPOSITORY[:TAG]] 别名&#xff1a; docker ima…