使用者叢集設定檔 1.30 以上版本

您可以使用使用者叢集設定檔,定義 Distributed Cloud software only for VMware 中使用者叢集的規格和設定。您可以產生檔案範本,然後查看 1.30 以上版本中的必填欄位、預設值和其他可用欄位。

產生設定檔範本

如果您使用 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.36.200-gke.118。

範本

必填欄位和預設值

如果欄位標示為「Required」,則填妥的設定檔必須填入該欄位的值。

部分欄位為條件式必填。舉例來說,如果 loadBalancer.kind 等於 MetalLB,則必須提供 loadBalancer.metalLB.addressPools。

如果欄位有「Default」(預設) 值,且您未在欄位中輸入任何內容,叢集就會使用該值。您可以輸入值來覆寫預設值。

如果欄位未標示為「必填」,則為選填。您可以視需要填寫,但並非必要。

填寫設定檔

在設定檔中,按照下列各節所述輸入欄位值。

enableAdvancedCluster

1.33 以上

所有新叢集都會建立為進階叢集。建立新叢集時,如果您在設定檔中加入這個欄位,則必須將其設為 true。如果將這個欄位設為 false,系統會禁止建立叢集。

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 命名空間名稱,用於儲存這個使用者叢集的預先準備 Secret。

範例:

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

不可變更
字串
預設值:沿用管理員叢集的設定

vSphere 叢集的相對路徑,代表要執行使用者叢集 VM 的 ESXi 主機。這個 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

可變動
字串
可能的值:整數字串或「latest」
預設值:「latest」

管理員叢集中預先準備的 Secret 版本,其中包含元件存取服務帳戶的 JSON 金鑰。

範例:

componentAccessServiceAccountKey:
  secretRef:
    version: "1"

privateRegistry

如果管理員叢集使用私人 Container Registry,且您希望使用者叢集使用不同的私人登錄檔或設定,請填寫這個部分。如要使用其他私人登錄檔位址,叢集必須啟用 Controlplane V2。系統會在建立及更新叢集時採用新設定。

如要使用與管理員叢集相同的設定,請移除這個部分,或將其註解排除。如果將這個部分留空,系統映像檔會預設為 gcr.io/gke-on-prem-release。

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 以上

這個部分包含 NTP 伺服器、DNS 伺服器和 DNS 搜尋網域的相關資訊,這些網域是由叢集節點 VM 使用。

如果管理員叢集設定檔中設定了 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,這項設定只會套用至 worker 節點。

範例:

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」
>

叢集內 Service 使用的 IP 位址範圍,格式為 CIDR。至少須為 /24 範圍。

範例:

network:
  serviceCIDR: "10.96.0.0/20"

network.podCIDR

不可變更
字串
預先填入:「192.168.0.0/16」
預設值:「192.168.0.0/16」

叢集內 Pod 使用的 IP 位址範圍,以 CIDR 格式表示。至少須為 /18 範圍。

範例:

network:
  podCIDR: "192.168.0.0/16"

Service 範圍不得與 Pod 範圍重疊。

Service 和 Pod 範圍不得與您要從叢集內部連線的任何外部位址重疊。

舉例來說,假設 Service 範圍是 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 或 Service 範圍包含外部 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 位址和主機名稱。從 Controlplane V1 遷移至 Controlplane V2 時,必須提供主機名稱,否則可不提供。vCenter 中的主機名稱不得重複。

如果是高可用性 (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

如果 disableBundledIngress = false,則為必填
不可變更
字串

您選擇在負載平衡器上為 ingress Proxy 設定的 IP 位址。

範例:

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 公開。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 公開。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 以上版本中,新使用者叢集的 loadbalancer.kind 不允許使用 "F5BigIP" 值。如果設定檔中有 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 負載平衡器的下列限制:

如要使用這些功能,建議您設定 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 位址指派給 Service。這可避免有錯誤的消費者裝置誤丟棄傳送至這些特殊 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)。必須啟用 Dataplane V2,才能使用 Controlplane 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

如要停用叢集的套裝組合輸入,請將此值設為 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 mebibyte 為 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

升級使用者叢集時,您可以指定所選 worker 節點集區維持在先前的版本。

如要讓這個 worker 節點集區維持在先前的版本,請將這個值設為先前的版本。否則,請移除這個欄位或將其設為空白字串。這個選項僅適用於 worker 節點集區。負載平衡器節點集區 (具有 enableLoadBalancer: true 的節點集區) 必須與叢集 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 mebibyte 為 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

可變動
字串
可能的值:1.34 以下版本:「ubuntu_containerd」、「cos」
1.35 以上版本:「ubuntu_cgv2」、「cos_cgv2」
預先填入:「ubuntu_cgv2」
預設值:「ubuntu_cgv2」

要在節點集區內 VM 執行的 OS 映像檔類型。

Windows Server 節點集區在 1.32 版中已淘汰,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 為基礎,並具有 en-US 語言/區域標記。

詳情請參閱「Windows Server OS 節點集區使用手冊」。

nodePools[i].labels

Mutable
對應

要套用至集區中各個 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 主機親和性,請填寫這個部分。如果管理員叢集設定檔中已設定 infraConfigFilePath,請改為在 vSphere 基礎架構設定檔的 topologyDomains[i].compute.hostGroups 欄位中設定主機群組。

可變動
字串陣列,每個字串都是主機 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 標記。指派或取消指派物件上的 vSphere 標記 (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 Speaker 在集區中的節點上執行,請將這個值設為 true。否則請設為 false。

1.31

這個欄位的行為取決於 enableAdvancedCluster 是否設為 true (已啟用進階叢集) 或 false (未啟用進階叢集):

  • 如果啟用進階叢集:這個欄位不會產生任何影響,因為 MetalLB 揚聲器一律會在使用者叢集的控制層節點上執行。

  • 如果未啟用進階叢集:如要允許 MetalLB 揚聲器在集區中的節點上執行,請將這個值設為 true。否則,請將其設為 false。

1.29 以下版本

如要允許 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

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

Mutable
Boolean
Prepopulated: true
Default: 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

可變動
整數

一次要更新的節點集區數量。如果值為 1,表示一次可以更新一個節點集區。如果值為 0,則表示一次可更新的節點集區數量不限。

進階叢集

請注意下列進階叢集限制:

  • 1.31 版:如果 enableAdvancedCluster 欄位為 true,則進階叢集不支援節點集區更新政策,因此請從設定檔中移除這個部分。

  • 1.32 版:進階叢集支援節點集區更新政策。

  • maximumConcurrentNodePoolUpdate 的預設值因版本而異:

    • 1.32.0-1.32.1000 版:預設值為 1。
    • 1.32.1100 以上版本:預設值為 0。
    • 1.33.0-1.33.600 版:預設值為 1。
    • 1.33.700 以上版本:預設值為 0。
    • 1.34.0-1.34.200 版:預設值為 1。
    • 1.34.300 以上版本:預設值為 0。

非進階叢集

可能的值:0 或 1
預先填入:0
預設值:0

範例:

nodePoolUpdatePolicy:
  maximumConcurrentNodePoolUpdate: 1

nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge

預覽
可變動
整數
預設值:1

在更新或升級期間,節點集區中可同時更新的機器數量上限。適用於未指定更新策略的節點集區。

nodePools:
- name: "my-node-pool"
  updateStrategy:
    rollingUpdate:
      maxSurge: 3

authentication

本節說明叢集使用者的驗證和授權方式。

authentication.oidc

進階叢集

authentication.oidc.issuerURL

選用
字串

會將授權要求傳送給 OpenID Connect (OIDC) 供應商的網址。Kubernetes API 伺服器會使用這個網址,探索用於驗證權杖的公開金鑰。網址必須使用 HTTPS。

authentication.oidc.kubectlRedirectURL

選用
字串

kubectl 用於授權的重新導向網址。啟用 OIDC 時,必須指定 kubectlRedirectURL 值。

authentication.oidc.clientID

選用
字串

向 OpenID 供應商提出驗證要求時使用的用戶端應用程式 ID。

authentication.oidc.username

選用
字串

用來當做使用者名稱的 JSON Web Token (JWT) 憑證附加資訊。

authentication.oidc.usernamePrefix

選用
字串

在使用者名稱憑證附加資訊的前方加上此字串。

authentication.oidc.group

選用
字串

供應商用來傳回安全性群組的 JSON Web Token (JWT) 憑證附加資訊。

authentication.oidc.groupPrefix

選用
字串

在群組憑證附加資訊的前方加上此字串,即可避免與現有的名稱衝突。舉例來說,假設群組為 dev,前置字串為 oidc:,則 oidc:dev。

authentication.oidc.scopes

選用
字串

要傳送至 OIDC 的其他範圍,以半形逗號分隔。

authentication.oidc.extraParams

選用
字串

要傳送至 OIDC 的其他鍵/值參數,以逗號分隔清單。

authentication.oidc.deployCloudConsoleProxy

選用
布林值
預設值:false

指定是否在叢集中部署反向 Proxy,將Google Cloud 控制台連線至無法透過網際網路公開存取的地端部署識別資訊提供者。如果無法透過公開網際網路連上識別資訊提供者,請將這個欄位設為 true,以便透過Google Cloud 控制台進行驗證。

authentication.oidc.caPath

選用
字串

CA 檔案的絕對或相對路徑。

非進階叢集

請勿使用這個部分。請改為在建立叢集後,按照「設定機群成員叢集以進行 OIDC 驗證」一文所述,編輯 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

不可變更
字串
預設值:global

每個叢集的機群成員資格都由機群服務 (gkehub.googleapis.com) 和 Connect 服務 (gkeconnect.googleapis.com) 管理。服務的位置可以是全域或區域。在 1.28 以上版本中,您可以視需要指定 Google Cloud 機群和 Connect 服務執行的區域。如未指定,則會使用服務的全域執行個體。注意事項:

  • 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。

如要瞭解如何變更 connect-register 服務帳戶金鑰,請參閱「輪替服務帳戶金鑰」。

範例:

gkeConnect:
  registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"

gkeConnect.registerServiceAccountKey.secretRef.version

可變動
字串
可能的值:整數字串或「latest」
預設值:「latest」

管理員叢集中預先準備的 Secret 版本,其中包含 connect-register 服務帳戶的 JSON 金鑰。

範例:

gkeConnect:
  registerServiceAccountKey:
    secretRef:
      version: "1"

gkeOnPremAPI

在 1.16 以上版本中,如果Google Cloud 專案已啟用 GKE On-Prem API,專案中的所有叢集都會在stackdriver.clusterLocation設定的區域中,自動註冊 GKE On-Prem API。

  • 如要將專案中的所有叢集註冊到 GKE On-Prem API,請務必按照「事前準備」中的步驟操作,在專案中啟用及使用 GKE On-Prem API。

  • 如果不想在 GKE On-Prem API 中註冊叢集,請加入這個區段,並將 gkeOnPremAPI.enabled 設為 false。如果不想在專案中註冊任何叢集,請在專案中停用 gkeonprem.googleapis.com (GKE On-Prem API 的服務名稱)。如需操作說明,請參閱「停用服務」。

在 GKE On-Prem API 中註冊使用者叢集後,您就能使用標準工具 ( Google Cloud 控制台、Google Cloud CLI 和 Terraform) 管理叢集的生命週期。此外,註冊叢集後,您可以使用控制台或 gcloud CLI 查看叢集詳細資料。舉例來說,您可以執行 gcloud 指令,取得使用者叢集的相關資訊。

新增這個區段並建立或更新叢集後,如果之後移除該區段並更新叢集,更新作業會失敗。

gkeOnPremAPI.enabled

Mutable
布林值
預設: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 的必要設定。

stackdriver.projectID

記錄和監控功能必要
不可變動
字串

機群主專案的 ID。如果是新叢集,這個專案 ID 必須與 gkeConnect.projectID 和 cloudAuditLogging.projectID 中設定的 ID 相同。如果專案 ID 不同,叢集建立作業就會失敗。這項規定不適用於現有叢集。

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

範例:

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

stackdriver.clusterLocation

記錄和監控功能必填
不可變動
字串
預先填入:「us-central1」

要轉送及儲存 Cloud Monitoring 指標的 Google Cloud 區域。建議您選擇靠近地端部署資料中心的區域。

您可以在記錄檔路由器設定中,指定 Cloud Logging 記錄檔轉送和儲存位置。如要進一步瞭解記錄轉送,請參閱「轉送和儲存空間總覽」。

Stackdriver Operator (stackdriver-operator) 會將這個欄位的值附加到每個記錄項目和指標,然後再轉送至 Google Cloud。這些附加標籤可用於在 Logs Explorer 和 Metrics Explorer 中,分別篩選記錄檔和指標。

如果是新叢集,且您在設定檔中加入 gkeOnPremAPI 和 cloudAuditLogging 區段,則此處設定的區域必須與 gkeConnect.location、gkeOnPremAPI.location 和 cloudAuditLogging.clusterLocation 中設定的區域相同。如果區域不同,叢集建立作業就會失敗。

範例:

stackdriver:
  clusterLocation: "us-central1"

stackdriver.serviceAccountKeyPath

記錄和監控功能必填
可變動
字串

記錄監控服務帳戶的 JSON 金鑰檔案路徑。

如要更新這個欄位的值,請使用 gkectl update cluster。

如要瞭解如何變更記錄/監控服務帳戶金鑰,請參閱「輪替服務帳戶金鑰」。

範例:

stackdriver:
  serviceAccountKeyPath: "my-key-folder/log-mon-key.json"

stackdriver.serviceAccountKey.secretRef.version

可變動
字串
可能的值:整數字串或「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 Cluster Utilization Metering」(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

可變動
字串
可能的值:整數字串或「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.projectID 和 stackdriver.projectID 中設定的 ID 相同。如果專案 ID 不同,叢集建立作業就會失敗。這項規定不適用於現有叢集。

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

範例:

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

可變動
字串
可能的值:整數字串或「latest」
預設值:「latest」

管理員叢集中預先準備的 Secret 版本,其中包含稽核記錄服務帳戶的 JSON 金鑰。

範例:

cloudAuditLogging:
  serviceAccountKey:
    secretRef:
      version: "1"

autoRepair.enabled

選用
可變動
布林值
預先填入:true

將這個值設為 true,即可啟用節點自動修復功能。否則請設為 false。

範例:

autoRepair:
  enabled: true

secretsEncryption

如要加密 Secret,但不需要外部 KMS (金鑰管理服務) 或任何其他依附元件,請填寫這個部分。否則,請移除這個部分或保留註解排除。

如果您要建立叢集,並將 enableAdvancedCluster 設為 true (設定拓撲網域時必須這麼做),請移除這個部分。進階叢集不支援這項功能。

secretsEncryption.mode

加密 Secret 時必須提供
不可變動
字串
可能的值:「GeneratedKey」
預先填入:「GeneratedKey」

Secret 加密模式。

secretsEncryption:
  mode: "GeneratedKey"

secretsEncryption.generatedKey.keyVersion

Secret 加密功能必要
可變動
整數
預先填入:1

選擇要用於金鑰版本號碼的整數。建議您從 1 開始。

如要瞭解如何為現有叢集更新這個欄位,請參閱「隨時可用的 Secret 加密功能」。

範例:

secretsEncryption:
  generatedKey:
    keyVersion: 1

secretsEncryption.generatedKey.disabled

Mutable
Boolean
預先填入:false

將這個值設為 true,即可停用 Secret 加密功能。否則請設為 false。

如要瞭解如何為現有叢集更新這個欄位,請參閱「隨時可用的 Secret 加密功能」。

範例:

secretsEncryption:
  generatedKey:
    disabled: false