为容器运行时使用 containerd

容器运行时是负责管理 Kubernetes 节点上的容器和容器映像的软件。Containerd已升级的 CNCF (Cloud Native Cloud Foundation) 容器运行时。该容器运行时原生支持 Kubernetes,与 Docker Engine for Kubernetes 相比,它被认为更省资源且更安全。在 Kubernetes 1.20 之前,Docker Engine 一直都是主要的容器运行时。但是,Kubernetes 中的 Docker Engine 集成代码 Dockershim 在 Kubernetes 1.20 中已被弃用,并将在 Kubernetes 1.24 中被移除。因此,Anthos clusters on VMware (GKE On-Prem) 用户应尽早计划为其容器运行时使用 containerd。

支持在 Anthos clusters on VMware 管理员集群节点中使用 Containerd

在 Anthos clusters on VMware 1.8 中,管理员集群在以下所有节点上使用 containerd:管理员主节点、管理员插件节点和用户主节点。这种情况同时适用于新的管理员集群以及从 1.7.x 升级的现有管理员集群。

支持在 Anthos clusters on VMware 用户集群节点中使用 Containerd

Anthos clusters on VMware 1.8 中引入了一个新的 ubuntu_containerd 操作系统映像类型。ubuntu_containerd 操作系统映像类型使用与 ubuntu 相同的操作系统映像,但节点配置为使用 containerd(而非 Docker Engine)作为容器运行时。

在 1.8 版中,如果未指定 osImageType,则默认使用 ubuntu_containerd 操作系统映像类型作为新节点池。但是,如果从 v1.7.x 升级现有节点池,则节点池在升级后将继续使用 Docker Engine。

从 1.8 版开始,如果要继续将 Docker Engine 用于新节点池,则必须明确指定 ubuntu 作为 osImageType。由于 Kubernetes 1.24 中将移除对 Docker Engine 的支持,因此您应尽早计划将节点池转换为使用 ubuntu_containerd 操作系统映像类型。

更新节点池使用的 osImageType

请参阅更新节点池的 osImageType

从 Docker Engine 迁移到 containerd

以下资源提供了有关如何从 Docker Engine 迁移到 containerd 的一般信息。

检查节点映像类型

您可以检查现有节点使用的是哪种映像类型。

如需使用 kubectl 进行检查,请运行以下命令:

kubectl get nodes -o wide --kubeconfig ADMIN_CLUSTER_KUBECONFIG

其中:

  • ADMIN_CLUSTER_KUBECONFIG 是管理员集群的 kubeconfig 文件的路径。

输出内容类似如下:

NAME ...  OS-IMAGE ...         CONTAINER-RUNTIME
node-1    Ubuntu 18.04.5 LTS   containerd://1.4.3
node-2    Ubuntu 18.04.5 LTS   containerd://1.4.3
node-3    Ubuntu 18.04.5 LTS   containerd://1.4.3

CONTAINER-RUNTIME 列会输出运行时及其版本。

如需在节点中进行检查,请运行以下命令:

sudo crictl version

输出内容类似如下:

Version:  0.1.0
RuntimeName:  containerd
RuntimeVersion:  1.4.3-0ubuntu0~18.04.1
RuntimeApiVersion:  v1alpha2