1.前文
1.1 什么是Containerd
containerd
是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性,containerd
可以负责干下面这些事情:
- 管理容器的生命周期(从创建容器到销毁容器)
- 拉取/推送容器镜像
- 存储管理(管理镜像及容器数据的存储)
- 调用
runc
运行容器(与runc
等容器运行时交互) - 管理容器网络接口及网络
1.2 Containerd和docker区别
containerd
是Docker
在2016
年12
月从Docker Engine
中分离并单独集成且开源的项目,目标是提供一个更加开放、稳定的容器运行基础设施,后来Docker
宣布将containerd
项目捐赠给云原生计算基金会(CNCF
)
1.3 K8s为什么弃用Docker
从网络上搜索得出的原因如下:
第一个原因:
Kubernetes
只能与CRI
通信,因此要与Docker
通信,就必须使用桥接服务。第二个原因:
Kubernetes
只是用到docker
中的一部分功能,甚至连docker
网络与存储卷都被排查在外。而那些用不到的功能本身就可能带来安全隐患。
- 第三个原因: 调用链变得更短,依赖的功能变少。
2. 安装
2.1 下载
|
2.2 解压到根目录
|
2.3 验证
|
2.4 开机启动
|
3. 配置文件
3.1 生成默认文件
|
3.2 修改镜像源地址
|
4. ctr
和crictl
4.1 两者区别
ctr
: 是containerd
的一个客户端工具 ;类似于docker
的管理工具docker cli
。crictl
: 是CRI
兼容的容器运行时命令行接口,可以使用它来检查和调试k8s
节点上的容器运行时和应用程序
通俗点理解:
ctr
是containerd
自带的工具,crictl
是CRI
通用的系统工具。
4.2 常用命令整理
大部分命令只要把
docker
关键字改为crictl
命令即可操作containerd
,比如 :docker ps 改成 crictl ps
虽然kubernetes弃用了docker,但是通过docker构建的镜像,在containerd中依然可以正常使用,后面会讲到….