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

这篇具有很好参考价值的文章主要介绍了安装 k8s集群的问题:默认容器运行时从 Docker 改为 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

安装 k8s集群的问题:默认容器运行时从 Docker 改为 Containerd,# Kubernetes,容器化与编排技术深度解析,kubernetes,docker,容器,默认容器运行时,从 Docker 改为,Containerd

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

安装 k8s集群的问题:默认容器运行时从 Docker 改为 Containerd,# Kubernetes,容器化与编排技术深度解析,kubernetes,docker,容器,默认容器运行时,从 Docker 改为,Containerd

另外,将 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"

安装 k8s集群的问题:默认容器运行时从 Docker 改为 Containerd,# Kubernetes,容器化与编排技术深度解析,kubernetes,docker,容器,默认容器运行时,从 Docker 改为,Containerd

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

安装 k8s集群的问题:默认容器运行时从 Docker 改为 Containerd,# Kubernetes,容器化与编排技术深度解析,kubernetes,docker,容器,默认容器运行时,从 Docker 改为,Containerd文章来源地址https://www.toymoban.com/news/detail-851052.html


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

到了这里,关于安装 k8s集群的问题:默认容器运行时从 Docker 改为 Containerd的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【云原生 | Kubernetes 系列】— 部署K8S 1.28版本集群部署(基于Containerd容器运行)

    主机名 IP地址 备注 k8s-master01 192.168.0.109 master k8s-node1 192.168.0.108 node1 k8s-node2 192.168.0.107 node1 k8s-node3 192.168.0.105 node1 1、主机配置 2、升级内核 3、配置内核转发以及过滤 4、安装ipset ipvsadm,IPVS(IP Virtual Server)是一个用于负载均衡的 Linux 内核模块,它可以用来替代 kube-proxy 默认的

    2024年02月20日
    浏览(78)
  • 云原生Kubernetes:K8S集群实现容器运行时迁移(docker → containerd) 与 版本升级(v1.23.14 → v1.24.1)

    目录 一、理论 1.K8S集群升级 2.环境 3.升级策略 4.master1节点迁移容器运行时(docker → containerd)  5.master2节点迁移容器运行时(docker → containerd)  6.node1节点容器运行时迁移(docker → containerd)  7.升级集群计划(v1.23.14 → v1.24.1) 8.升级master1节点版本(v1.24.1) 9.升级master2节点版本

    2024年02月03日
    浏览(66)
  • k8s容器集群管理

    k8s容器集群管理 k8s简介 容器技术的发展 使用kubeadm安装k8s kubectl Kubernetes 架构 k8s节点 节点与控制面之间的通信 控制器 k8s容器 Kubernetes 对象 Kubernetes 对象管理 Kubernetes 对象管理 指令式命令 Kubernetes 对象管理 指令式对象配置 k8s对象管理 声明式对象配置 使用 Kustomize 对 Kubern

    2024年02月10日
    浏览(34)
  • K8S:K8S自动化运维容器Docker集群

    (1)K8S全程为Kubernetes,由于K到S直接有8个字母简称为K8S。 (2)版本:目前一般是1.18~1.2.0,后续可能会到1.24-1.26,1.24版本后丢弃了docker(如需要使用需要第三方插件配合),目前最新版本是1.27 (3)官网:https://kubernetes.io GitHub:GitHub - kubernetes/kubernetes: Production-Grade Container S

    2024年02月10日
    浏览(77)
  • 容器编排学习(一)k8s集群管理

    就在Docker容器技术被炒得热火朝天之时,大家发现,如果想要将Docker应用于具体的业务实现,是存在困难的一一编排、管理和调度等各个方面,都不容易。于是,人们迫切需要一套管理系统,对Docker及容器进行更高级更灵活的管理就在这个时候,kubernetes出现了 kubernetes的名字

    2024年02月09日
    浏览(44)
  • k8s容器化搭建redis集群

    k8s中有三台worker节点 192.168.1.100 192.168.1.101 192.168.1.102 创建配置字典,挂载redis的配置文件 key为redis.conf value为: 通过statefulset创建redis集群,有状态应用可以是副本之间有主从关系,数据需要做持久化。 在项目空间的 工作负载 - 有状态副本集 - 创建 进行 Redis 的创建。 基本信

    2024年02月06日
    浏览(31)
  • K8S:K8S自动化运维容器化(Docker)集群程序

    目录 一、K8S概述 1、什么是K8S 2、为什么要用K8S 3、作用及功能 二、K8S的特性 1、弹性伸缩 2、自我修复 3、服务发现和复制均衡 5、自动发布和回滚 6、集中化配置管理和秘钥管理 7、存储编排 8、任务批量处理运行 三、K8S的集群架构 四、K8S的核心组件 1、Master组件 ①Kube-apis

    2024年02月12日
    浏览(64)
  • kubeadm 安装k8s集群后,master节点notready问题解决方案

    使用kubeadm 安装k8s集群后,加载calico cni 网络组件后,master节点notready问题 表现为: 使用命令查看日志:journalctl -f -u kubelet 报错如下: Failed to start ContainerManager failed to initialize top level QOS containers: failed to update top level Burstable QOS cgroup : failed to set supported cgroup subsystems for cgroup

    2024年01月22日
    浏览(46)
  • K8s集群使用容器镜像仓库Harbor

    1.1.1 docker-ce安装 1.1.1.1 获取YUM源 使用阿里云开源软件镜像站。 1.1.1.2 安装并设置启动及开机自启动 1.1.2 docker compose安装 1.1.3 获取harbor安装文件 1.1.4 修改配置文件 1.1.5 执行预备脚本 1.1.6 执行安装脚本 1.1.7 验证运行情况 1.1.8 访问harbor UI界面 2.1.1 新建一个harbor私有仓库 2.1.2

    2024年02月02日
    浏览(64)
  • K8S-容器运行时(v1.27)

    说明:  自 1.24 版起,Dockershim 已从 Kubernetes 项目中移除。阅读 Dockershim 移除的常见问题了解更多详情。 你需要在集群内每个节点上安装一个 容器运行时 以使 Pod 可以运行在上面。本文概述了所涉及的内容并描述了与节点设置相关的任务。 Kubernetes 1.27 要求你使用符合容器

    2024年01月21日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包