本頁說明可使用 Google Cloud CLI --config 旗標 (apply 指令) 和 --fleet-default-member-config 旗標 (enable 指令) 設定 Config Sync 的不同欄位,這些旗標位於 beta 發布管道。在 enable 指令的
alpha 版本中,我們不建議使用這個欄位結構定義,請改用
新的 API 結構定義
。
搭配這些 gcloud CLI 旗標使用的檔案格式,與 ConfigManagement 物件的格式類似。但兩者格式不同,無法互換。
Config Management 的通用設定
| 鍵 | 說明 |
|---|---|
spec.version |
Config Management 版本。如果您要為叢集設定 Config Management,預設版本是該叢集目前安裝的 Config Management 版本。否則,如要進行全機群設定,或目標叢集上沒有現有安裝項目,預設會使用最新版本。 |
設定 Config Sync
| 鍵 | 說明 |
|---|---|
spec.cluster |
Config Sync 使用的叢集名稱
cluster-name-selector
註解 或 ClusterSelector,可將設定僅套用至叢集子集。如果 Config Sync cluster-name-selector 註解或 ClusterSelector 使用的名稱與叢集的機群成員名稱不同,請設定這個欄位。 |
spec.upgrades |
(預覽版) Config Sync 的升級設定。
預設值也是唯一支援的值為 manual。
|
spec.configSync.enabled |
如果 true,則會安裝及管理 Config Sync。如果 false,則會解除安裝先前管理的 Config Sync,並忽略其餘的 .spec.configSync 設定。使用 gcloud CLI 429.0.0 以下版本時,必須提供這項資訊。適用於 gcloud CLI 430.0.0 以上版本。預設值:true |
spec.configSync.sourceType |
Config Sync 應從中同步處理的來源類型。
接受 git 或 oci。預設值:git。 |
spec.configSync.syncRepo |
要做為資料來源的 Git 存放區、OCI 映像檔或 Helm 資訊套件網址。 如果沒有準備好的存放區,可以省略這個欄位。 |
spec.configSync.syncBranch |
要用來當做同步處理來源的 Git 存放區分支版本。如果 .spec.configSync.sourceType 設為 oci,系統就會忽略這個欄位。這個欄位為選填欄位,預設值為 master。建議使用 spec.configSync.syncRev 欄位指定分支名稱。如果同時使用這兩個欄位,spec.configSync.syncRev 欄位的優先順序會高於 spec.configSync.syncBranch。 |
spec.configSync.policyDir |
Git 存放區或 OCI 映像檔中,要同步處理的設定所在根目錄路徑。預設值:存放區的根目錄。 |
spec.configSync.syncWait |
連續同步處理作業之間的間隔時間,單位為秒。預設值:15。 |
spec.configSync.syncRev |
要同步處理的 Git 修訂版本 (標記或雜湊) 或分支版本。如果 .spec.configSync.sourceType 設為 oci,系統就會忽略這個欄位。這個欄位為選填,預設值為 HEAD。使用雜湊時,必須是完整雜湊,不得使用縮寫形式。 |
spec.configSync.preventDrift |
如果 true,則啟用 Config Sync 許可網路鉤子,防止漂移,方法是拒絕將衝突變更推送至即時叢集。預設值:false。
無論這個欄位的值為何,Config Sync 一律會修正差異。 |
spec.configSync.stopSyncing |
如果 true,則停止單一叢集的設定同步。預設為 false。 |
spec.configSync.secretType |
針對存取「.spec.configSync.syncRepo」設定的 Secret 類型。
如果選取 git 做為來源類型,值必須為 ssh、cookiefile、gcenode、gcpserviceaccount、token 或 none。如果選取 oci 做為來源類型,值必須為 gcenode、gcpserviceaccount 或 none。
這個欄位的驗證會區分大小寫。必填。 |
spec.configSync.gcpServiceAccountEmail |
用於註解 RootSync 或 RepoSync 控制器的 Kubernetes 服務帳戶。 Google Cloud 只有在 spec.configSync.secretType 為 gcpserviceaccount 時,才會使用這個欄位。 |
spec.configSync.metricsGcpServiceAccountEmail |
已淘汰:如果已啟用 Workload Identity Federation for GKE,則匯出 Config Sync 指標時不需要服務帳戶。 Google Cloud 請改用 Kubernetes 服務帳戶。 |
spec.configSync.sourceFormat |
設為 unstructured 時,會設定非階層式存放區。預設值:hierarchy。 |
spec.configSync.deploymentOverrides |
Config Sync 部署作業的資源覆寫設定清單。
這個欄位僅適用於容器不是根或命名空間協調器的 Config Sync 部署作業,例如 reconciler-manager。如要覆寫根或命名空間協調器,請改用
根同步或存放區同步欄位。選填。 |
spec.configSync.deploymentOverrides.name |
要覆寫的 Config Sync 部署作業名稱。 值不得為空白。 |
spec.configSync.deploymentOverrides.namespace |
要覆寫的 Config Sync 部署作業命名空間。 值不得為空白。 |
spec.configSync.deploymentOverrides.containers |
Config Sync 容器要求和限制的覆寫設定清單。選填。 |
spec.configSync.deploymentOverrides.containers.name |
要覆寫的 Config Sync 容器名稱。 值不得為空白。 |
spec.configSync.deploymentOverrides.containers.cpuRequest |
容器的 CPU 要求。使用 Kubernetes 中的 CPU 資源單位。選填。 |
spec.configSync.deploymentOverrides.containers.cpuLimit |
容器的 CPU 上限。使用 Kubernetes 中的 CPU 資源單位。選填。 |
spec.configSync.deploymentOverrides.containers.memoryRequest |
容器的記憶體要求。在 Kubernetes 中使用 記憶體資源單位。選填。 |
spec.configSync.deploymentOverrides.containers.memoryLimit |
容器的記憶體限制。在 Kubernetes 中使用 記憶體資源單位。選填。 |
Git 存放區的 Proxy 設定
如果貴機構的安全政策規定必須透過 HTTPS Proxy 轉送流量,您可以使用 Proxy 的 URI 設定 Config Sync,與 Git 主機通訊。只有在使用 cookiefile、none 或 token 授權類型時,才支援 Proxy。
| 鍵 | 說明 |
|---|---|
spec.configSync.httpsProxy |
定義用於存取 Git 存放區的 HTTPS_PROXY 環境變數。例如:https://proxy.internal.business.co:443。HTTPS Proxy 只接受 https 或未經修飾的網址。
含有 http:// 的網址會遭到拒絕。如果使用未經修飾的網址,請確保 Proxy 伺服器和 Git 主機之間的通訊安全無虞。 |
gcloud 套用規格範例
applySpecVersion: 1
spec:
configSync:
enabled: true
sourceFormat: unstructured
syncRepo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
syncBranch: main
secretType: none
policyDir: config-sync-quickstart/multirepo/root
範例 gcloud 套用規格,並覆寫部署資源
如要自訂 Config Sync 資源要求和限制,請在套用規格中新增 deploymentOverrides 欄位。舉例來說,下列 YAML 會覆寫 reconciler-manager 容器的 CPU 和記憶體限制:
applySpecVersion: 1
spec:
configSync:
enabled: true
deploymentOverrides:
- name: reconciler-manager
namespace: config-management-system
containers:
- name: reconciler-manager
cpuRequest: 50m
cpuLimit: 100m
memoryRequest: 256Mi
memoryLimit: 512Mi