Fork me on GitHub

《Kubernetes 系列》之三 Kubernetes 和 docker 之间的版本对应关系

《Kubernetes 系列》之三 Kubernetes 和 docker 之间的版本对应关系


 

Kubernetes 和 Docker 是两个紧密相关的技术,Docker 被广泛用于构建和运行容器,而 Kubernetes 用于编排这些容器。在早期,Kubernetes 依赖 Docker 作为其容器运行时(Container Runtime),因此了解 Kubernetes 与 Docker 版本之间的兼容性是非常重要的。

然而,从 Kubernetes 1.20 开始,Kubernetes 开始逐步废弃对 Docker 作为容器运行时的直接支持,转而使用容器运行时接口(CRI)兼容的运行时,比如 containerd 或 CRI-O。Docker 本身使用 containerd 作为其容器运行时,所以尽管 Kubernetes 不再直接支持 Docker,使用 Docker 仍然可以间接支持 Kubernetes。

Kubernetes 和 Docker 的版本对应关系(历史兼容性)

  1. Kubernetes 1.13 到 1.19

    • 支持的 Docker 版本范围:1.13.119.03.x
  2. Kubernetes 1.20

    • 支持的 Docker 版本范围:1.13.119.03.x
    • 注意:从此版本开始,Kubernetes 宣布将逐步弃用 Docker 作为容器运行时
  3. Kubernetes 1.21 到 1.22

    • 支持的 Docker 版本范围:1.19.320.10.x
    • 仍然可以使用 Docker 作为容器运行时,但强烈建议迁移到 CRI 兼容的运行时(如 containerd)。
  4. Kubernetes 1.23 到 1.24

    • 支持的 Docker 版本范围:1.19.320.10.x
    • 从 Kubernetes 1.24 开始,Docker 被完全移除作为容器运行时的支持,必须使用 CRI 兼容的运行时(如 containerd)。

替代选项(容器运行时)

  • containerd:是一个符合 CRI 的容器运行时,是 Docker 的核心组件,从 Docker 18.09 开始就可以直接使用 containerd 作为运行时。
  • CRI-O:是一个专门为 Kubernetes 构建的轻量级容器运行时,与 containerd 类似。

迁移建议

  • 从 Docker 到 containerd:对于 Kubernetes 1.20 及更高版本,建议迁移到 containerd,以确保与 Kubernetes 的兼容性。
  • 使用 kubeadm:在 Kubernetes 1.23 及更高版本,使用 kubeadm 安装和管理 Kubernetes 集群时,它将默认使用 containerd 作为容器运行时。

总之,理解和保持 Kubernetes 和 Docker 版本的兼容性对于构建和维护稳定的集群至关重要。如果你正在使用 Kubernetes 1.20 或更高版本,建议开始规划向 CRI 兼容运行时的迁移。

 

posted @ 2024-08-12 02:19  龙凌云端  阅读(343)  评论(0编辑  收藏  举报