使用者叢集設定檔 1.29

本頁說明 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.networkNamevCenter 區段中的所有必填欄位提供值。

範例:

vCenter:
  address: "203.0.113.101"
vCenter:
  address: "my-vcenter-server-2.my-domain.example"

vCenter.datacenter

不可變更
字串
預設值:從管理員叢集繼承

vSphere 資料中心的相對路徑。

如要指定這個欄位的值,您也必須指定:

  • vCenter.networkName
  • vCenter.datastorevCenter.storagePolicyName
  • vCenter.clustervCenter.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.datastorevCenter.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 = ManualLBenableControlplaneV2 = false,則為必填
不可變更
整數
預先填入:30562

使用者叢集的 Kubernetes API 伺服器會在管理員叢集中執行,並由 LoadBalancer 類型的 Service 公開。您必須為服務選擇 nodePort 值。

將這個欄位設為 nodePort 值。

範例:

loadBalancer:
  manualLB:
    controlPlaneNodePort: 30968

loadBalancer.manualLB.konnectivityServerNodePort

如果 loadBalancer.kind = ManualLBenableControlplaneV2 = 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 負載平衡器的下列限制:

如要使用這些功能,建議您設定 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.iok8s.iogoogleapis.com

nodePools[i].taints

可變動
物件陣列,每個物件都說明套用至集區中每個節點的 Kubernetes 汙染。汙點是與 effect 相關聯的鍵/值組合。taint 會搭配容許條件用於 Pod 排程。請為 effect 指定下列其中一項:NoSchedulePreferNoScheduleNoExecute

範例:

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.projectIDcloudAuditLogging.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.clusterLocationstackdriver.clusterLocationgkeOnPremAPI.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.locationstackdriver.clusterLocationcloudAuditLogging.clusterLocation 中設定的相同區域。如果 gkeOnPremAPI.enabledfalse,請勿加入這個欄位。

stackdriver

預設為必要
可變動

如要為叢集啟用 Cloud Logging 和 Cloud Monitoring,請填寫這個部分。否則請移除這個部分或排除其註解。

系統預設會顯示這個部分。也就是說,如果沒有加入這個部分,執行 gkectl create cluster 時就必須加入 --skip-validation-stackdriver 旗標。

如果您想使用 GKE On-Prem API 用戶端管理使用者叢集的生命週期,就必須完成這個部分。

stackdriver.projectID

記錄和監控功能需要此欄位
不可變動
字串

機群主專案的 ID。如果是新叢集,這個專案 ID 必須與 gkeConnect.projectIDcloudAuditLogging.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 中篩選記錄和指標。

如果是新叢集,且您在設定檔中加入 gkeOnPremAPIcloudAuditLogging 區段,則在此設定的區域必須與 gkeConnect.locationgkeOnPremAPI.locationcloudAuditLogging.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.projecIDstackdriver.projectID 中設定的 ID 相同。如果專案 ID 不同,叢集建立作業就會失敗。這項規定不適用於現有叢集。

如有需要,您可以在這個專案中設定記錄檔路由器,將記錄檔轉送至其他專案的記錄檔值區。如要瞭解如何設定記錄路由器,請參閱「支援的目的地」。

範例:

cloudAuditLogging:
  projectID: "my-fleet-host-project"

cloudAuditLogging.clusterLocation

Cloud 稽核記錄的必要欄位
不可變動
字串

您要儲存稽核記錄的 Google Cloud 區域。建議選擇靠近地端資料中心的區域

如果是新叢集,且您在設定檔中加入 gkeOnPremAPIstackdriver 區段,則在此處設定的區域必須與 gkeConnect.locationgkeOnPremAPI.locationstackdriver.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