ai-infra-interview-305

第 301 题:容器运行时?containerdcri-o

题目

容器运行时?containerdcri-o


完整讲解

一、容器运行时角色

容器运行时负责根据镜像与配置创建、启停、删除容器进程与隔离环境(命名空间、cgroup、rootfs 等)。Kubernetes 通过 CRI(Container Runtime Interface)与运行时对接,不直接绑死某一实现。

二、containerd

containerd:由 Docker 捐出、CNCF 毕业项目,工业级容器运行时。负责镜像拉取与存储、容器生命周期、网络 namespace 等;不包含构建与高层 API,常与 runc 配合做实际「跑容器」的 OCI 实现。K8s 通过 CRI 插件(containerd 内嵌 cri)对接,kubelet 可直连 containerd,无需 Docker daemon,路径更短、资源占用更小,当前主流选择。

三、CRI-O

CRI-O轻量、专注 K8s CRI,只做「跑 Pod/容器」所需的最小集合:镜像拉取、存储、OCI 运行时(runc 等)。无 Docker 兼容层、无构建,与 K8s 绑定紧,Red Hat/OpenShift 系常用。与 containerd 相比:都符合 CRI/OCI,containerd 生态与第三方集成更广,CRI-O 更偏「仅 K8s」的极简运行时。


面试要点


记忆要点

  1. 运行时 = 镜像+容器生命周期+隔离;K8s 用 CRI 对接。
  2. containerd = 主流、CRI 内嵌、与 runc 配合;CRI-O = 轻量、仅 K8s。
  3. 选型看生态与发行版(如 OpenShift 用 CRI-O)。
返回模块 返回总览