容器运行时是负责管理 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
从 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