本頁說明 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
:所需版本號碼。例如:
gkectl create-config cluster --gke-on-prem-version=1.10.0-gke.8
。
範本
必填欄位和預設值
如果欄位標示為「必填」,則填妥的設定檔必須填入該欄位的值。
部分欄位為條件式必填。舉例來說,如果 loadBalancer.kind
等於 MetalLB
,則 loadBalancer.metalLB.addressPools
為必要欄位。
如果欄位有預設值,且您未輸入任何值,叢集就會使用該值。如要覆寫預設值,請輸入值。
如果欄位未標示為「必要」,且未提供預設值,則該欄位為選填。如果與您相關,可以填寫,但並非必要。
填寫設定檔
在設定檔中輸入欄位值,詳情請參閱下列章節。
name
必要
字串
您為使用者叢集選用的名稱。名稱必須符合下列規定:
- 最多可包含 40 個半形字元
- 只能包含小寫英數字元或連字號 (
-
) - 開頭必須是字母字元
- 結尾為英數字元
範例:
name: "my-user-cluster"
gkeOnPremVersion
必要
可變動
字串
使用者叢集的 Google Distributed Cloud 版本。
範例:
gkeOnPremVersion: "1.29.0-gke.1456"
preparedSecrets.namespace
如要使用預先準備的憑證,請填寫這個欄位。否則請移除這個欄位或排除其註解。
不可變
字串
可能的值:開頭為「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 連線的相關資訊。
如要讓這個部分的欄位與管理員叢集指定的欄位相同,請移除或註解掉該欄位。
如要讓欄位與您為管理員叢集指定的欄位不同,請在此填寫。您在此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
這個部分包含叢集節點 VM 使用的 NTP 伺服器、DNS 伺服器和 DNS 搜尋網域相關資訊。如果您使用 Seesaw 負載平衡器,這項資訊也適用於 Seesaw VM。
如果符合下列一或多項條件,請務必填寫這個部分:
network.ipMode.type
設為static
enableControlplaneV2
設為true
,或允許預設為true
。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"
。
範例:
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
如果 network.ipMode.type
= static
不可變動
字串,則為必填屬性
叢集的 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
如果 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
如果將 enableControlplaneV2
設為 true
,請填寫這個部分。否則,請移除這個部分或排除其註解。
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 位址和選用的主機名稱。
如果是高可用性 (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
必要
不可變動
字串
預先填入:「MetalLB」
將此值設為 "ManualLB"
、"F5BigIP"
、"Seesaw"
或 "MetalLB"
。
如要啟用進階新功能,建議您使用 "ManualLB"
(如果您有第三方負載平衡器,例如 F5 BIG-IP 或 Citrix) 或 "MetalLB"
(如果您使用套裝組合解決方案)。
範例:
loadBalancer: kind: "MetalLB"
loadBalancer.manualLB
如果將 loadbalancer.kind
設為 "manualLB"
,請填寫這個部分。否則,請移除這個部分或排除其註解。
loadBalancer.manualLB.ingressHTTPNodePort
如果 loadBalancer.kind
= ManualLB
,則為必填
不可變更
整數
預先填入:30243
使用者叢集中的 Ingress Proxy 會透過類型為 LoadBalancer
的 Kubernetes Service 公開。服務具有 HTTP 的 ServicePort。您必須為 HTTP ServicePort 選擇 nodePort
值。
將這個欄位設為 nodePort
值。
範例:
loadBalancer: manualLB: ingressHTTPNodePort: 32527
loadBalancer.manualLB.ingressHTTPSNodePort
如果 loadBalancer.kind
= ManualLB
,則為必填
不可變動
整數
預先填入:30879
使用者叢集中的 Ingress Proxy 會透過 LoadBalancer 類型的 Service 公開。服務具有 HTTPS 的 ServicePort。您必須為 HTTPS ServicePort 選擇 nodePort
值。
將這個欄位設為 nodePort
值。
範例:
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
如果將 loadbalancer.kind
設為 "f5BigIP"
,請填寫這個部分。否則,請移除這個部分或排除其註解。
如要啟用進階新功能,建議您為 F5 BIG-IP 負載平衡器設定手動負載平衡。如要啟用手動負載平衡,請將 loadbalancer.kind
設為 "ManualLB"
,並填寫 loadBalancer.manualLB
區段。詳情請參閱啟用手動負載平衡模式。
loadBalancer.f5BigIP.address
如果 loadBalancer.kind
= "f5BigIP"
,則為必填
字串
F5 BIG-IP 負載平衡器的位址。
範例:
loadBalancer: f5BigIP: address: "203.0.113.2"
loadBalancer.f5BigIP.credentials.fileRef.path
如果 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
如果 loadBalancer.kind
= "f5BigIP"
,則為必填
字串
憑證區塊的名稱 (位於憑證設定檔中),內含 F5 BIG-IP 帳戶的使用者名稱和密碼。
範例:
loadBalancer: f5BigIP: credentials: fileRef: entry: "f5-creds"
loadBalancer.f5BigIP.partition
如果 loadBalancer.kind
= "f5BigIP"
,則為必填
字串
您為使用者叢集建立的 BIG-IP 分區名稱。
範例:
loadBalancer: f5BigIP: partition: "my-f5-user-partition"
loadBalancer.f5BigIP.snatPoolName
如果 loadBalancer.kind
= "f5BigIP"
且您使用 SNAT,則為必要項目
字串
SNAT 集區的名稱。
範例:
loadBalancer: f5BigIP: snatPoolName: "my-snat-pool"
loadBalancer.seesaw
如果將 loadbalancer.kind
設為 "Seesaw"
,請填寫這個部分。否則,請移除這個部分或排除其註解。
請注意 SeeSaw 負載平衡器的下列限制:
- 如果高可用性管理員叢集管理這個使用者叢集,則這個使用者叢集無法使用 Seesaw 負載平衡器。
- 啟用 Controlplane V2 的使用者叢集無法使用 Seesaw 負載平衡器。
如要使用這些功能,建議您設定 MetalLB 負載平衡器。如要啟用 MetalLB 負載平衡器,請將 loadbalancer.kind
設為 "MetalLB"
,並填寫 loadBalancer.metalLB
部分。詳情請參閱「使用 MetalLB 進行套裝組合負載平衡」。
如果您目前使用 SeeSaw 負載平衡器,建議遷移至 MetalLB。
loadBalancer.seesaw.ipBlockFilePath
如果 loadBalancer.kind
= Seesaw
不可變動
字串,則為必填屬性
Seesaw VM 的IP 區塊檔案路徑。
範例:
loadBalancer: seesaw: ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"
loadBalancer.seesaw.vrid
如果 loadBalancer.kind
= Seesaw
,則為必填
不可變動
整數
可能的值:1 到 255
預先填入:0
Seesaw VM 的虛擬路由器 ID。這組 ID 是您選擇的整數,在 VLAN 中不得重複。
範例:
loadBalancer: seesaw: vrid: 125
loadBalancer.seesaw.masterIP
如果 loadBalancer.kind
= Seesaw
不可變動
字串,則為必填屬性
在主要 Seesaw VM 上設定的虛擬 IP 位址。
範例:
loadBalancer: seesaw: masterIP: 172.16.20.21
loadBalancer.seesaw.cpus
如果 loadBalancer.kind
= Seesaw
,則為必填
可變動
整數
預先填入:4
每個 Seesaw VM 的 CPU 數量。
範例:
loadBalancer: seesaw: cpus: 8
loadBalancer.seesaw.memoryMB
如果 loadBalancer.kind
= Seesaw
,則為必填欄位
可變動
整數
預先填入:3072
每個 Seesaw VM 的記憶體容量 (以 MiB 為單位)。
範例:
loadBalancer: seesaw: memoryMB: 8192
注意:這個欄位指定的是記憶體的 MiB 數,而非 MB 數。1 MiB 為 2^20 = 1,048,576 個位元組。1 MB 為 10^6 = 1,000,000 個位元組。
loadBalancer.seesaw.vCenter.networkName
不可變動
字串
預設值:與叢集節點相同
含有 Seesaw VM 的 vCenter 網路名稱。
範例:
loadBalancer: seesaw: vCenter: networkName: "my-seesaw-network"
loadBalancer.seesaw.enableHA
不可變動
如果 loadBalancer.kind
= Seesaw
,則為相關
布林值
預先填入:false
預設值:false
如要建立高可用性 (HA) Seesaw 負載平衡器,請將此值設為 true
。否則請將此值設為 false
。高可用性 Seesaw 負載平衡器會使用一對 (主要、備份) VM。
範例:
loadBalancer: seesaw: enableHA: true
loadBalancer.seesaw.disableVRRPMAC
不可變動
如果 loadBalancer.kind
= Seesaw
布林值
預先填入:true
預設值:true
如果將此值設為 true
,Seesaw 負載平衡器不會使用
MAC 學習
進行容錯移轉。而是使用無故 ARP。如果將此值設為 false
,Seesaw 負載平衡器會使用 MAC 學習功能。建議您將此值設為 true
。如果您使用 vSphere 7 以上版本,且有高可用性 Seesaw 負載平衡器,則必須將此值設為 true
。
範例:
loadBalancer: seesaw: disableVRRPMAC: true
loadBalancer.metalLB
如果將 loadbalancer.kind
設為 "MetalLB"
,請填寫這個部分。否則,請移除這個部分或排除其註解。
詳情請參閱使用 MetalLB 進行套裝組合負載平衡。
loadBalancer.metalLB.addressPools
如果 loadBalancer.kind
= 'MetalLB`
,則為必要欄位
可變動
物件陣列,每個物件都包含 MetalLB 負載平衡器要使用的位址集區相關資訊。
loadBalancer.metalLB.addressPools[i].name
如果 loadBalancer.kind
= MetalLB
Mutable
String,則為必填
您為位址集區選用的名稱。
範例:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1"
loadBalancer.metalLB.addressPools[i].addresses
如果 loadBalancer.kind
= MetalLB
可變動
,則為必填
字串陣列,每個字串都是一個地址範圍。每個範圍都必須採用 CIDR 格式或連字號範圍格式。
範例:
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
如要為 Pod 啟用多個網路介面,請將此值設為 true
。否則請將此值設為 false
。
詳情請參閱「為 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
。
可變動
布林值
預先填入:false
預設值:false
範例:
storage: vSphereCSIDisabled: false
masterNode
這個部分包含節點的相關資訊,這些節點會做為這個使用者叢集的控制層節點。
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
這個使用者叢集的控制層節點數量。叢集建立後,就無法變更這個數字。如要稍後更新副本數量,必須重新建立使用者叢集。
範例:
masterNode: replicas: 3
masterNode.autoResize.enabled
可變動
布林值
預先填入:false
預設值:false
將此值設為 true
,即可啟用使用者叢集控制層節點的自動調整大小功能。否則請設為 false
。
詳情請參閱「為使用者叢集的控制層節點啟用節點大小調整功能」。
範例:
masterNode: autoResize: enabled: true
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
指定值。
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」、「windows」
預先填入:「ubuntu_cgv2」
預設值:「ubuntu_containerd」
要在節點集區內 VM 執行的 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.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
如要允許 MetalLB speaker 在集區的節點上執行,請將此值設為 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
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
。
範例:
antiAffinityGroups: enabled: false
enableVMTracking
預覽
不可變動
預先填入:false
請將此值設為 true
,啟用使用 vSphere 標記追蹤 VM 的功能。否則請設為 false
。
詳情請參閱「啟用 VM 追蹤」。
範例:
enableVMTracking: true
nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate
可變動
整數
可能的值:0 或 1
預先填入:0
預設值:TODO:審查員:這項屬性是否有預設值?
一次更新的節點集區數量。如果值為 1
,表示一次只能更新一個節點集區。值為 0
表示可同時更新的節點集區數量沒有上限。
範例:
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
預覽
不可變更
如要為叢集啟用用量計算服務,請填寫這個部分。否則,請移除這個部分或排除其註解。
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 金鑰檔案路徑。
如要更新這個欄位的值,請使用 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) 或任何其他依附元件,請填寫這個部分。否則,請移除這個部分或排除其註解。
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