Kubernetes / K8s
介绍
架构
组件
常用命令
调试/学习环境
和Docker的关系(AI)
Kubernetes 是 容器编排平台,它本身不负责构建或运行容器,而是依赖底层的 容器运行时 来实际运行容器。
曾经:
Kubernetes 默认使用 Docker 作为容器运行时(Container Runtime)。
现在:
Kubernetes 已从 v1.20 开始弃用 Docker 作为运行时(在 v1.24 正式移除)。
但你仍可以使用 Docker 构建镜像,然后通过支持的运行时(如 containerd)运行这些镜像。
K8s 使用 容器运行时接口(CRI),常见的实现有:
containerd(Docker 的底层运行引擎,最流行)
CRI-O(专为 Kubernetes 设计)
Mirantis Container Runtime(商业版 Docker Engine)
但这些运行时都支持运行 Docker 构建的镜像,因为容器镜像遵循 OCI 标准。
Kubernetes 在 v1.24 后 正式移除了对 Docker 运行时的支持,这是指:
K8s 不再直接调用 Docker 引擎来运行容器。
而是推荐使用 containerd 或 CRI-O 这些更轻量、与 K8s 兼容更好的运行时。
但是:这并不影响你使用 Docker 构建的镜像。
你仍然可以用 Docker 构建镜像 → 推送到镜像仓库 → K8s 使用 containerd 拉取并运行。
containerd是什么?
containerd 是一个容器运行时(Container Runtime),它负责在系统中真正“跑起来”容器,是 Kubernetes 背后实际执行容器生命周期管理的关键组件。
containerd 是一个 轻量级、符合 OCI 标准的容器运行时。
它最初是 Docker 的一部分(Docker 用它来运行容器),后来被独立出来,成为 CNCF 项目。
Kubernetes 使用的是一种标准接口叫 CRI(Container Runtime Interface),containerd 是对这个接口的一个实现。
它不提供像 Docker CLI 那样的高级工具链,也不支持构建镜像(构建由 buildkit 等工具处理)。
注意:
containerd 可以运行 Docker 构建的镜像。
你一般不会直接跟 containerd 打交道。
Kubernetes 为什么用 containerd?因为它更轻量、模块化、跟 K8s 集成更好。
学习资料