Google Distributed Cloud 在所有管理员和用户集群节点(包括 Windows 节点)上使用 containerd 作为容器运行时。作为已升级的 Cloud Native Computing Foundation (CNCF) 容器运行时,containerd 提供内置 Kubernetes 支持。
Kubernetes 1.24 移除了 dockershim,该组件可让 Kubernetes 使用 Docker Engine 作为其容器运行时。在本文档中,您将找到仍在使用 Docker Engine 的节点池,并将其更新为 containerd。
对管理员集群中的 containerd 的支持
Google Distributed Cloud 对所有管理员集群节点使用 containerd。
对用户集群中的 containerd 的支持
Google Distributed Cloud 支持用户集群节点的以下操作系统映像类型:
| 操作系统映像类型 | 容器运行时 |
|---|---|
ubuntu_cgv2 | containerd |
cos_cgv2 | containerd |
windows | containerd |
限制和建议
从 1.13.0 版开始,Google Distributed Cloud 不再支持
ubuntu操作系统映像类型。所有集群节点都必须使用 containerd 运行时。无法将使用 Docker Engine 的集群升级到 1.13 版。在升级到 1.13 之前,您必须更新集群以使用 containerd 运行时。
从 1.12.0 版开始,您将无法再创建使用
ubuntu操作系统映像类型的新集群。也就是说,您无法再创建使用 Docker Engine 容器运行时的新集群。
确定哪些节点池正在使用 Docker Engine
Ubuntu
列出使用 Docker Engine 的 Ubuntu 节点池:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get onpremnodepools \
-o json -A | jq -r '.items[] |select(.spec.osImageType == "ubuntu")|.metadata.name'
将 USER_CLUSTER_KUBECONFIG 替换为用户集群 kubeconfig 文件的路径。
输出示例:
ubuntu-node-pool-1 ubuntu-node-pool-3
Windows
用户集群中的所有 Windows 节点池都使用相同的容器运行时。Windows 节点的运行时由 enableWindowsDataplaneV2(这是用户集群配置文件中的一个字段)的值决定。
如果 enableWindowsDataplaneV2 为 true,则用户集群中的所有 Windows 节点都使用 containerd。如果为 false,则所有 Windows 节点都使用 Docker Engine。
运行以下命令以确定哪些用户集群将 enableWindowsDataplaneV2 设置为 false。这告诉您哪些用户集群已配置为将 Docker Engine 用于 Windows 节点。
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get onpremuserclusters \
-A -o json | jq -r '.items[] |select(.spec.enableWindowsDataplaneV2 == false)|.metadata.name'
输出列出了配置为将 Docker Engine 用于 Windows 节点的所有用户集群。例如:
user-cluster-1
无论用户集群是否有任何 Windows 节点池,如果集群将 enableWindowsDataplaneV2 设置为 false,则您无法将其升级到 1.13 版。
更新 Linux 节点池以使用 containerd
对于用户集群配置文件中的每个节点池,请设置 osImageType,将 osImageType 设置为 ubuntu_cgv2 或 cos_cgv2。
示例:
nodePools - name: "my-node-pool" osImageType: "ubuntu_cgv2"
更新用户集群:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
替换以下内容:
ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
USER_CLUSTER_CONFIG:用户集群配置文件的路径
更新 Windows 节点以使用 containerd
在用户集群配置文件中,将 enableWindowsDataplaneV2 设置为 true。
enableWindowsDataplaneV2: true
更新用户集群:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
上述命令针对集群中的所有 Windows 节点将容器运行时设置为 containerd。