容器运行时介绍
容器运行时是负责管理节点上容器的生命周期。Kubernetes通过 Kubelet 的 Container Runtime Interface(CRI)与容器运行时交互,控制容器的创建与管理。
基于 Containerd性能更好、更稳定、占用资源更少等优点,云容器引擎选择 Containerd作为容器运行时的解决方案。
云容器引擎早期在 Kubernetes v1.23上还支持选择 Docker,当前则需提工单申请,未来会移除对 Docker的支持,强烈建议您使用 Containerd或迁移到 Containerd。
云容器引擎选择 Containerd作为容器运行时的解决方案,对比 Docker,Containerd的优点如下:
调用链更短
Containerd:
Kubelet -> CRI plugin(在 Containerd中)-> Containerd
Docker:
K8s v1.23及以下版本:Kubelet -> Dockershim(在 Kubelet中)-> Docker -> Containerd
K8s v1.24及以上版本:Kubelet -> cri-dockerd -> Docker -> Containerd
CPU和内存占用更少
稳定性和安全性更好
Pod 启动更快
Containerd 和 Docker的常用命令对比
Containerd 支持两种命令行工具:ctr和 crictl。其中,ctr是 Containerd 的客户端工具,crictl是兼容 CRI 的容器运行时的命令行工具。crictl 可以用来检查和调试 Kubernetes节点上容器运行时和应用程序。
操作 | Docker | crictl | ctr |
---|---|---|---|
上传镜像 | docker push | crictl push | ctr -n k8s.io i push |
拉取镜像 | docker pull | crictl pull | ctr -n k8s.io i pull |
查看镜像详情 | docker inspect | crictl inspecti | 无 |
列出本地镜像列表 | docker images | crictl images | ctr -n k8s.io i ls |
删除本地镜像 | docker rmi | crictl rmi | ctr -n k8s.io i rm |
创建容器 | docker create | crictl create | crt -n k8s.io c create |
启动容器 | docker start | crictl start | crt -n k8s.io run |
连接容器 | docker attach | crictl attach | 无 |
进入容器 | docker exec | crictl exec | 无 |
查看容器详情 | docker inspect | crictl inspect | crt -n k8s.io c info |
查看容器日志 | docker logs | crictl logs | 无 |
查看容器资源使用情况 | docker stats | crictl stats | 无 |
更新容器资源限制 | docker update | crictl update | 无 |
停止容器 | docker stop | crictl stop | 无 |
列出容器列表 | docker ps | crictl ps | crt -n k8s.io c ls |
删除容器 | docker rm | crictl rm | crt -n k8s.io c del |
启动 Pod | 无 | crictl start | 无 |
运行 Pod | 无 | crictl runp | 无 |
查看 Pod详情 | 无 | crictl inspectp | 无 |
停止 Pod | 无 | crictl stopp | 无 |
列出 Pod列表 | 无 | crictl pods | 无 |
删除 Pod | 无 | crictl rmp | 无 |
操作系统与容器运行时的对应关系
节点类型 | 操作系统 | 内核版本 | 容器运行时 | 容器存储Rootfs | OCI 运行时 |
弹性云主机 | CTyunOS 23.01 | 5.1 | Containerd | OverlayFS | runC |
CentOS 7.9 | 5.4 | Containerd | OverlayFS | runC | |
弹性裸金属 | CTyunOS 23.01 | 5.1 | Containerd | OverlayFS | runC |
CentOS 7.9 | 5.4 | Containerd | OverlayFS | runC |