Google Distributed Cloud 在所有管理員和使用者叢集節點 (包括 Windows 節點) 上,使用 containerd 做為容器執行階段。containerd 是雲端原生運算基金會 (CNCF) 畢業的容器執行階段,提供內建的 Kubernetes 支援。
Kubernetes 1.24 移除了 dockershim,這個元件可讓 Kubernetes 使用 Docker Engine 做為容器執行階段。本文將說明如何找出仍在使用 Docker Engine 的節點集區,並更新為 containerd。
支援管理員叢集中的 containerd
Google Distributed Cloud 會對所有管理員叢集節點使用 containerd。
支援使用者叢集中的 containerd
Google Distributed Cloud 支援下列使用者叢集節點的OS 映像檔類型:
| OS 映像檔類型 | 容器執行階段 |
|---|---|
ubuntu_cgv2 | containerd |
cos_cgv2 | containerd |
windows | containerd |
限制和建議
自 1.13.0 版起,Google Distributed Cloud 不再支援
ubuntuOS 映像檔類型。所有叢集節點都必須使用 containerd 執行階段。您無法將使用 Docker Engine 的叢集升級至 1.13 版。您必須先更新叢集,才能在升級至 1.13 版前使用 containerd 執行階段。
自 1.12.0 版起,您無法再建立使用
ubuntuOS 映像檔類型的新叢集。也就是說,您無法再建立使用 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。