本文說明適用於 1.30 以上版本 Google Distributed Cloud 的使用者叢集設定檔欄位。
產生設定檔範本
如果您使用 gkeadm
建立管理員工作站,gkeadm
會產生使用者叢集設定檔的範本。此外,gkeadm
也會為你填入部分欄位。
如果您未使用 gkeadm
建立管理員工作站,可以使用 gkectl
為使用者叢集設定檔產生範本。
如要產生使用者叢集設定檔的範本,請按照下列步驟操作:
gkectl create-config cluster --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION
更改下列內容:
OUTPUT_FILENAME
:您選擇的生成範本路徑。如果省略這個旗標,gkectl
會將檔案命名為 user-cluster.yaml
,並放在目前的目錄中。
VERSION
:Google Distributed Cloud 版本號碼。例如:
gkectl create-config cluster --gke-on-prem-version=1.32.100-gke.106
。
範本
必填欄位和預設值
如果欄位標示為「必填」,則填妥的設定檔必須填入該欄位的值。
部分欄位為條件式必填。舉例來說,如果 loadBalancer.kind
等於 MetalLB
,則 loadBalancer.metalLB.addressPools
為必要欄位。
如果欄位有預設值,且您未輸入任何值,叢集就會使用該值。如要覆寫預設值,請輸入值。
如果欄位未標示為「必填」,則為選填。如果與您相關,可以填寫,但並非必要。
填寫設定檔
在設定檔中輸入欄位值,詳情請參閱下列章節。
enableAdvancedCluster
1.32 以上版本
選用
可變動 (允許從 false
變更為 true
)
布林值
預先填入:true
預設值:true
如果您不想在建立新叢集時啟用進階叢集,請將 enableAdvancedCluster
設為 false
。如果將這個旗標設為 true
(已啟用進階叢集),底層的 Google Distributed Cloud 軟體會部署控制器,以便採用更具擴充性的架構。啟用進階叢集後,您就能使用新功能和功能,例如拓撲網域。這個欄位的值必須與管理叢集的 enableAdvancedCluster
欄位相同。
啟用進階叢集前,請務必先查看執行進階叢集時的差異。
如要將現有叢集更新為進階叢集,請參閱「將叢集更新為進階叢集」。更新為進階叢集後,就無法停用。
1.31
僅適用於新叢集
預覽版
選用
不可變更
布林值
預先填入:false
預設值:false
如要在建立新叢集時啟用進階叢集,請將 enableAdvancedCluster
設為 true
。如果將這個旗標設為 true
(啟用進階叢集),底層的 Google Distributed Cloud 軟體會部署控制器,以便採用更具擴充性的架構。啟用進階叢集後,您就能使用新功能和功能,例如拓撲網域。這個欄位的值必須與管理叢集的 enableAdvancedCluster
欄位相同。
1.30 以下版本
不適用。
name
必要
字串
您為使用者叢集選用的名稱。名稱必須符合下列規定:
- 最多可包含 40 個半形字元
- 只能包含小寫英數字元或連字號 (
-
) - 開頭必須是字母字元
- 結尾為英數字元
範例:
name: "my-user-cluster"
gkeOnPremVersion
必要
可變動
字串
使用者叢集的 Google Distributed Cloud 版本。
範例:
gkeOnPremVersion: "1.29.0-gke.1456"
preparedSecrets.namespace
如果管理員叢集設定檔中已設定 infraConfigFilePath
,請移除這個欄位。否則,如要使用預先準備的憑證,請填寫這個欄位。
不可變
字串
可能的值:開頭為「gke-onprem-secrets-」的字串
管理員叢集中的 Kubernetes 命名空間名稱,準備好的祕密會儲存在這個命名空間中,供這個使用者叢集使用。
範例:
preparedSecrets: namespace: "gke-onprem-secrets-alice"
enableControlplaneV2
1.30 以上版本
可變動 (允許從 false
變更為 true
)
布林值
預先填入:true
預設值:true
在 1.30 以上版本中,新使用者叢集必須使用 Controlplane V2。如果設定檔中包含這個欄位,就必須設為 true
。
如要將現有叢集遷移至 Controlplane V2,請參閱「將使用者叢集遷移至建議功能」。遷移至 Controlplane V2 後,就無法停用 Controlplane V2。
啟用 Controlplane V2 後,使用者叢集的控制層會在使用者叢集的一或多個節點上執行。Controlplane V2 的優點包括:
管理員和使用者叢集之間的架構一致性。
故障隔離。管理員叢集發生故障時,使用者叢集不會受到影響。
營運分離。升級管理員叢集不會導致使用者叢集停止運作。
部署作業分離。您可以將管理員和使用者叢集放在不同的故障網域或地理位置。舉例來說,邊緣位置的使用者叢集可能與管理員叢集位於不同的地理位置。
1.29 以下版本
不可變動
布林值
預先填入:true
預設值:true
如要啟用 Controlplane V2,請將 enableControlplaneV2
設為 true
,或從使用者叢集設定檔中移除這項設定。否則請設為 false
。
啟用 Controlplane V2 後,使用者叢集的控制層會在使用者叢集的一或多個節點上執行。如果未啟用 Controlplane V2,使用者叢集控制層會在管理員叢集中執行。
建議您啟用 Controlplane V2。
範例:
enableControlplaneV2: true
vCenter
本節包含 vSphere 環境和 vCenter Server 連線的相關資訊。
如果管理員叢集設定檔中已設定 infraConfigFilePath
,請移除整個區段。
如果您在管理員叢集設定檔中加入 vCenter
區段:
如要讓這個部分的欄位與管理員叢集指定的欄位相同,請移除或註解掉該欄位。
如要讓欄位與您為管理員叢集指定的欄位不同,請在此填寫。您在此
vCenter
部分填寫的任何欄位,都會覆寫管理員叢集設定檔中的對應欄位。
vCenter.address
不可變更
字串
預設值:從管理員叢集繼承
您想用於這個使用者叢集的 vCenter Server 執行個體 IP 位址或主機名稱。
詳情請參閱「尋找 vCenter 伺服器位址」。
如果您指定的值與管理員叢集使用的 vCenter Server 執行個體不同,則必須啟用 Controlplane V2
,並為 network.vCenter.networkName
和 vCenter
區段中的所有必填欄位提供值。
範例:
vCenter: address: "203.0.113.101"
vCenter: address: "my-vcenter-server-2.my-domain.example"
vCenter.datacenter
不可變更
字串
預設值:從管理員叢集繼承
vSphere 資料中心的相對路徑。
如要指定這個欄位的值,您也必須指定:
vCenter.networkName
vCenter.datastore
或vCenter.storagePolicyName
vCenter.cluster
或vCenter.resourcePool
您指定的值會與名為 /
的根資料夾相關。
如果資料中心位於根資料夾中,值就是資料中心的名稱。
範例:
vCenter: datacenter: "my-uc-data-center"
否則,值會是相對路徑,其中包含一或多個資料夾,以及資料中心名稱。
範例:
vCenter: datacenter: "data-centers/data-center-2"
vCenter.cluster
不可變更
字串
預設值:從管理員叢集繼承
代表 ESXi 主機的 vSphere 叢集相對路徑,使用者叢集 VM 會在這些主機上執行。這個 vSphere 叢集代表 vCenter 資料中心中的實體 ESXi 主機子集。
如要指定這個欄位的值,您也必須指定:
vCenter.networkName
vCenter.datacenter
vCenter.datastore
或vCenter.storagePolicyName
指定的值與 /.../DATA_CENTER/vm/
相關。
如果 vSphere 叢集位於 /.../DATA_CENTER/vm/
資料夾中,則值為 vSphere 叢集的名稱
範例:
vCenter: cluster: "my-uc-vsphere-cluster"
否則,該值是相對路徑,包含一或多個資料夾,以及 vSphere 叢集的名稱。
範例:
vCenter: cluster: "clusters/vsphere-cluster-2"
vCenter.resourcePool
不可變更
字串
預設值:從管理員叢集繼承
使用者叢集 VM 的 vCenter 資源集區。
如要使用預設資源集區,請將此值設為 VSPHERE_CLUSTER/Resources
。
範例:
vCenter: resourcePool: "my-uc-vsphere-cluster/Resources"
指定的值與 /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
相關
如果資源集區是 /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
的直接子項,則值為資源集區的名稱。
範例:
vCenter: resourcePool: "my-uc-resource-pool"
否則,該值是具有兩個以上資源集區的相對路徑。
範例:
vCenter: resourcePool: "uc-resource-pool-1/uc-resource-pool-2"
vCenter.datastore
選用
不可變更
字串
預設值:從管理員叢集繼承
使用者叢集的 vSphere 資料儲存庫名稱。
指定的值必須是名稱,而非路徑。值中不得包含任何資料夾。
範例:
vCenter: datastore: "my-datastore"
如果為這個欄位指定值,請勿為 vCenter.storagePolicyName
指定值。vCenter.datastore
欄位無法變更,但將資料存放區遷移至以儲存空間政策為準的管理 (SPBM) 系統時,您可以將該欄位設為空字串。
vCenter.storagePolicyName
選用
不可變動
字串
叢集節點的VM 儲存空間政策名稱。
您也可以為特定節點集區中的節點指定 VM 儲存空間政策。但這裡指定的政策會套用至沒有專屬政策的任何節點集區。
詳情請參閱「設定儲存空間政策」。
如果為這個欄位指定值,請勿為 vCenter.datastore
指定值。
vCenter.caCertPath
可變動
字串
預設值:從管理員叢集繼承
vCenter Server CA 憑證的路徑。 詳情請參閱「取得 vCenter CA 憑證」。
範例:
vCenter: caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert-2.pem"
如要瞭解如何更新這個欄位,請參閱「更新 vCenter 憑證參照」。
vCenter.credentials.fileRef.path
可變動
字串
預設值:從管理員叢集繼承
如果您為 preparedSecrets.namespace 提供值,請勿為這個欄位提供值。請改為提供 vCenter.credentials.secretRef.version 的值。
憑證設定檔的路徑,內含 vCenter 使用者帳戶的使用者名稱和密碼。使用者帳戶必須具備管理員角色或同等權限。請參閱「vSphere 需求」。
您可以使用 gkectl update credentials
更新現有叢集中的這個欄位。詳情請參閱「輪替服務帳戶金鑰」一文。
如要瞭解如何更新 vCenter 憑證,請參閱更新叢集憑證。
範例:
vCenter: credentials: fileRef: path: "my-config-directory/my-credentials-2.yaml"
vCenter.credentials.fileRef.entry
可變動
字串
預設值:從管理員叢集繼承
憑證區塊的名稱,位於憑證設定檔中,內含 vCenter 使用者帳戶的使用者名稱和密碼。
範例:
vCenter: credentials: fileRef: entry: "vcenter-credentials-2"
vCenter.credentials.secretRef.version
字串
可能的值:整數字串或「latest」
預設值:「latest」
如果您為 preparedSecrets.namespace 提供值,請填入這個欄位。否則,請移除這個欄位或排除其註解。
管理員叢集中準備好的 Secret 版本,內含您打算用於這個使用者叢集的 vCenter Server 執行個體使用者名稱和密碼。
範例:
vCenter: credentials: secretRef: version: "1"
vCenter.folder
不可變更
字串
預設值:從管理員叢集繼承
這個相對路徑連往您已建立的 vSphere 資料夾。這個資料夾將存放使用者叢集 VM。
如未指定值,使用者叢集 VM 會放在 /.../DATA_CENTER/vm/
中。
如果您指定值,該值會與 /.../DATA_CENTER/vm/
相對。
這個值可以是資料夾名稱。
範例:
vCenter: folder: "my-uc-folder"
或者,值可以是包含多個資料夾的相對路徑。
範例:
vCenter: folder: "folders/folder-2"
componentAccessServiceAccountKeyPath
可變動
字串
預設值:從管理員叢集繼承
元件存取服務帳戶的 JSON 金鑰檔案路徑。
範例:
componentAccessServiceAccountKeyPath: "my-key-folder/uc-access-key.json"
componentAccessServiceAccountKey.secretRef.version
Mutable
String
可能的值:整數字串或「latest」
預設值:「latest」
管理叢集中準備好的 Secret 版本,內含元件存取服務帳戶的 JSON 金鑰。
範例:
componentAccessServiceAccountKey: secretRef: version: "1"
privateRegistry
如果管理員叢集使用私人容器登錄檔,且您希望使用者叢集使用不同的私人登錄檔或設定,請填寫這個部分。如要使用其他私人登錄檔位址,叢集必須啟用 Controlplane V2。建立及更新叢集時,系統會採用新設定。
如要使用與管理員叢集相同的設定,請移除這個區段或將其註解掉。
privateRegistry.address
不可變更
字串
預設值:從管理員叢集繼承
執行私密 Docker 登錄檔的機器的 IP 位址或完整網域名稱 (FQDN)。
範例:
privateRegistry: address: "203.0.113.10"
privateRegistry: address: "fqdn.example.com"
privateRegistry.credentials.fileRef.path
可變動
字串
預設值:從管理員叢集繼承
如要使用私有登錄檔的預先準備密鑰,請勿提供這個欄位的值。請改為提供 privateRegistry.credentials.secretRef.version 的值。
憑證設定檔的路徑,其中包含 Google Distributed Cloud 可用來存取私人 Docker 登錄檔的帳戶使用者名稱和密碼。
範例:
privateRegistry: credentials: fileRef: path: "my-config-folder/admin-creds.yaml"
privateRegistry.credentials.fileRef.entry
可變動
字串
預設值:從管理員叢集繼承
憑證區塊的名稱 (位於憑證設定檔中),內含私密 Docker 登錄檔帳戶的使用者名稱和密碼。
privateRegistry: credentials: fileRef: entry: "private-registry-creds"
privateRegistry.credentials.secretRef.version
字串
可能的值:整數字串或「latest」
預設值:「latest」
如果您為 preparedSecrets.namespace 提供值,且想為私人登錄檔使用準備好的密鑰,請填寫這個欄位。否則,請移除這個欄位或排除其註解。
管理員叢集中準備好的 Secret 版本,內含您打算用於這個使用者叢集的 vCenter Server 執行個體使用者名稱和密碼。
範例:
privateRegistry: credentials: secretRef: version: "1"
privateRegistry.caCertPath
可變動
字串
預設值:從管理員叢集繼承
當 Docker 從私人登錄檔提取映像檔時,登錄檔必須出示憑證來證明身分。登錄檔的憑證是由憑證授權單位 (CA) 簽署。Docker 會使用 CA 的憑證驗證登錄檔的憑證。
將這個欄位設為 CA 憑證的路徑。
範例:
privateRegistry: caCertPath: "my-cert-folder/registry-ca.crt"
network
這個部分包含使用者叢集網路的相關資訊。
network.hostConfig
1.30 以上版本
這個部分包含叢集節點 VM 使用的 NTP 伺服器、DNS 伺服器和 DNS 搜尋網域資訊。
如果 infraConfigFilePath
已在管理員叢集設定檔中設定 (適用於 1.31 以上版本),請移除整個區段。否則,如果符合下列一或多項條件,就必須提供這類資訊:
network.ipMode.type
設為static
。enableControlplaneV2
設為true
,或允許預設為true
。 請注意,新使用者叢集必須使用 Controlplane V2。
1.29 以下版本
這個部分包含叢集節點 VM 使用的 NTP 伺服器、DNS 伺服器和 DNS 搜尋網域資訊。如果您使用 Seesaw 負載平衡器,這項資訊也適用於 Seesaw VM。
如果符合下列一或多項條件,請務必填寫這個部分:
network.ipMode.type
設為static
。enableControlplaneV2
設為true
,或允許預設為true
。 啟用 Controlplane V2 的叢集不支援 Seesaw 負載平衡器。loadBalancer.kind
設為"Seesaw"
。
network.hostConfig.dnsServers
必要
不可變動
字串陣列。
陣列中的元素數量上限為三個。
VM 的 DNS 伺服器位址。
範例:
network: hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2"
network.hostConfig.ntpServers
必要
不可變動
字串陣列
VM 使用的時間伺服器位址。
範例:
network: hostConfig: ntpServers: - "216.239.35.0"
network.hostConfig.searchDomainsForDNS
不可變動
字串陣列
供主機使用的 DNS 搜尋網域,可做為部分的網域搜尋清單。
範例:
network: hostConfig: searchDomainsForDNS: - "my.local.com"
network.ipMode.type
不可變動
字串
預先填入:「static」
預設值:「dhcp」
如要讓叢集節點從 DHCP 伺服器取得 IP 位址,請將此值設為 "dhcp"
。如要讓叢集節點使用您提供的清單中選取的靜態 IP 位址,請將此值設為 "static"
。如果 enableControlplaneV2
設為 true
,這項設定只會套用至工作站節點。
範例:
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
如果 network.ipMode.type
= static
,或管理員叢集設定檔中已設定 infraConfigFilePath
,則此為必填欄位。
不可變動
字串
叢集的IP 區塊檔案絕對或相對路徑。
範例:
network: ipMode: ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"
network.serviceCIDR
不可變動
字串
預先填入:「10.96.0.0/20」
>
以 CIDR 格式表示的 IP 位址範圍,用於叢集中的服務。至少須為 /24 範圍。
範例:
network: serviceCIDR: "10.96.0.0/20"
network.podCIDR
不可變動
字串
預先填入:「192.168.0.0/16」
預設值:「192.168.0.0/16」
以 CIDR 格式表示的 IP 位址範圍,用於叢集中的 Pod。至少須為 /18 範圍。
範例:
network: podCIDR: "192.168.0.0/16"
Service 範圍不得與 Pod 範圍重疊。
Service 和 Pod 範圍不得與您要從叢集內部連結的任何外部位址重疊。
舉例來說,假設您的服務範圍為 10.96.232.0/24,Pod 範圍為 192.168.0.0/16。從 Pod 傳送至任一範圍內位址的流量,都會視為叢集內流量,不會傳送至叢集外的任何目的地。
具體來說,Service 和 Pod 範圍不得與下列項目重疊:
任何叢集內節點的 IP 位址
負載平衡器機器使用的 IP 位址
控制層節點和負載平衡器使用的 VIP
vCenter 伺服器、DNS 伺服器和 NTP 伺服器的 IP 位址
建議您將 Service 和 Pod 範圍設在 RFC 1918 位址空間中。
建議使用 RFC 1918 位址的原因之一是:假設您的 Pod 或服務範圍包含外部 IP 位址。從 Pod 傳送至其中一個外部位址的任何流量,都會視為叢集內流量,且不會抵達外部目的地。
network.vCenter.networkName
如果管理員叢集設定檔中已設定 infraConfigFilePath
,請移除這個欄位。否則,如果 vCenter.address
與您用於管理員叢集的 vCenter 位址不同,則必須填寫這個欄位。
不可變動
字串
使用者叢集節點的 vSphere 網路名稱。
範例:
network: vCenter: networkName: "my-network"
如果名稱含有特殊字元,您必須使用逸出序列。
特殊字元 | 逸出序列 |
---|---|
斜線 (/ ) |
%2f |
反斜線 (\ ) |
%5c |
百分比符號 (% ) |
%25 |
如果資料中心內的網路名稱不重複,您可以指定完整路徑。
範例:
network: vCenter: networkName: "/my-uc-datacenter/network/my-network"
network.additionalNodeInterfaces
如果將 multipleNetworkInterfaces
設為 true
,請填寫這個部分。
否則,請移除這個部分或排除其註解。
無法變更
物件陣列,每個物件都說明可在部分或所有叢集節點上使用的網路介面。
network.additionalNodeInterfaces[i].networkName
如果 multipleNetworkInterfaces
= true
不可變動
字串,則為必填屬性
這個額外節點介面要連線的 vSphere 網路名稱。
範例:
network: additionalNodeInterfaces: - networkName: "my-node-interface-1"
network.additionalNodeInterfaces[i].type
如果 multipleNetworkInterfaces
= true
不可變動
字串,則為必填屬性
範例:
network: additionalNodeInterfaces: - name: "my-node-interface-1" type: "static"
network.additionalNodeInterfaces[i].ipBlockFilePath
如果 network.additionalNodeInterfaces[i].type
= static
不可變動
字串,則為必填屬性
IP 區塊檔案的路徑,其中包含要用於節點上這個網路介面的 IP 位址。
範例:
network: additionalNodeInterfaces: - name: "my-node-interface-1" type: "static" ipBlockFilePath: "my-ipblock-file-1"
network.controlPlaneIPBlock
如果管理員叢集設定檔中已設定 infraConfigFilePath
,請移除整個區段。
否則,是否要加入這個區段,取決於您在 enableControlplaneV2
中設定的值:
- 如果
enableControlplaneV2
是true
,請填寫這個部分。 - 如果
enableControlplaneV2
是false
,請移除這個部分。
network.controlPlaneIPBlock.netmask
如果 enableControlplaneV2
= true
不可變動
字串,則為必填屬性
範例:
network: controlPlaneIPBlock: netmask: "255.255.255.0"
network.controlPlaneIPBlock.gateway
如果 enableControlplaneV2
= true
不可變動
字串,則為必填屬性
範例:
network: controlPlaneIPBlock: gateway: "172.16.21.1"
network.controlPlaneIPBlock.ips
如果 enableControlplaneV2
= true
不可變動
物件陣列,每個物件都有 IP 位址和主機名稱。主機名稱是控制平面第 2 版遷移作業的必要條件,否則為選填。
如果是高可用性 (HA) 使用者叢集,這個陣列會有三個元素。如為非高可用性使用者叢集,陣列會包含一個元素。
範例:
network: controlPlaneIPBlock: ips: - ip: "172.16.21.6" hostname: "cp-vm-1" - ip: "172.16.21.7" hostname: "cp-vm-2" - ip: "172.16.21.8" hostname: "cp-vm-3"
loadBalancer
這個部分包含使用者叢集負載平衡器的相關資訊。
loadBalancer.vips.controlPlaneVIP
必要
不可變動
字串
您選擇在負載平衡器上設定的 IP 位址,適用於使用者叢集的 Kubernetes API 伺服器。
範例:
loadBalancer: vips: controlplaneVIP: "203.0.113.3"
loadBalancer.vips.ingressVIP
必要
不可變動
字串
您選擇在負載平衡器上設定的 IP 位址,用於 Ingress Proxy。
範例:
loadBalancer: vips: ingressVIP: "203.0.113.4"
loadBalancer.kind
指定要使用的負載平衡器類型。
1.32 以上版本
必要
不可變動
字串
預先填入:「MetalLB」
您可使用的負載平衡器類型,取決於是否要將叢集設定為使用拓撲網域。如果管理員叢集設定檔中已設定 infraConfigFilePath
欄位,叢集就會使用拓撲網域。
使用拓撲網域:請將此值設為
"ManualLB"
。如要使用拓撲網域,您必須設定第三方負載平衡器 (例如 F5 BIG-IP 或 Citrix)。沒有拓撲網域:請設為
"ManualLB"
或"MetalLB"
。 如果您使用第三方負載平衡器,請使用"ManualLB"
;如果您使用我們的套裝解決方案,請使用"MetalLB"
。您也可以選擇為控制平面流量設定不同類型的負載平衡器。詳情請參閱masterNode.controlPlaneLoadBalancer
。
1.31
必要
不可變動
字串
預先填入:「MetalLB」
您可使用的負載平衡器類型,取決於是否要將叢集設定為使用拓撲網域。如果管理員叢集設定檔中已設定 infraConfigFilePath
欄位,叢集就會使用拓撲網域。
使用拓撲網域:請將此值設為
"ManualLB"
。如要使用拓撲網域,必須設定第三方負載平衡器 (例如 F5 BIG-IP 或 Citrix)。沒有拓撲網域:請設為
"ManualLB"
或"MetalLB"
。 如果您使用第三方負載平衡器,請使用"ManualLB"
;如果您使用我們的套裝解決方案,請使用"MetalLB"
。
1.30
必要
不可變動
字串
預先填入:「MetalLB」
請將此值設為 "ManualLB"
或 "MetalLB"
。如果您使用第三方負載平衡器 (例如 F5 BIG-IP 或 Citrix),請使用 "ManualLB"
;如果是使用我們隨附的解決方案,請使用 "MetalLB"
。
雖然您可以升級將 kind
設為 "F5BigIP"
或 "Seesaw"
的叢集,但無法建立新叢集。如要瞭解如何遷移負載平衡設定,請參閱「規劃叢集遷移至建議功能」。
範例:
loadBalancer:
kind: "MetalLB"
1.29 以下版本
必要
不可變動
字串
預先填入:「MetalLB」
將此值設為 "ManualLB"
、"F5BigIP"
、"Seesaw"
或 "MetalLB"
。
如要啟用 Dataplane V2 和 Controlplane V2,建議您使用 "ManualLB"
(如果您有第三方負載平衡器,例如 F5 BIG-IP 或 Citrix),或使用 "MetalLB"
(適用於我們的套裝解決方案)。
範例:
loadBalancer:
kind: "MetalLB"
使用 Google Cloud 控制台、gcloud CLI 或 Terraform 建立使用者叢集時,管理員叢集和使用者叢集的負載平衡器類型必須相同。唯一的例外是,如果管理員叢集使用 Seesaw,使用者叢集就可以使用 MetalLB。如要讓管理員和使用者叢集使用不同類型的負載平衡器,請務必使用 gkectl
指令列工具建立使用者叢集。
loadBalancer.manualLB
如果將 loadbalancer.kind
設為 "manualLB"
,請填寫這個部分。否則,請移除這個部分或排除其註解。
loadBalancer.manualLB.ingressHTTPNodePort
如果 loadBalancer.kind
= ManualLB
,則為必填 (請參閱版本注意事項)
不可變動
整數
預先填入:30243
使用者叢集中的 Ingress Proxy 會透過類型為 LoadBalancer
的 Kubernetes Service 公開。服務具有 HTTP 的 ServicePort。為 HTTP ServicePort 選擇 nodePort
值,並將這個欄位設為 nodePort
值。
版本注意事項:在 1.30 以上版本中,使用 Controlplane V2 的叢集可選擇是否要使用 Ingress 節點埠。
範例:
loadBalancer: manualLB: ingressHTTPNodePort: 32527
loadBalancer.manualLB.ingressHTTPSNodePort
如果 loadBalancer.kind
= ManualLB (see Version note)
,則為必填
不可變動
整數
預先填入:30879
使用者叢集中的 Ingress Proxy 會透過 LoadBalancer 類型的 Service 公開。服務具有 HTTPS 的 ServicePort。為 HTTPS ServicePort 選擇 nodePort
值,並將這個欄位設為 nodePort
值。
版本注意事項:在 1.30 以上版本中,使用 Controlplane V2 的叢集可選擇是否要使用 Ingress 節點埠。
範例:
loadBalancer: manualLB: ingressHTTPSNodePort: 30139
loadBalancer.manualLB.controlPlaneNodePort
如果 loadBalancer.kind
= ManualLB
且 enableControlplaneV2
= false
,則為必填
不可變更
整數
預先填入:30562
使用者叢集的 Kubernetes API 伺服器會在管理員叢集中執行,並由 LoadBalancer
類型的 Service 公開。您必須為服務選擇 nodePort
值。
將這個欄位設為 nodePort
值。
範例:
loadBalancer: manualLB: controlPlaneNodePort: 30968
loadBalancer.manualLB.konnectivityServerNodePort
如果 loadBalancer.kind
= ManualLB
且
enableControlplaneV2
= false
,則為必填
不可變動
整數
預先填入:30563
使用 kubeception 的使用者叢集 Kubernetes API 伺服器會在管理員叢集中執行,並由 LoadBalancer
類型的 Service 公開。Konnectivity 伺服器會重複使用這項服務,但 nodePort
值不同。您必須為 Konnectivity 伺服器選擇 nodePort
值。
將這個欄位設為 Konnectivity 伺服器的 nodePort
值。
範例:
loadBalancer: manualLB: konnectivityServerNodePort: 30969
loadBalancer.f5BigIP
1.30 以上版本
在 1.30 以上版本中,新使用者叢集不允許 "F5BigIP"
的值為 loadbalancer.kind
。如果設定檔中含有 loadBalancer.f5BigIP
區段,請移除或註解掉該區段。
您仍可搭配新使用者叢集使用 F5 BIG-IP 負載平衡器,但設定方式不同。如需設定詳情,請參閱「啟用手動負載平衡模式」。
如果現有叢集已設定這個部分,系統會封鎖升級至 1.32 版的作業。升級至 1.32 版之前,請務必將叢集遷移至建議功能。
1.29 以下版本
如果將 loadbalancer.kind
設為 "F5BigIP"
,請填寫這個部分。否則,請移除這個部分或排除其註解。
如要啟用進階新功能,建議您為 F5 BIG-IP 負載平衡器設定手動負載平衡。如要啟用手動負載平衡,請將 loadbalancer.kind
設為 "ManualLB"
,並填寫 loadBalancer.manualLB
區段。詳情請參閱啟用手動負載平衡模式。
如果您有現有的 F5-BIG-IP 負載平衡器,且叢集設定使用這個部分,升級至 1.29 以上版本後,建議您遷移至手動負載平衡。
loadBalancer.f5BigIP.address
1.30 以上版本
新叢集不允許使用
如果 loadBalancer.kind
= "F5BigIP"
,則為必要條件
字串
F5 BIG-IP 負載平衡器的位址。
範例:
loadBalancer:
f5BigIP:
address: "203.0.113.2"
1.29 以下版本
如果 loadBalancer.kind
= "F5BigIP"
,則為必填
字串
F5 BIG-IP 負載平衡器的位址。
範例:
loadBalancer:
f5BigIP:
address: "203.0.113.2"
loadBalancer.f5BigIP.credentials.fileRef.path
1.30 以上版本
新叢集不允許使用
如果 loadBalancer.kind
= "F5BigIP"
,則為必要條件
字串
憑證檔案的路徑,其中包含 Google Distributed Cloud 可用來連線至 F5 BIG-IP 負載平衡器的帳戶使用者名稱和密碼。
使用者帳戶必須具備使用者角色,且擁有足夠的權限來設定及管理負載平衡器。「管理員」或「資源管理員」角色皆可。
如要瞭解如何更新 F5 BIG-IP 憑證,請參閱更新叢集憑證。
範例:
loadBalancer:
f5BigIP:
credentials:
fileRef:
path: "my-config-folder/user-creds.yaml"
1.29 以下版本
如果 loadBalancer.kind
= "F5BigIP"
,則為必填
字串
憑證檔案的路徑,其中包含 Google Distributed Cloud 可用來連線至 F5 BIG-IP 負載平衡器的帳戶使用者名稱和密碼。
使用者帳戶必須具備使用者角色,且擁有足夠的權限來設定及管理負載平衡器。「管理員」或「資源管理員」角色皆可。
如要瞭解如何更新 F5 BIG-IP 憑證,請參閱更新叢集憑證。
範例:
loadBalancer:
f5BigIP:
credentials:
fileRef:
path: "my-config-folder/user-creds.yaml"
loadBalancer.f5BigIP.credentials.fileRef.entry
1.30 以上版本
新叢集不允許使用
如果 loadBalancer.kind
= "F5BigIP"
,則為必要條件
字串
憑證區塊的名稱,位於憑證設定檔中,用於保存 F5 BIG-IP 帳戶的使用者名稱和密碼。
範例:
loadBalancer:
f5BigIP:
credentials:
fileRef:
entry: "f5-creds"
1.29 以下版本
如果 loadBalancer.kind
= "F5BigIP"
,則為必填
字串
憑證區塊的名稱,位於憑證設定檔中,用於保存 F5 BIG-IP 帳戶的使用者名稱和密碼。
範例:
loadBalancer:
f5BigIP:
credentials:
fileRef:
entry: "f5-creds"
loadBalancer.f5BigIP.partition
1.30 以上版本
不允許用於新叢集
如果 loadBalancer.kind
= "F5BigIP"
,則為必要欄位
字串
您為使用者叢集建立的 BIG-IP 分區名稱。
範例:
loadBalancer:
f5BigIP:
partition: "my-f5-user-partition"
1.29 以下版本
如果 loadBalancer.kind
= "F5BigIP"
,則為必填
字串
您為使用者叢集建立的 BIG-IP 分區名稱。
範例:
loadBalancer:
f5BigIP:
partition: "my-f5-user-partition"
loadBalancer.f5BigIP.snatPoolName
1.30 以上版本
不適用於新叢集
如果 loadBalancer.kind
= "F5BigIP"
且您使用 SNAT,則為必填
字串
SNAT 集區的名稱。
範例:
loadBalancer:
f5BigIP:
snatPoolName: "my-snat-pool"
1.29 以下版本
如果 loadBalancer.kind
= "F5BigIP"
且您使用 SNAT,則為必要項目
字串
SNAT 集區的名稱。
範例:
loadBalancer:
f5BigIP:
snatPoolName: "my-snat-pool"
loadBalancer.seesaw
1.30 以上版本
在 1.30 以上版本中,新使用者叢集的 loadbalancer.kind
不允許使用 "Seesaw"
值,因為這個負載平衡器不支援新功能和進階功能。如果設定檔中含有 loadBalancer.seesaw
區段,請移除或註解掉該區段。
您可以改為設定隨附的 MetalLB 負載平衡器。如要啟用 MetalLB 負載平衡器,請將 loadbalancer.kind
設為 "MetalLB"
,並填寫 loadBalancer.metalLB
區段。詳情請參閱「使用 MetalLB 進行套裝組合負載平衡」。
1.29 以下版本
如果將 loadbalancer.kind
設為 "Seesaw"
,請填寫這個部分。否則,請移除這個部分或排除其註解。
請注意 SeeSaw 負載平衡器的下列限制:
- 如果高可用性管理員叢集管理這個使用者叢集,則這個使用者叢集無法使用 Seesaw 負載平衡器。
- 啟用 Controlplane V2 的使用者叢集無法使用 Seesaw 負載平衡器。
如要使用這些功能,建議您設定 MetalLB 負載平衡器。如要啟用 MetalLB 負載平衡器,請將 loadbalancer.kind
設為 "MetalLB"
,並填寫 loadBalancer.metalLB
部分。詳情請參閱「使用 MetalLB 進行套裝組合負載平衡」。
loadBalancer.seesaw.ipBlockFilePath
1.30 以上版本
新叢集不允許使用
如果 loadBalancer.kind
= Seesaw
,則為必要欄位
不可變更
字串
Seesaw VM 的IP 區塊檔案路徑。
範例:
loadBalancer:
seesaw:
ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"
1.29 以下版本
如果 loadBalancer.kind
= Seesaw
不可變動
字串,則為必填屬性
Seesaw VM 的IP 區塊檔案路徑。
範例:
loadBalancer:
seesaw:
ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"
loadBalancer.seesaw.vrid
1.30 以上版本
新叢集不允許使用
如果 loadBalancer.kind
= Seesaw
,則為必要欄位
不可變更
整數
可能的值:1 到 255
預先填入:0
Seesaw VM 的虛擬路由器 ID。這組 ID 是您選擇的整數,在 VLAN 中不得重複。
範例:
loadBalancer:
seesaw:
vrid: 125
1.29 以下版本
如果 loadBalancer.kind
= Seesaw
,則為必填
不可變動
整數
可能的值:1 到 255
預先填入:0
Seesaw VM 的虛擬路由器 ID。這組 ID 是您選擇的整數,在 VLAN 中不得重複。
範例:
loadBalancer:
seesaw:
vrid: 125
loadBalancer.seesaw.masterIP
1.30 以上版本
新叢集不允許使用
如果 loadBalancer.kind
= Seesaw
,則為必要欄位
不可變更
字串
在主要 Seesaw VM 上設定的虛擬 IP 位址。
範例:
loadBalancer:
seesaw:
masterIP: 172.16.20.21
1.29 以下版本
如果 loadBalancer.kind
= Seesaw
不可變動
字串,則為必填屬性
在主要 Seesaw VM 上設定的虛擬 IP 位址。
範例:
loadBalancer:
seesaw:
masterIP: 172.16.20.21
loadBalancer.seesaw.cpus
1.30 以上版本
不適用於新叢集
如果 loadBalancer.kind
= Seesaw
,則為必要欄位
可變動
整數
預先填入:4
每個 Seesaw VM 的 CPU 數量。
範例:
loadBalancer:
seesaw:
cpus: 8
1.29 以下版本
如果 loadBalancer.kind
= Seesaw
,則為必填
可變動
整數
預先填入:4
每個 Seesaw VM 的 CPU 數量。
範例:
loadBalancer:
seesaw:
cpus: 8
loadBalancer.seesaw.memoryMB
1.30 以上版本
不適用於新叢集
如果 loadBalancer.kind
= Seesaw
,則為必要欄位
可變動
整數
預先填入:3072
每個 Seesaw VM 的記憶體容量 (以 MiB 為單位)。
範例:
loadBalancer:
seesaw:
memoryMB: 8192
注意:這個欄位指定的是記憶體的 MiB 數,而非 MB 數。1 MiB 為 220 = 1,048,576 個位元組。1 MB 為 106 = 1,000,000 個位元組。
1.29 以下版本
如果 loadBalancer.kind
= Seesaw
,則為必填欄位
可變動
整數
預先填入:3072
每個 Seesaw VM 的記憶體容量 (以 MiB 為單位)。
範例:
loadBalancer:
seesaw:
memoryMB: 8192
注意:這個欄位指定的是記憶體的 MiB 數,而非 MB 數。1 MiB 為 220 = 1,048,576 個位元組。1 MB 為 106 = 1,000,000 個位元組。
loadBalancer.seesaw.vCenter.networkName
1.30 以上版本
新叢集不允許使用
不可變動
字串
預設值:與叢集節點相同
含有 Seesaw VM 的 vCenter 網路名稱。
範例:
loadBalancer:
seesaw:
vCenter:
networkName: "my-seesaw-network"
1.29 以下版本
不可變動
字串
預設值:與叢集節點相同
含有 Seesaw VM 的 vCenter 網路名稱。
範例:
loadBalancer:
seesaw:
vCenter:
networkName: "my-seesaw-network"
loadBalancer.seesaw.enableHA
1.30 以上版本
新叢集不允許使用
不可變動
如果 loadBalancer.kind
= Seesaw
,則為相關
布林值
預先填入:false
預設值:false
如要建立高可用性 (HA) Seesaw 負載平衡器,請將此值設為 true
。否則請將此值設為 false
。高可用性 Seesaw 負載平衡器會使用一對 (主要、備份) VM。
範例:
loadBalancer:
seesaw:
enableHA: true
1.29 以下版本
不可變動
如果 loadBalancer.kind
= Seesaw
,則為相關
布林值
預先填入:false
預設值:false
如要建立高可用性 (HA) Seesaw 負載平衡器,請將此值設為 true
。否則請將此值設為 false
。高可用性 Seesaw 負載平衡器會使用一對 (主要、備份) VM。
範例:
loadBalancer:
seesaw:
enableHA: true
loadBalancer.seesaw.disableVRRPMAC
1.30 以上版本
不適用於新叢集
不可變動
如果 loadBalancer.kind
= Seesaw
,則為相關
布林值
預先填入:true
預設值:true
如果設為 true
(建議),Seesaw 負載平衡器不會使用MAC 學習進行容錯移轉。而是使用無故 ARP。如果將這個欄位設為 false
,Seesaw 負載平衡器就會使用 MAC 學習。如果您使用 vSphere 7 以上版本,且有高可用性 Seesaw 負載平衡器,則這個欄位必須設為 true
。
範例:
loadBalancer:
seesaw:
disableVRRPMAC: true
1.29 以下版本
不可變動
如果 loadBalancer.kind
= Seesaw
布林值
預先填入:true
預設值:true
如果將此值設為 true
(建議),Seesaw 負載平衡器就不會使用 MAC 學習進行容錯移轉。而是使用無故 ARP。如果將此值設為 false
,Seesaw 負載平衡器會使用 MAC 學習功能。如果您使用 vSphere 7 以上版本,且有高可用性 Seesaw 負載平衡器,則必須將此值設為 true
。
範例:
loadBalancer:
seesaw:
disableVRRPMAC: true
loadBalancer.metalLB
如果將 loadbalancer.kind
設為 "MetalLB"
,請填寫這個部分。否則,請移除這個部分或排除其註解。
詳情請參閱使用 MetalLB 進行套裝組合負載平衡。
loadBalancer.metalLB.addressPools
如果 loadBalancer.kind
= MetalLB
,則為必填屬性
可變動 (請參閱例外狀況)
物件陣列,每個物件都包含 MetalLB 負載平衡器要使用的位址集區相關資訊。
1.32 以上版本
當 enableAdvancedCluster
設為 true
(已啟用進階叢集) 或 false
(未啟用進階叢集) 時,這個欄位的行為相同。在這兩種情況下,陣列都不會完全可變動。您可以新增位址集區,但系統不支援從現有的位址集區陣列移除位址集區。
1.31
這個欄位的行為取決於 enableAdvancedCluster
是否設為 true
(已啟用進階叢集) 或 false
(未啟用進階叢集):
如果啟用進階叢集,陣列就不是完全可變動。您可以新增位址集區,但無法從現有的位址集區陣列中移除位址集區。
如果未啟用進階叢集:陣列可變動。您可以從現有的位址集區陣列新增及移除位址集區。
1.30 以下版本
您可以從現有的位址集區陣列新增及移除位址集區。
loadBalancer.metalLB.addressPools[i].name
如果 loadBalancer.kind
= MetalLB
,則為必填
可變動 (請參閱例外狀況)
字串
您為位址集區選用的名稱。
1.32 以上版本
這個欄位的行為與 enableAdvancedCluster
設為 true
(已啟用進階叢集) 或 false
(未啟用進階叢集) 時相同。在這兩種情況下,叢集建立後都無法變更名稱。
1.31
這個欄位的行為取決於 enableAdvancedCluster
是否設為 true
(已啟用進階叢集) 或 false
(未啟用進階叢集):
如果啟用進階叢集:叢集建立後無法變更名稱。
如果未啟用進階叢集:叢集建立完成後,您可以變更集區名稱。
1.30 以下版本
叢集建立完成後,您仍可變更集區名稱。
範例:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1"
loadBalancer.metalLB.addressPools[i].addresses
如果 loadBalancer.kind
= MetalLB
,則為必填屬性
可變動 (請參閱例外狀況)
字串陣列,每個字串都是一個地址範圍。每個範圍都必須採用 CIDR 格式或連字號範圍格式。
1.32 以上版本
這個欄位的行為與 enableAdvancedCluster
設為 true
(已啟用進階叢集) 或 false
(未啟用進階叢集) 時相同。在這兩種情況下,您都可以將地址新增至現有的地址集區,但無法移除地址。
1.31
這個欄位的行為取決於 enableAdvancedCluster
是否設為 true
(已啟用進階叢集) 或 false
(未啟用進階叢集):
如果啟用進階叢集:您可以將位址新增至現有位址集區,但無法移除位址。
如果未啟用進階叢集:您可以從現有位址集區新增及移除位址。
1.30 以下版本
您可以從現有地址集區新增及移除地址。
範例:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" addresses: - "192.0.2.0/26" - "192.0.2.64-192.0.2.72"
loadBalancer.metalLB.addressPools[i].avoidBuggyIPs
如果 loadBalancer.kind
= MetalLB
可變動
布林值
預先填入:false
預設值:false
如果將此值設為 true
,MetalLB 控制器就不會將結尾為 .0 或 .255 的 IP 位址指派給服務。這樣可避免有問題的消費者裝置誤將傳送至這些特殊 IP 位址的流量捨棄。
範例:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" - "192.0.2.0/26" - "192.0.2.64-192.0.2.72" avoidBuggyIPs: true
loadBalancer.metalLB.addressPools[i].manualAssign
如果 loadBalancer.kind
= MetalLB
可變動
布林值
預先填入:false
預設值:false
如果不想讓 MetalLB 控制器自動將這個集區的 IP 位址指派給 Service,請將這個值設為 true
。接著,開發人員可以建立 LoadBalancer
類型的 Service,然後手動指定集區中的其中一個位址。
否則請設為 false
。
範例:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" manualAssign: true
enableDataplaneV2
1.30 以上版本
可變動 (允許從 false
變更為 true
)
布林值
預先填入:true
預設值:false
這個欄位會控管叢集使用的容器網路介面 (CNI)。如要使用 Controlplane V2,必須啟用 Dataplane V2。您可以將欄位從 false
變更為 true
,啟用 Dataplane V2,但無法停用 Dataplane V2。
在 1.30 以上版本中,新使用者叢集必須使用 Dataplane V2,且必須設為
true
。如要將現有 1.30 叢集遷移至 Dataplane V2,請參閱「將使用者叢集遷移至建議功能」。在 1.31 版中,所有叢集都必須使用 Dataplane V2。升級至 1.31 版前,請先按照「啟用 Dataplane V2」一文中的步驟操作。
Dataplane V2 的優點包括:
與先前的 CNI 選項 Calico 相比,Dataplane V2 提供更先進且功能強大的容器網路介面 (CNI)。Calico 目前處於維護模式,只會接收重大錯誤修正和安全性更新,不會開發新功能。相較之下,Dataplane V2 持續開發和強化,確保您能使用最新的網路創新技術和功能。
Dataplane V2 是 GKE 和其他 Google Distributed Cloud 產品的首選 CNI。
1.29 以下版本
不可變動
布林值
預先填入:true
預設值:false
如要啟用 Dataplane V2,或使用 Controlplane V2,請將此值設為 true
。否則請將此值設為 false
。
建議您啟用 Dataplane V2。
範例:
enableDataplaneV2: true
如需疑難排解步驟,請參閱「排解 Google Distributed Cloud NFS 和 DataPlane v2 問題」。
dataplaneV2.forwardMode
可變動
字串
可能的值:「snat」、「dsr」
預先填入:「snat」
預設值:「snat」
已啟用 Dataplane V2 的叢集轉送模式。
在來源網路位址轉譯 (SNAT) 模式下,封包從負載平衡器節點轉送至後端 Pod 時,會經過 SNAT 轉譯。Pod 無法查看原始來源 IP 位址,且回傳封包必須通過負載平衡器節點。
在直接伺服器回傳 (DSR) 模式下,封包從負載平衡器節點轉送至後端 Pod 時,會保留原始來源 IP 位址。Pod 可以查看原始來源 IP 位址,且回傳封包會直接傳送至用戶端,不會經過負載平衡器節點。
範例:
dataplaneV2: forwardMode: "dsr"
multipleNetworkInterfaces
不可變動
布林值
預先填入:false
預設值:false
如果在管理員叢集設定檔中設定 infraConfigFilePath
,這個欄位必須為 false
。
如要為 Pod 啟用多個網路介面,請將此值設為 true
。
詳情請參閱「為 Pod 設定多個網路介面」。
範例:
multipleNetworkInterfaces: true
advancedNetworking
不可變動
布林值
預先填入:false
預設值:false
如果您打算建立輸出 NAT 閘道,請將此值設為 true
。否則請設為 false
。
如果將這個欄位設為 true
,則必須將 enableDataplaneV2
設為 true
。
範例:
advancedNetworking: true
disableBundledIngress
如要為叢集停用隨附的 Ingress,請將這個屬性設為 true
。否則請設為 false
。
布林值
可變動
預先填入:false
預設值:false
範例:
disableBundledIngress: true
storage.vSphereCSIDisabled
如要停用 vSphere CSI 元件的部署作業,請將此值設為 true
。否則請設為 false
。
如果管理員叢集設定檔中已設定 infraConfigFilePath
,這個欄位必須為 true
。
可變動
布林值
預先填入:false
預設值:false
範例:
storage: vSphereCSIDisabled: false
masterNode
這個部分包含節點的相關資訊,這些節點會做為這個使用者叢集的控制層節點。
masterNode.controlPlaneLoadBalancer
1.32 以上版本
您可以選擇加入這個部分,指定要用於使用者叢集控制層流量的負載平衡器類型。如要明確設定要使用的負載平衡器類型,而非依賴預設值,請在設定檔中加入 masterNode.controlPlaneLoadBalancer.mode
。此外,您必須在設定檔中設定 loadBalancer.kind
,指定要用於資料層的負載平衡器類型。
masterNode.controlPlaneLoadBalancer.mode
選用
不可變更
字串
預設值:取決於叢集是否使用拓撲網域
您可使用的負載平衡器類型,取決於是否要將叢集設定為使用拓撲網域。如果管理員叢集設定檔中已設定 infraConfigFilePath
欄位,叢集就會使用拓撲網域。
使用拓撲網域:指定
"manual"
,這是預設值。如要使用拓撲網域,請務必設定第三方負載平衡器 (例如 F5 BIG-IP 或 Citrix)。沒有拓撲網域:請指定
"manual"
或"bundled"
。 如果您使用第三方負載平衡器,請使用"manual"
;如果是使用我們的套裝解決方案,請使用"bundled"
,該解決方案會在控制層節點上執行 keepalived + haproxy。預設值為「bundled"
」。
範例:
adminMaster:
controlPlaneLoadBalancer:
mode: "manual"
1.31 以下版本
這個專區無法使用。請改用 loadBalancer.kind
指定使用者叢集要使用的負載平衡器類型。
masterNode.cpus
可變動
整數
預先填入:4
預設值:4
每個節點的 CPU 數量,節點會用來當做這個使用者叢集的控制層。
範例:
masterNode: cpus: 8
masterNode.memoryMB
可變動
整數
預先填入:8192
預設值:8192
每個節點的記憶體容量 (以 MiB 為單位),這類節點會用來當做這個使用者叢集的控制層。必須是 4 的倍數。
範例:
masterNode: memoryMB: 8192
注意:這個欄位指定的是記憶體的 MiB 數,而非 MB 數。1 MiB 為 2^20 = 1,048,576 個位元組。1 MB 等於 10^6 = 1,000,000 個位元組。
masterNode.replicas
不可變動
整數
可能的值:1 或 3
預先填入:1
預設值:1
這個使用者叢集的控制層節點數量。叢集建立後,就無法變更這個數字。如要稍後更新副本數量,必須重新建立使用者叢集。
如果 enableAdvancedCluster
欄位為 true
,則必須將這個欄位設為 3
。進階叢集僅支援高可用性 (HA) 使用者叢集。
範例:
masterNode: replicas: 3
masterNode.autoResize.enabled
可變動
布林值
預先填入:false
預設值:false
將此值設為 true
,即可啟用使用者叢集控制層節點的自動調整大小功能。否則請設為 false
。
詳情請參閱「為使用者叢集的控制層節點啟用節點大小調整功能」。
範例:
masterNode: autoResize: enabled: true
masterNode.vsphere
如果管理員叢集設定檔中已設定 infraConfigFilePath
,請移除整個區段。
masterNode.vsphere.datastore
選用
不可變動
字串
預設值:vCenter.datastore
的值
這個使用者叢集的控制層節點將建立於此資料儲存庫。
指定的值必須是名稱,而非路徑。值中不得包含任何資料夾。
範例:
masterNode: vSphere: datastore: "control-plane-datastore"
如果為這個欄位指定值,請勿為 masterNode.vsphere.storagePolicyName
指定值。masterNode.vsphere.datastore
欄位無法變更,但將資料存放區遷移至以儲存空間政策為準的管理 (SPBM) 時,您可以將該欄位設為空字串。
masterNode.vsphere.storagePolicyName
選用
不可變動
字串
預設值:vCenter.storagePolicyName
的值
控制層節點的VM 儲存空間政策名稱。
詳情請參閱「設定儲存空間政策」。
範例:
masterNode: vSphere: storagePolicyName: "control-plane-storage-policy"
如果為這個欄位指定值,請勿為 masterNode.vsphere.datastore
指定值。
masterNode.topologyDomains
1.32 以上版本
預覽
選用
字串陣列 | 允許一個元素或三個不同元素
不可變動
預設值:vSphereInfraConfig.defaultTopologyDomain
(如在 vSphere 基礎架構設定檔中指定)
拓撲網域陣列。如果管理員叢集設定檔中已設定 infraConfigFilePath
(表示叢集將使用拓撲網域),則可選擇加入這個欄位。陣列中的拓撲網域數量會決定使用者叢集控制層節點的部署方式,如下所示:
- 一個元素:所有使用者叢集控制層節點都會部署在指定的拓撲網域中。
- 三個元素:每個使用者叢集控制層節點都會部署在不同的拓撲網域 (也就是每個拓撲網域一個節點)。
1.31
預覽
選用
字串陣列 | 但僅支援一個元素
不可變動
預設值:vSphereInfraConfig.defaultTopologyDomain
(如在 vSphere 基礎架構設定檔中指定)
拓撲網域陣列。
如果管理員叢集設定檔中已設定 infraConfigFilePath
(表示叢集將使用拓撲網域),則可選擇性加入這個欄位。使用者叢集控制層節點會部署在指定的拓撲網域中。
1.30 以下版本
不適用。
nodePools
必要
可變動
物件陣列,每個物件都描述一個節點集區。
詳情請參閱「建立及管理節點集區」。
nodePools[i].name
必要
不可變動
字串
您為節點集區選用的名稱。名稱必須符合下列規定:
- 最多可包含 40 個半形字元
- 只能包含小寫英數字元或連字號 (
-
) - 開頭必須是字母字元
- 結尾為英數字元
範例:
nodePools: - name: "my-node-pool-1"
nodePools[i].gkeOnPremVersion
升級使用者叢集時,您可以指定所選節點集區維持先前的版本。
如要讓這個節點集區維持在舊版,請將這個值設為舊版。否則,請移除這個欄位或將其設為空字串。 詳情請參閱「升級使用者叢集」。
可變動
字串
預設值:叢集 gkeOnPremVersion
範例:
nodePools: - name: "my-node-pool" gkeOnPremVersion: "1.13.0-gke.16"
nodePools[i].cpus
必要
可變動
整數
預先填入:4
集區中每個節點的 vCPU 數量。
範例:
nodePools" - name: "my-node-pool" cpus: 8
nodePools[i].memoryMB
必要
可變動
整數
預先填入:8192
集區中每個節點的記憶體容量 (以 MiB 為單位)。必須是 4 的倍數。
範例:
nodePools" - name: "my-node-pool" memoryMB: 8192
注意:這個欄位指定的是記憶體的 MiB 數,而非 MB 數。1 MiB 為 2^20 = 1,048,576 個位元組。1 MB 等於 10^6 = 1,000,000 個位元組。
nodePools[i].replicas
必要
可變動
整數
預先填入:3
可能值:叢集中所有節點集區的未含 taint 節點總數不得少於 3 個。
集區中的節點數量。
範例:
nodePools: - name: "my-node-pool" replicas: 5
nodePools[i].bootDiskSizeGB
可變動
整數
預先填入:40
預設值:40
集區中每個節點的開機磁碟大小 (以 GiB 為單位)。
範例:
nodePools - name: "my-node-pool" bootDiskSizeGB: 40
nodePools[i].osImageType
可變動
字串
可能的值:「ubuntu_containerd」、「cos」、「ubuntu_cgv2」、「cos_cgv2」
預先填入:「ubuntu_cgv2」
預設值:「ubuntu_containerd」
要在節點集區內 VM 執行的 OS 映像檔類型。
1.32 版已淘汰 Windows Server 節點集區,1.33 以上版本將無法使用。Windows Server 節點集區的支援服務將於 2026 年 5 月 5 日終止。建議您不要在新叢集上使用「windows」做為 OS 映像檔類型。
請注意,進階叢集有下列限制:
1.31 版:如果
enableAdvancedCluster
欄位為true
,進階叢集僅支援ubuntu-cgroupv2
和ubuntu_containerd
。1.32 版:進階叢集支援「windows」以外的所有 OS 映像檔類型。
範例:
nodePools - name: "my-node-pool" osImageType: "ubuntu_cgv2"
nodePools[i].osImage
如果 nodePools[i].osImageType
= windows
,則為必填
可變動
字串
Windows VM 範本的名稱。範本必須以 Windows Server 2019 ISO 為基礎,且該 ISO 具有 en-US 語言/地區標記。
詳情請參閱「Windows Server OS 節點集區適用的使用手冊」。
nodePools[i].labels
Mutable
Mapping
要套用至集區中每個 Kubernetes 節點物件的標籤。
範例:
nodePools: - name: "my-node-pool" labels: environment: "production" tier: "cache"
基於安全考量,kubelet 無法在特定命名空間中將標籤套用至自身。
保留的節點標籤命名空間為:kubernetes.io
、k8s.io
、googleapis.com
。
nodePools[i].taints
可變動
物件陣列,每個物件都說明套用至集區中每個節點的 Kubernetes 汙染。汙點是與 effect
相關聯的鍵/值組合。taint 會搭配容許條件用於 Pod 排程。請為 effect
指定下列其中一項:NoSchedule
、PreferNoSchedule
、NoExecute
。
範例:
nodePools: - name: "my-node-pool" taints: - key: "staging" value: "true" effect: "NoSchedule"
nodePools[i].vsphere
如果管理員叢集設定檔中已設定 infraConfigFilePath
,請移除 nodePools[i].vsphere
區段中除了 nodePools[i].vsphere.tags
以外的所有欄位。
nodePools[i].vsphere.datastore
可變動
字串
預設值:vCenter.datastore
的值
要在當中建立節點的 vCenter 資料儲存庫名稱。
範例:
nodePools: - name: "my-node-pool" vsphere: datastore: "my-datastore"
如果為這個欄位指定值,請勿為 nodePools[i].vsphere.storagePolicyName
指定值。
nodePools[i].vsphere.storagePolicyName
可變動
字串
預設值:vCenter.storagePolicyName
的值
集區中節點的 VM 儲存空間政策名稱。
詳情請參閱「設定儲存空間政策」。
範例:
nodePools: - name: "my-node-pool" vsphere: storagePolicyName: "my-storage-policy"
如果為這個欄位指定值,請勿為 nodePools[i].vsphere.datastore
指定值。
nodePools[i].vsphere.hostgroups
如要將叢集設定為使用 VM 主機相依性,請填寫這個部分。
可變動的
字串陣列,每個字串都是主機 DRS 群組的名稱。
陣列只能有一個元素。
範例:
nodePools: - name: "my-node-pool" vsphere: hostgroups: - "my-hostgroup"
nodePools[i].vsphere.tags
可變動
物件陣列,每個物件都說明要放在節點集區 VM 上的 vSphere 標記。
每個標記都有類別和名稱。
範例:
nodePools: - name: "my-node-pool" vsphere: tags: - category: "purpose" name: "testing"
如要將標記附加至節點集區中的所有 VM,vCenter 使用者帳戶必須具備下列 vSphere 標記權限:
- vSphere 標記。指派或取消指派 vSphere 標記
- vSphere Tagging.Assign 或 Unassign vSphere Tag on Object (vSphere 7)
nodePools[i].autoscaling
可變動
如要為節點集區啟用自動調度功能,請填寫這個部分。否則,請移除這個部分或排除其註解。
nodePools[i].autoscaling.minReplicas
可變動
整數
可能的值:大於或等於 1
預先填入:0
自動調度器可為集區設定的節點數量下限。
範例:
nodePools: - name: "my-node-pool" autoscaling: minReplicas: 5
nodePools[i].autoscaling.maxReplicas
可變動
整數
預先填入:0
自動調度器可為集區設定的節點數量上限。
範例:
nodePools: - name: "my-node-pool" autoscaling: maxReplicas: 10
nodePools[i].enableLoadBalancer
如果 loadBalancer.kind
= "MetalLB"
可變動
布林值
預先填入:true
預設值:false
1.32 以上版本
當 enableAdvancedCluster
設為 true
(已啟用進階叢集) 或 false
(未啟用進階叢集) 時,這個欄位的行為相同。在這兩種情況下,如要允許 MetalLB 揚聲器在集區中的節點上執行,請將此值設為 true
。否則請設為 false
。
1.31
這個欄位的行為取決於 enableAdvancedCluster
是否設為 true
(已啟用進階叢集) 或 false
(未啟用進階叢集):
如果啟用進階叢集,這個欄位不會有任何影響,因為 MetalLB speaker 一律會在使用者叢集的控制層節點上執行。
如果未啟用進階叢集:如要允許 MetalLB 揚聲器在集區中的節點上執行,請將此值設為
true
。否則請設為false
。
1.29 以下版本
如要允許 MetalLB 揚聲器在集區中的節點上執行,請將此值設為 true
。否則請設為 false
。
詳情請參閱使用 MetalLB 進行套裝組合負載平衡。
範例:
nodePools: - name: "my-node-pool" enableLoadBalancer: true
nodePools[i].updateStrategy.rollingUpdate.maxSurge
預覽
可變動
整數
預設值:1
在更新或升級期間,節點集區中可同時更新的機器數量上限。
nodePools: - name: "my-node-pool" updateStrategy: rollingUpdate: maxSurge: 3
nodePools[i].topologyDomains
1.31 以上版本
如果管理員叢集設定檔中已設定 infraConfigFilePath
(這會啟用拓撲網域),則可選擇性加入這個欄位。
字串陣列 | 但僅支援一個元素
不可變動
預設值:vSphereInfraConfig.defaultTopologyDomain
(如在 vSphere 基礎架構設定檔中指定)
這個節點集區中的節點會放入這個欄位指定的拓撲網域。每個節點集區只能有一個拓撲網域。 節點集區中的所有節點都會放入單一拓撲網域。
1.30 以下版本
不適用。
schedulerConfiguration
1.32 以上版本
預覽
選用
設定拓撲網域時,您可以選擇設定其他要傳遞至 kube-scheduler
的設定。
schedulerConfiguration.defaultTopologySpreadConstraint
預覽
選用
不可變動
這個物件會定義叢集層級的預設拓撲分散限制規則,並套用至 Pod 排程。使用拓撲網域建立使用者叢集時,如果設定這項規則,kube-scheduler
會採用預設拓撲鍵,並預設將 Deployment、Statefulset 和 Replicaset 的 Pod 分散到該鍵上。結構與 Kubernetes 叢集層級的預設限制相同。
範例:
schedulerConfiguration:
defaultTopologySpreadConstraint:
defaultConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
defaultingType: List
詳情請參閱 Kubernetes 說明文件中的「叢集層級的預設限制」。
1.31 以下版本
不適用。
antiAffinityGroups.enabled
可變動
布林值
預先填入:true
預設值:true
如果這個欄位為 true
,Google Distributed Cloud 會為使用者叢集節點建立 VMware Distributed Resource Scheduler (DRS) 反相依性規則,使其分散於資料中心內至少三個實體 ESXi 主機上。
如要使用這項功能,vSphere 環境必須符合下列條件:
已啟用 VMware DRS。VMware DRS 需要 vSphere Enterprise Plus 授權版本。
您的 vSphere 使用者帳戶具有
Host.Inventory.Modify cluster
權限。至少有四個可用的 ESXi 主機。
雖然規則規定叢集節點必須分散在三個 ESXi 主機上,但我們強烈建議您至少要有四個 ESXi 主機。
請注意,如果您有 vSphere Standard 授權,則無法啟用 VMware DRS。
如果未啟用 DRS,或沒有至少四部可排定 vSphere VM 的主機,請將 antiAffinityGroups.enabled
設為 false
。
請注意,進階叢集有下列限制:
1.31 版:如果
enableAdvancedCluster
欄位為true
,進階叢集不支援反親和性規則,您必須將antiAffinityGroups.enabled
設為false
。1.32 版:進階叢集支援反親和性規則。
範例:
antiAffinityGroups: enabled: false
enableVMTracking
預覽
不可變動
預先填入:false
請將此值設為 true
,啟用使用 vSphere 標記追蹤 VM 的功能。否則請設為 false
。
詳情請參閱「啟用 VM 追蹤」。
範例:
enableVMTracking: true
nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate
可變動
整數
可能的值:0 或 1
預先填入:0
預設值:0
一次更新的節點集區數量。如果值為 1
,表示一次只能更新一個節點集區。值為 0
表示可同時更新的節點集區數量沒有上限。
請注意,進階叢集有下列限制:
1.31 版:如果
enableAdvancedCluster
欄位為true
,進階叢集就不支援節點集區更新政策,因此請從設定檔中移除這個部分。1.32 版:進階叢集支援節點集區更新政策。
範例:
nodePoolUpdatePolicy: maximumConcurrentNodePoolUpdate: 1
nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge
預覽
可變動
整數
預設值:1
在更新或升級期間,可同時更新的節點集區機器數量上限。適用於未指定自身更新策略的任何節點集區。
nodePools: - name: "my-node-pool" updateStrategy: rollingUpdate: maxSurge: 3
authentication
本節包含叢集使用者驗證和授權方式的相關資訊。
authentication.oidc
請勿使用這個部分。請改為在建立叢集後,按照「使用 OIDC 設定 Anthos Identity 服務的叢集 」一文的說明,編輯 ClientConfig 自訂資源。
authentication.sni
如要為叢集的 Kubernetes API 伺服器提供額外的服務憑證,請填寫本節。否則,請移除這個部分或排除其註解。
authentication.sni.certPath
字串
Kubernetes API 伺服器的服務憑證路徑。
範例:
authentication: sni: certPath: "my-cert-folder/example.com.crt"
authentication.sni.keyPath
選填
字串
憑證私密金鑰檔案的路徑。
範例:
authentication: sni: keyPath: "my-cert-folder/example.com.key"
gkeConnect
必填
不可變更
本節包含您要用來向 Google Cloud 車隊註冊叢集的 Google Cloud 專案和服務帳戶相關資訊。
gkeConnect.projectID
必要
不可變動
字串
機群主專案的 ID。如果是新叢集,這個專案 ID 必須與 stackdriver.projectID
和 cloudAuditLogging.projectID
中設定的 ID 相同。如果專案 ID 不同,叢集建立作業就會失敗。這項規定不適用於現有叢集。
範例:
gkeConnect: projectID: "my-fleet-host-project"
gkeConnect.location
Immutable
String
預設值:global
每個叢集的機群成員資格都由機群服務 (gkehub.googleapis.com
) 和 Connect 服務 (gkeconnect.googleapis.com
) 管理。這些服務的位置可以是全域或區域。在 1.28 以上版本中,您可以視需要指定 Fleet 和 Connect 服務的執行 Google Cloud區域。如未指定,則會使用服務的全球執行個體。注意事項:
1.28 版之前建立的使用者叢集,是由全域 Fleet 和 Connect 服務管理。
使用 GKE On-Prem API 用戶端 ( Google Cloud 控制台、Google Cloud CLI 或 Terraform) 建立的新叢集,會使用您為 GKE On-Prem API 指定的相同區域。
如果是新叢集,如果包含這個欄位,您指定的區域必須與
cloudAuditLogging.clusterLocation
、stackdriver.clusterLocation
和gkeOnPremAPI.location
中設定的區域相同。如果區域不同,叢集建立作業就會失敗。
範例:
gkeConnect: location: "us-central1"
gkeConnect.registerServiceAccountKeyPath
必要
可變動
字串
connect-register 服務帳戶的 JSON 金鑰檔案路徑。
如要更新這個欄位的值,請使用 gkectl update cluster
。
如要瞭解如何變更連結註冊服務帳戶金鑰,請參閱「輪替服務帳戶金鑰」。
範例:
gkeConnect: registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"
gkeConnect.registerServiceAccountKey.secretRef.version
Mutable
String
可能的值:整數字串或「latest」
預設值:「latest」
管理叢集中準備好的 Secret 版本,其中包含連線註冊服務帳戶的 JSON 金鑰。
範例:
gkeConnect: registerServiceAccountKey: secretRef: version: "1"
gkeOnPremAPI
在 1.16 以上版本中,如果專案已啟用 GKE On-Prem API,專案中的所有叢集都會在 stackdriver.clusterLocation
中設定的區域,自動註冊 GKE On-Prem API。Google Cloud
如要在專案中註冊所有叢集,請務必按照「事前準備」一節中的步驟,在專案中啟用及使用 GKE On-Prem API。
如果不想在 GKE On-Prem API 中註冊叢集,請加入這個區段,並將
gkeOnPremAPI.enabled
設為false
。如果不想在專案中註冊任何叢集,請在專案中停用gkeonprem.googleapis.com
(GKE On-Prem API 的服務名稱)。如需操作說明,請參閱「停用服務」。
在 GKE On-Prem API 中註冊使用者叢集後,您就能使用標準工具 (控制台、Google Cloud CLI 和 Terraform) 管理叢集的生命週期。 Google Cloud 此外,註冊叢集後,您就能使用控制台或 gcloud CLI 查看叢集詳細資料。舉例來說,您可以執行 gcloud
指令,取得使用者叢集的相關資訊。
新增這個區段並建立或更新叢集後,如果後續移除該區段並更新叢集,更新作業就會失敗。
gkeOnPremAPI.enabled
可變動
布林值
預設值:true
如果專案已啟用 GKE On-Prem API,叢集預設會註冊 GKE On-Prem API。如不想註冊叢集,請設為 false
。
在 GKE On-Prem API 中註冊叢集後,如要取消註冊叢集,請進行下列變更,然後更新叢集:
gkeOnPremAPI: enabled: false
gkeOnPremAPI.location
不可變動
字串
預設值:stackdriver.clusterLocation
GKE On-Prem API 執行及儲存叢集中繼資料的 Google Cloud 區域。選擇支援的區域。您必須使用 gkeConnect.location
、stackdriver.clusterLocation
和 cloudAuditLogging.clusterLocation
中設定的相同區域。如果 gkeOnPremAPI.enabled
是 false
,請勿加入這個欄位。
stackdriver
預設為必要
可變動
如要為叢集啟用 Cloud Logging 和 Cloud Monitoring,請填寫這個部分。否則請移除這個部分或排除其註解。
系統預設會顯示這個部分。也就是說,如果沒有加入這個部分,執行 gkectl create cluster
時就必須加入 --skip-validation-stackdriver
旗標。
如果您想使用 GKE On-Prem API 用戶端管理使用者叢集的生命週期,就必須完成這個部分。
stackdriver.projectID
記錄和監控功能需要此欄位
不可變動
字串
機群主專案的 ID。如果是新叢集,這個專案 ID 必須與 gkeConnect.projectID
和 cloudAuditLogging.projectID
中設定的 ID 相同。如果專案 ID 不同,叢集建立作業就會失敗。這項規定不適用於現有叢集。
如有需要,您可以在這個專案中設定記錄檔路由器,將記錄檔轉送至其他專案的記錄檔值區。如要瞭解如何設定記錄路由器,請參閱「支援的目的地」。
範例:
stackdriver: projectID: "my-fleet-host-project"
stackdriver.clusterLocation
記錄與監控功能必填
不可變更
字串
預先填入:「us-central1」
您要將 Cloud Monitoring 指標傳送至哪個 Google Cloud 區域並儲存。建議您選擇靠近內部部署資料中心的區域。
您可以在記錄檔路由器設定中,指定 Cloud Logging 記錄的路由和儲存位置。如要進一步瞭解記錄檔轉送功能,請參閱「轉送和儲存空間總覽」。
Stackdriver 運算子 (stackdriver-operator
) 會將這個欄位的值附加至每個記錄項目和指標,然後再將這些項目和指標傳送至 Google Cloud。這些附加標籤有助於分別在 Logs Explorer 和 Metrics Explorer 中篩選記錄和指標。
如果是新叢集,且您在設定檔中加入 gkeOnPremAPI
和 cloudAuditLogging
區段,則在此設定的區域必須與 gkeConnect.location
、gkeOnPremAPI.location
和 cloudAuditLogging.clusterLocation
中設定的區域相同。如果區域不同,叢集建立作業就會失敗。
範例:
stackdriver: clusterLocation: "us-central1"
stackdriver.enableVPC
不可變動
布林值
預先填入:false
如果叢集的網路是由 VPC 控制,請將此值設為 true
。
這樣可確保所有遙測資料都會流經 Google 的受限 IP 位址。否則請設為 false
。
範例:
stackdriver: enableVPC: false
stackdriver.serviceAccountKeyPath
記錄與監控功能需要此欄位
可變動
字串
記錄/監控服務帳戶的 JSON 金鑰檔案路徑。
如要更新這個欄位的值,請使用 gkectl update cluster
。
如要瞭解如何變更記錄監控服務帳戶金鑰,請參閱「輪替服務帳戶金鑰」。
範例:
stackdriver: serviceAccountKeyPath: "my-key-folder/log-mon-key.json"
stackdriver.serviceAccountKey.secretRef.version
Mutable
String
可能的值:整數字串或「latest」
預設值:「latest」
管理員叢集中準備好的 Secret 版本,其中包含記錄監控服務帳戶的 JSON 金鑰。
範例:
stackdriver: serviceAccountKey: secretRef: version: "1"
stackdriver.disableVsphereResourceMetrics
可變動
布林值
預先填入:false
預設值:false
將此值設為 true
,即可停用從 vSphere 收集指標的功能。
否則請設為 false
。
範例:
stackdriver: disableVsphereResourceMetrics: true
usageMetering
1.32 以上版本
1.32 以上版本不支援用量計算功能。 建立新叢集時,請勿加入這個部分。不過,使用這項功能的現有叢集仍可繼續運作。建議您改用預先定義的資訊主頁「Anthos 叢集用量計算」,瞭解不同層級的資源用量。如果替代方案無法滿足您的用途,請與 Cloud Customer Care 團隊聯絡。
1.30 和 1.31
建議您建立新叢集時,不要使用這項預先發布功能。不過,使用這項功能的現有叢集仍可繼續運作。建議您改用預先定義的資訊主頁「Anthos Cluster Utilization Metering」,瞭解不同層級的資源用量。
如果 enableAdvancedCluster
欄位為
true
,請移除這個部分。進階叢集不支援用量計量。
1.29 以下版本
預覽
不可變更
建議您建立新叢集時,不要使用這項預先發布功能。不過,使用這項功能的現有叢集仍可繼續運作。建議您改用預先定義的資訊主頁「Anthos Cluster Utilization Metering」,瞭解不同層級的資源用量。
usageMetering.bigQueryProjectID
預覽
用量計算服務的必要欄位
不可變動
字串
您要儲存用量計量資料的 Google Cloud 專案 ID。
範例:
usageMetering: bigQueryProjectID: "my-bq-project"
usageMetering.bigQueryDatasetID
預覽
用量計算服務的必要欄位
不可變動
字串
您要儲存用量計算服務資料的 BigQuery 資料集 ID。 範例:
usageMetering: bigQueryDatasetID: "my-bq-dataset"
usageMetering.bigQueryServiceAccountKeyPath
預覽
用量計量功能需要此欄位
不可變動
字串。
BigQuery 服務帳戶的 JSON 金鑰檔案路徑。
如要更新這個欄位的值,請使用 gkectl update cluster
。
如要瞭解如何變更 BigQuery 服務帳戶金鑰,請參閱「輪替服務帳戶金鑰」。
範例:
usageMetering: bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"
usageMetering.bigQueryServiceAccountKey.secretRef.version
Mutable
String
可能的值:整數字串或「latest」
預設值:「latest」
管理員叢集中準備好的 Secret 版本,其中包含 BigQuery 服務帳戶的 JSON 金鑰。
範例:
gkeConnect: bigQueryServiceAccountKey: secretRef: version: "1"
usageMetering.enableConsumptionMetering
預先發布版
用量計量功能需要此欄位
不可變更
布林值
預先填入:false
如要啟用以用量為準的計量方式,請將這個值設為 true
。否則請設為 false。
範例:
usageMetering: enableConsumptionMetering: true
cloudAuditLogging
如要整合叢集 Kubernetes API 伺服器的稽核記錄與 Cloud 稽核記錄,請填寫這個部分。否則,請移除這個區段或排除其註解。
cloudAuditLogging.projectID
Cloud 稽核記錄的必要欄位
不可變動
字串
機群主專案的 ID。
如果是新叢集,這個專案 ID 必須與 gkeConnect.projecID
和 stackdriver.projectID
中設定的 ID 相同。如果專案 ID 不同,叢集建立作業就會失敗。這項規定不適用於現有叢集。
如有需要,您可以在這個專案中設定記錄檔路由器,將記錄檔轉送至其他專案的記錄檔值區。如要瞭解如何設定記錄路由器,請參閱「支援的目的地」。
範例:
cloudAuditLogging: projectID: "my-fleet-host-project"
cloudAuditLogging.clusterLocation
Cloud 稽核記錄的必要欄位
不可變動
字串
您要儲存稽核記錄的 Google Cloud 區域。建議選擇靠近地端資料中心的區域
如果是新叢集,且您在設定檔中加入 gkeOnPremAPI
和 stackdriver
區段,則在此處設定的區域必須與 gkeConnect.location
、gkeOnPremAPI.location
和 stackdriver.clusterLocation
中設定的區域相同。如果區域不同,叢集建立作業就會失敗。
範例:
cloudAuditLogging: clusterLocation: "us-central1"
cloudAuditLogging.serviceAccountKeyPath
Cloud 稽核記錄的必要欄位
可變動
字串
稽核記錄服務帳戶的 JSON 金鑰檔案路徑。
如果您要使用 enableAdvancedCluster
設為 true
建立叢集 (這是設定拓撲網域的必要條件),請將 cloudAuditLogging.serviceAccountKeyPath
設為與 stackdriver.serviceAccountKeyPath
相同的路徑。
如要更新這個欄位的值,請使用 gkectl update cluster
。
如要瞭解如何變更稽核記錄服務帳戶金鑰,請參閱「輪替服務帳戶金鑰」一文。
範例:
cloudAuditLogging: serviceAccountKeyPath: "my-key-folder/audit-log-key.json"
cloudAuditLogging.serviceAccountKey.secretRef.version
Mutable
String
可能的值:整數字串或「latest」
預設值:「latest」
管理員叢集中準備好的 Secret 版本,其中包含稽核記錄服務帳戶的 JSON 金鑰。
範例:
cloudAuditLogging: serviceAccountKey: secretRef: version: "1"
autoRepair.enabled
選用
可變動
布林值
預先填入:true
將此值設為 true
即可啟用節點自動修復功能。否則請設為 false
。
範例:
autoRepair: enabled: true
secretsEncryption
如要加密 Secret,但不需要外部 KMS (Key Management Service) 或任何其他依附元件,請填寫這個部分。否則,請移除這個部分或排除其註解。
如果您將使用 enableAdvancedCluster
設定叢集,並將 true
設為 true
(這是設定拓撲網域的必要條件),請移除這個部分。進階叢集不支援這項功能。
secretsEncryption.mode
密鑰加密作業的必要項目
不可變更
字串
可能的值:「GeneratedKey」
預先填入:「GeneratedKey」
Secret 加密模式。
secretsEncryption: mode: "GeneratedKey"
secretsEncryption.generatedKey.keyVersion
Secret 加密功能需要此欄位
可變動
整數
預先填入:1
您選擇用於金鑰版本號碼的整數。建議您先從 1
開始。
如要瞭解如何更新現有叢集的這個欄位,請參閱「永遠開啟的 Secret 加密」。
範例:
secretsEncryption: generatedKey: keyVersion: 1
secretsEncryption.generatedKey.disabled
可變動
布林值
預先填入:false
將此值設為 true
即可停用 Secret 加密功能。否則請設為 false
。
如要瞭解如何更新現有叢集的這個欄位,請參閱「永遠開啟的 Secret 加密」。
範例:
secretsEncryption: generatedKey: disabled: false