本頁面說明如何自訂 Google Kubernetes Engine (GKE) 節點上 containerd 容器執行階段的設定。閱讀本文前,請務必先瞭解容器執行階段的用途,以及自訂容器執行階段的原因。
關於 GKE 中的 containerd 設定
您可以在 GKE 節點上,手動設定 containerd 執行階段的一組選項,這些節點執行的作業系統類似於 Container-Optimized OS。自訂執行階段可讓您設定特殊需求,例如存取私人映像檔登錄檔。如要設定這些選項,請建立名為執行階段設定檔的 YAML 檔案,並在建立或更新叢集時將該檔案傳遞至 GKE。
這種自訂 containerd 的方法可避免部署具備權限的 DaemonSet,降低安全風險。當您提供執行階段設定檔給 GKE 時,GKE 會重新建立節點,並使用您的設定更新每個節點上的 containerd config.toml
檔案。即使節點終止、升級及重建,設定也不會改變。
您只能透過執行階段設定檔設定 containerd 中的選項。 GKE 也支援使用名為節點系統設定檔的獨立檔案,設定特定 kubelet 選項和低階 Linux 核心選項。詳情請參閱「自訂節點系統設定」。
限制
您無法使用執行階段設定檔,變更 Ubuntu 節點映像檔中的 containerd 設定。系統僅支援含有 containerd 的 Container-Optimized OS。這是所有 GKE 叢集的預設節點映像檔。
可用的 containerd 設定選項
下表說明可使用執行階段設定檔設定的選項:
執行階段設定檔選項 | |
---|---|
|
使用儲存在 Secret Manager 中的私人憑證,存取私人映像檔登錄檔。 如需操作說明,請參閱「使用私人 CA 憑證存取私人登錄檔」。 privateRegistryAccessConfig: enabled: true certificateAuthorityDomainConfig: - gcpSecretManagerCertificateConfig: secretURI: " 這項設定包含下列欄位:
|
將 containerd 設定套用至新叢集
本節說明如何建立新的 GKE 叢集時,套用 containerd 設定檔。
執行下列指令:
gcloud container clusters create-autoCLUSTER_NAME
\ --location=LOCATION
\ --scopes="cloud-platform" \ --containerd-config-from-file="PATH_TO_CONFIG_FILE
"
更改下列內容:
CLUSTER_NAME
:新叢集的名稱。LOCATION
:新叢集的 Compute Engine 位置。PATH_TO_CONFIG_FILE
:您建立的設定檔路徑,例如~/containerd-configuration.yaml
。
如要在新的 Standard 叢集上啟用私人登錄設定,請使用相同選項執行 gcloud container clusters create
指令。
將 containerd 設定套用至現有叢集
本節說明如何將 containerd 設定套用至現有叢集和節點。
檢查存取權範圍
現有叢集必須具備 cloud-platform
存取範圍,才能使用這項功能。本節說明如何檢查存取範圍,以及如何使用新的或修改過的私人登錄設定檔更新現有叢集。
如要瞭解新叢集的預設存取權範圍,請參閱「GKE 中的存取權範圍」。
檢查 Autopilot 存取權範圍
執行下列指令:
gcloud container clusters describeCLUSTER_NAME
\ --location=LOCATION
\ --flatten=nodeConfig \ --format='csv[delimiter="\\n",no-heading](oauthScopes)'
如果叢集沒有 https://www.googleapis.com/auth/cloud-platform
存取權範圍,請建立具有這個存取權範圍的新叢集。
檢查標準存取權範圍
如要檢查 Standard 叢集存取範圍,請檢查節點集區:
gcloud container node-pools describeNODE_POOL_NAME
\ --cluster=CLUSTER_NAME
\ --location=LOCATION
\ --flatten=nodeConfig \ --format='csv[delimiter="\\n",no-heading](oauthScopes)'
將 NODE_POOL_NAME
替換為節點集區的名稱。
如果叢集沒有 https://www.googleapis.com/auth/cloud-platform
存取範圍,請建立具有 cloud-platform
存取範圍的新節點集區,並刪除現有節點集區。
更新叢集以使用設定檔
執行下列指令:
gcloud container clusters updateCLUSTER_NAME
\ --location=LOCATION
\ --containerd-config-from-file="PATH_TO_CONFIG_FILE
"
在標準叢集中重新建立節點
如果您的標準叢集未使用自動升級功能,則必須手動重新建立節點集區,才能套用新設定。如要手動重建節點,請將叢集升級至目前使用的 GKE 版本。
gcloud container clusters upgradeCLUSTER_NAME
\ --location=LOCATION
\ --cluster-version=VERSION
將 VERSION
替換為叢集已使用的 GKE 修補程式版本。
停用 containerd 設定選項
如要移除自訂設定,請按照下列步驟操作:
-
更新設定檔,在要停用的設定項目中指定
enabled: false
,並刪除項目中的所有其他欄位,如下列範例所示:privateRegistryAccessConfig: enabled: false
- 將更新後的設定檔套用至叢集。如需操作說明,請參閱「將 containerd 設定套用至現有叢集」。