一文带你了解containerd方案

本文详细介绍了containerd方案,包括其在k8s与docker竞争中的背景,以及containerd、runc和CNI插件的角色。提供了一键安装和自定义安装两种containerd方案,并详细阐述了nerdctl的使用方法,如镜像和容器的操作。
摘要由CSDN通过智能技术生成

一文带你了解containerd方案

k8s和docker的竞争

2015年6月22日,迫于google、红帽等巨头公司的压力,docker开放了容器运行时的标准,OCI成立。

2015年7月17日,docker捐赠了自己的容器运行时libcontainer,改造后成为了runc。

2016年12月14日,containerd项目从docker engine中正式分离,被捐赠给了CNCF。

2017年10月,docker宣布在企业版中内置k8s,宣告了docker在和k8s的容器化编排竞争中彻底败北。

2022年5月3日,kubernetes v1.24正式发布,彻底结束了对docker的兼容。

k8s开始了容器运行时的去docker化工作,目前k8s官方文档中给出的容器运行时方案主要有三种,第一种是直接使用docker原有的组件containerd、runc并且用nerdctl完全替代docker client的命令,这种方案我们简称为containerd方案、第二种是kubernetes社区提供的一个cri-o方案,这个方案没有containerd成熟、第三种是继续使用docker,但为了满足RCI,需要再增加一个cri-dockerd组件。其中最优解就是containerd方案,因为方案所使用的组件是docker捐赠的containerd和runc,以及实现容器网络的cni插件,由它们组成了一个去docker化的成熟方案。

接下来,我们就要介绍一下,containerd这个方案怎么进行安装。

containerd方案需要安装三个组件,第一个是最上层的containerd,实现了CRI标准,可以被kubelet直接调用。第二个是runc,实现了OCI标准,containerd会调用runc进行容器的创建。第三个是CNI插件,负责容器启动时的网络创建。

containerd方案安装(一键版)

安装nerdctl full包

一键版将所有组件都打进了nerdctl full包中,但相比于下载每一个组件,这种方式更方便,更容易入门,下载地址https://github.com/containerd/nerdctl/releases

[root@k8s ~]# tar Cxvf /usr/local nerdctl-full-0.22.2-linux-amd64.tar 
[root@k8s bin]# systemctl enable containerd
[root@k8s bin]# systemctl start containerd

containerd方案安装(自定义版)

安装containerd

相比于一键版,自定义版中每个组件版本都可以自己选择,如果想要理解containerd方案每个组件的作用可以进行自定义版安装。

从containerd github项目中下载containerd二进制,地址为https://github.com/containerd/containerd/releases

比较大的github项目一般会在assets下提供各种框架已经编译好的二进制文件包供你下载,比较方便的下载方式是,找到符合你架构的压缩包,拷贝链接,然后通过wget直接下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值