本文說明 Google Distributed Cloud 1.29 版管理員叢集設定檔中的欄位。
產生設定檔範本
如果您使用 gkeadm
建立管理員工作站,gkeadm
會產生管理員叢集設定檔的範本。此外,gkeadm
也會為你填入部分欄位。
如果您未使用 gkeadm
建立管理員工作站,可以使用 gkectl
為管理員叢集設定檔產生範本。
如要產生管理員叢集設定檔的範本,請按照下列步驟操作:
gkectl create-config admin --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION
請將 OUTPUT_FILENAME
改成您選擇的生成範本路徑。如果省略這個旗標,gkectl
會將檔案命名為 admin-cluster.yaml
,並放在目前的目錄中。
將 VERSION
替換為 1.29 修補程式版本的完整版本。例如:gkectl create-config admin --gke-on-prem-version=1.29.800-gke.108
。這個版本必須等於或小於 gkectl
版本。如果省略這個標記,系統會根據最新的 1.29 修補程式,在產生的設定範本中填入值。
範本
填寫設定檔
在設定檔中輸入欄位值,詳情請參閱下列章節。
name
選用
字串
預設值:以「gke-admin-」前置字串開頭的隨機名稱
您為叢集選用的名稱。
範例:
name: "my-admin-cluster"
bundlePath
必要
可變動
字串
Google Distributed Cloud 套裝組合檔案的路徑。
Google Distributed Cloud 完整套裝組合檔案包含特定 Google Distributed Cloud 版本的所有元件。建立管理工作站時,系統會將完整套件組合放在下列位置:
/var/lib/gke/bundles/gke-onprem-vsphere-VERSION-full.tgz
範例:
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.10.0-gke.8.full.tgz"
preparedSecrets.enabled
預覽
選用
不可變動
布林值
預先填入:false
預設值:false
如要在管理員叢集中使用準備好的憑證,請將這個值設為 true
。否則請設為 false
。
範例:
preparedSecrets: enabled: true
vCenter
必填
不可變更
本節包含 vSphere 環境和 vCenter Server 連線的相關資訊。
vCenter.address
必要
不可變動
字串
vCenter 伺服器的 IP 位址或主機名稱。
詳情請參閱「尋找 vCenter 伺服器位址」。
範例:
vCenter: address: "203.0.113.100"
vCenter: address: "my-vcenter-server.my-domain.example"
vCenter.datacenter
必要
不可變動
字串
vSphere 資料中心的相對路徑。
您指定的值會與名為 /
的根資料夾相關。
如果資料中心位於根資料夾中,值就是資料中心的名稱。
範例:
vCenter: datacenter: "my-data-center"
否則,值會是相對路徑,其中包含一或多個資料夾,以及資料中心名稱。
範例:
vCenter: datacenter: "data-centers/data-center-1"
vCenter.cluster
必要
不可變動
字串
代表 ESXi 主機的 vSphere 叢集相對路徑,管理員叢集 VM 會在這些主機上執行。這個 vSphere 叢集代表 vCenter 資料中心中的實體 ESXi 主機子集。
指定的值與 /.../DATA_CENTER/vm/
相關。
如果 vSphere 叢集位於 /.../DATA_CENTER/vm/
資料夾中,則值為 vSphere 叢集的名稱。
範例:
vCenter: cluster: "my-vsphere-cluster"
否則,該值是相對路徑,包含一或多個資料夾,以及 vSphere 叢集的名稱。
範例:
vCenter: cluster: "clusters/vsphere-cluster-1"
vCenter.resourcePool
必要
不可變動
字串
管理員叢集 VM 的 vCenter 資源集區。
如要使用預設資源集區,請將此值設為 VSPHERE_CLUSTER/Resources
。
範例:
vCenter: resourcePool: "my-vsphere-cluster/Resources"
如要使用已建立的資源集區,請將此項設為資源集區的相對路徑。
指定的值與 /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
相關
如果資源集區是 /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
的直接子項,則值為資源集區的名稱。
範例:
vCenter: resourcePool: "my-resource-pool"
否則,該值是具有兩個以上資源集區的相對路徑。
範例:
vCenter: resourcePool: "resource-pool-1/resource-pool-2"
vCenter.datastore
如未指定 vCenter.storagePolicyName
,則為必要欄位
不可變動
字串
管理員叢集的 vSphere 資料儲存庫名稱。
指定的值必須是名稱,而非路徑。值中不得包含任何資料夾。
範例:
vCenter: datastore: "my-datastore"
你必須指定 vCenter.datastore
或 vCenter.storagePolicyName
的值,但不能同時指定兩者。如果為這個欄位指定值,請勿為 vCenter.storagePolicyName
指定值。除非您在將資料存放區遷移至以儲存空間政策為基礎的管理 (SPBM) 時,將 vCenter.datastore
欄位設為空字串,否則該欄位無法變更。
vCenter.storagePolicyName
如未指定 vCenter.datastore
,則為必要欄位
不可變動
字串
叢集節點的VM 儲存空間政策名稱。
管理員叢集必須具備高可用性 (HA),才能使用儲存空間政策。
詳情請參閱「設定儲存空間政策」。
你必須指定 vCenter.datastore
或 vCenter.storagePolicyName
的值,但不能同時指定兩者。如果為這個欄位指定值,請勿為 vCenter.datastore
指定值。
vCenter.caCertPath
必要
可變動
字串
vCenter Server CA 憑證的路徑。
詳情請參閱「取得 vCenter CA 憑證」。
如要瞭解如何更新現有叢集的這個欄位,請參閱「更新 vCenter 憑證參照」。
範例:
vCenter: caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert.pem"
vCenter.credentials.fileRef.path
必要
字串
憑證設定檔的路徑,其中包含 vCenter 使用者帳戶的使用者名稱和密碼。使用者帳戶應具備管理員角色或同等權限。請參閱「vSphere 需求」。
您可以使用 gkectl update
更新現有叢集中的這個欄位。
如要瞭解如何更新 vCenter 憑證,請參閱「更新叢集憑證」。
範例:
vCenter: credentials: fileRef: path: "my-config-folder/admin-creds.yaml"
vCenter.credentials.fileRef.entry
必要
字串
憑證區塊的名稱,位於憑證設定檔中,用於保存 vCenter 使用者帳戶的使用者名稱和密碼。
您可以使用 gkectl update
更新現有叢集中的這個欄位。
如要瞭解如何更新 vCenter 憑證,請參閱「更新叢集憑證」。
範例:
vCenter: credentials: fileRef: entry: "vcenter-creds"
vCenter.folder
選用
不可變動
字串
預設值:資料中心範圍的資料夾
這個相對路徑連往您已建立的 vSphere 資料夾。這個資料夾會存放管理員叢集 VM。
如未指定值,管理員叢集 VM 會放在 /.../DATA_CENTER/vm/
中。
如果您指定值,該值會與 /.../DATA_CENTER/vm/
相關。
這個值可以是資料夾名稱。
範例:
vCenter: folder: "my-folder"
或者,值可以是包含多個資料夾的相對路徑。
範例:
vCenter: folder: "folders/folder-1"
vCenter.dataDisk
請勿為這個欄位提供值。您可以刪除該欄位,或將其註解掉。
network
必填
不可變更
這個部分包含管理員叢集網路的相關資訊。
network.hostConfig
必要
不可變更
這個部分包含叢集節點 VM 使用的 NTP 伺服器、DNS 伺服器和 DNS 搜尋網域資訊。
network.hostConfig.dnsServers
如果填寫 network.hostConfig
區段,則為必要欄位。
不可變動
字串陣列。
陣列中的元素數量上限為三個。
VM 的 DNS 伺服器位址。
範例:
network: hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2"
network.hostConfig.ntpServers
如果填寫 network.hostConfig
區段,則為必要欄位。
不可變動
字串陣列
VM 使用的時間伺服器位址。
範例:
network: hostConfig: ntpServers: - "216.239.35.0"
network.hostConfig.searchDomainsForDNS
選用
不可變動
字串陣列
供 VM 使用的 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/admin-cluster-ipblock.yaml"
network.serviceCIDR
必要
不可變動
字串
最小可能範圍:/24
最大可能範圍:/12
預先填入:「10.96.232.0/24」
預設值:「10.96.232.0/24」
以 CIDR 格式表示的 IP 位址範圍,用於叢集中的服務。
範例:
network: serviceCIDR: "10.96.232.0/24"
network.podCIDR
必要
不可變更
字串
最小可能範圍:/18
最大可能範圍:/8
預先填入:「192.168.0.0/16」
預設值:「192.168.0.0/16」
以 CIDR 格式表示的 IP 位址範圍,用於叢集中的 Pod。
範例:
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
必要
不可變動
字串
叢集節點的 vSphere 網路名稱。
範例:
network: vCenter: networkName: "my-network"
如果名稱含有特殊字元,您必須使用逸出序列。
特殊字元 | 逸出序列 |
---|---|
斜線 (/ ) |
%2f |
反斜線 (\ ) |
%5c |
百分比符號 (% ) |
%25 |
如果資料中心內的網路名稱不重複,您可以指定完整路徑。
範例:
network: vCenter: networkName: "/data-centers/data-center-1/network/my-network"
network.controlPlaneIPBlock
必填
network.controlPlaneIPBlock.netmask
必要
不可變動
字串
含有控制層節點的網路的網路遮罩。
範例:
network: controlPlaneIPBlock: netmask: "255.255.255.0"
network.controlPlaneIPBlock.gateway
必要
不可變動
字串
控制層節點預設閘道的 IP 位址。
範例:
network: controlPlaneIPBlock: gateway: "172.16.22.1"
network.controlPlaneIPBlock.ips
必要
不可變動
三個物件的陣列,每個物件都有 IP 位址和選用的主機名稱。
這些是將指派給控制層節點的 IP 位址。
範例:
network: controlPlaneIPBlock: ips: - ip: "172.16.22.6" hostname: "admin-cp-vm-1" - ip: "172.16.22.7" hostname: "admin-cp-vm-2" - ip: "172.16.22.8" hostname: "admin-cp-vm-3"
loadBalancer
本節包含管理員叢集負載平衡器的相關資訊。
loadBalancer.vips.controlPlaneVIP
必要
不可變動
字串
您選擇在負載平衡器上設定的 IP 位址,適用於管理員叢集的 Kubernetes API 伺服器。
範例:
loadBalancer: vips: controlplaneVIP: "203.0.113.3"
loadBalancer.kind
必要
不可變動
字串
預先填入:「MetalLB」
字串。將此值設為 "ManualLB"
、"F5BigIP"
或 "MetalLB"
如要啟用進階新功能,建議您使用 "ManualLB"
(如果您有第三方負載平衡器,例如 F5 BIG-IP 或 Citrix) 或 "MetalLB"
(如果您使用套裝組合解決方案)。
範例:
loadBalancer: kind: "MetalLB"
loadBalancer.manualLB
如果將 loadbalancer.kind
設為 "ManualLB"
,請填寫這個部分。否則請移除這個部分。
不可變動
loadBalancer.manualLB.ingressHTTPNodePort
請從設定檔中移除這個欄位。不會用於管理叢集。
loadBalancer.manualLB.ingressHTTPSNodePort
請從設定檔中移除這個欄位。不會用於管理叢集。
loadBalancer.manualLB.konnectivityServerNodePort
請從設定檔中移除這個欄位。不會用於管理叢集。
loadBalancer.f5BigIP
如果將 loadbalancer.kind
設為 "f5BigIP"
,請填寫這個部分。否則請移除這個部分。
如要啟用進階新功能,建議您為 F5 BIG-IP 負載平衡器設定手動負載平衡。如要啟用手動負載平衡,請將 loadbalancer.kind
設為 "ManualLB"
,並填寫 loadBalancer.manualLB
區段。詳情請參閱啟用手動負載平衡模式。
如果您有現有的 F5-BIG-IP 負載平衡器,且叢集設定使用這個部分,升級至 1.29 以上版本後,建議您遷移至手動負載平衡。
loadBalancer.f5BigIP.address
如果 loadBalancer.kind
= "f5BigIp"
不可變動
字串,則為必填屬性
F5 BIG-IP 負載平衡器的位址。例如:
loadBalancer: f5BigIP: address: "203.0.113.2"
loadBalancer.f5BigIP.credentials.fileRef.path
如果 loadBalancer.kind
= "f5BigIp"
Mutable
String,則為必填
憑證設定檔的路徑,其中包含 Google Distributed Cloud 可用來連線至 F5 BIG-IP 負載平衡器的帳戶使用者名稱和密碼。
使用者帳戶必須具備使用者角色,且該角色擁有足夠的權限,才能設定及管理負載平衡器。「管理員」或「資源管理員」角色皆可。
您可以使用 gkectl update
更新現有叢集中的這個欄位。
如要瞭解如何更新 F5 BIG-IP 憑證,請參閱「更新叢集憑證」。
範例:
loadBalancer: f5BigIP: credentials: fileRef: path: ""my-config-folder/admin-creds.yaml"
loadBalancer.f5BigIP.credentialsfileRef.entry
如果 loadBalancer.kind
= "f5BigIp"
Mutable
String,則為必填
憑證區塊的名稱,位於憑證設定檔中,用於保存 F5 BIG-IP 帳戶的使用者名稱和密碼。
您可以使用 gkectl update
更新現有叢集中的這個欄位。
如要瞭解如何更新 F5 BIG-IP 憑證,請參閱「更新叢集憑證」。
範例:
loadBalancer: f5BigIP: credentials: fileRef: entry: "f5-creds"
loadBalancer.f5BigIP.partition
如果 loadBalancer.kind
= "f5BigIp"
不可變動
字串,則為必填屬性
您為管理員叢集建立的 BIG-IP 分區名稱。
範例:
loadBalancer: f5BigIP: partition: "my-f5-admin-partition"
loadBalancer.f5BigIP.snatPoolName
選用
如果 loadBalancer.kind
= "f5BigIp"
,則為必要欄位
不可變動
字串
如果您使用的是 SNAT,則為 SNAT 集區的名稱。如果未使用 SNAT,請移除這個欄位。
範例:
loadBalancer: f5BigIP: snatPoolName: "my-snat-pool"
loadBalancer.seesaw
請勿使用這個部分。Seesaw 負載平衡器不支援 1.28 以上版本的新管理員叢集。建議您改為為新的管理員叢集設定 MetalLB 負載平衡器。如要進一步瞭解如何設定 MetalLB,請參閱「使用 MetalLB 進行套裝組合負載平衡」。
雖然我們仍支援已升級的非 HA 管理員叢集使用 Seesaw,但建議您遷移至 MetalLB。
antiAffinityGroups.enabled
選用
可變動
布林值
預先填入:true
將此值設為 true
,即可建立 DRS 規則。否則請設為 false
。
範例:
antiAffinityGroups: enabled: 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 主機。這樣可避免您失去管理員叢集控制層。舉例來說,假設您只有三個 ESXi 主機,而管理員叢集控制層節點位於故障的 ESXi 主機上。DRS 規則會禁止控制層節點放置在剩餘的兩個 ESXi 主機上。
請注意,如果您有 vSphere Standard 授權,則無法啟用 VMware DRS。
如果未啟用 DRS,或沒有至少四部主機可供排定 vSphere VM,請將 antiAffinityGroups.enabled
設為 false
。
adminMaster
Immutable
管理員叢集控制層節點的設定。
adminMaster.cpus
預覽
選用
不可變動
整數
預先填入:4
預設值:4
管理員叢集中每個控制層節點的 vCPU 數量。
範例:
adminMaster: cpus: 4
adminMaster.memoryMB
預覽
選用
不可變動
整數
預先填入:16384
預設值:16384
管理員叢集中每個控制層節點的記憶體容量 (以 MiB 為單位)。
範例:
adminMaster: memoryMB: 16384
adminMaster.replicas
新叢集必填
不可變更
整數
可能的值:3
管理員叢集中的控制層節點數量。建立新的管理員叢集時,請將這個欄位設為 3
,建立高可用性 (HA) 管理員叢集。
範例:
adminMaster: replicas: 3
proxy
如果您的網路位於 Proxy 伺服器後方,請填寫這個部分。否則,請移除這個部分或排除其註解。您在此指定的 Proxy 伺服器,會由這個管理員叢集管理的使用者叢集使用。
無法變更
proxy.url
如果填寫 proxy
區段,則為必要欄位。
不可變動
字串
Proxy 伺服器的 HTTP 位址。即使通訊埠號碼與架構的預設通訊埠相同,也請一併加入。
範例:
proxy: url: "http://my-proxy.example.local:80"
您在此指定的 Proxy 伺服器會由 Google Distributed Cloud 叢集使用。此外,除非您在管理工作站上設定 HTTPS_PROXY
環境變數,否則管理工作站也會自動設定為使用這個 Proxy 伺服器。
如果指定 proxy.url
,則必須一併指定 proxy.noProxy
。
設定管理員叢集的 Proxy 設定後,除非重建叢集,否則無法修改或刪除。
proxy.noProxy
選用
不可變動
字串
以逗號分隔的 IP 位址、IP 位址範圍、主機名稱和網域名稱清單,這些項目不應透過 Proxy 伺服器傳輸。Google Distributed Cloud 會直接將要求傳送至這些地址、主機或網域。
範例:
proxy: noProxy: "10.151.222.0/24,my-host.example.local,10.151.2.1"
privateRegistry
私人容器登錄檔是指只有經過驗證的使用者才能存取容器映像檔的登錄檔。如果使用者叢集需要存取工作負載映像檔,請填寫這個部分。設定 privateRegistry
區段時,這個管理員叢集管理的所有使用者叢集,都會從您在此處設定的私有登錄檔提取工作負載映像檔。
如果您設定 privateRegistry
區段,在叢集建立或升級前執行 gkectl prepare
時,gkectl
會將 Google Distributed Cloud 系統映像檔推送至私有登錄檔。建立或升級叢集時,系統會從私人登錄檔擷取系統映像檔。如未設定 privateRegistry
區段,系統會使用元件存取服務帳戶,從 gcr.io/gke-on-prem-release
提取系統映像檔。
在下列情況下,您可能需要設定 privateRegistry
區段,讓叢集從私人登錄檔而非 gcr.io/gke-on-prem-release
中提取系統映像檔:
- 您需要盡量減少連線至 Google Cloud ,因為有安全疑慮或法規要求。
- 貴機構要求輸出流量必須通過 Proxy 伺服器,且連線至 Google Cloud 的網路速度緩慢。
如要將 Google 的 Artifact Registry 做為私人登錄檔使用,請參閱「將 Artifact Registry 做為工作負載映像檔的私人登錄檔」一文,瞭解設定步驟。
privateRegistry.address
私人登錄檔的必要項目
不可變動
字串
執行私人登錄檔的電腦 IP 位址或完整網域名稱 (FQDN)。
範例:
privateRegistry: address: "203.0.113.10"
privateRegistry: address: "fqdn.example.com"
privateRegistry.credentials.fileRef.path
私人登錄檔的必要項目
可變動
字串
憑證設定檔的路徑,該檔案包含 Google Distributed Cloud 可用來存取私人登錄檔的帳戶使用者名稱和密碼。
範例:
privateRegistry: credentials: fileRef: path: "my-config-folder/admin-creds.yaml"
privateRegistry.credentials.fileRef.entry
私人登錄檔的必要項目
可變動
字串
憑證區塊的名稱,位於憑證設定檔中,用於保存私人登錄帳戶的使用者名稱和密碼。
privateRegistry: credentials: fileRef: entry: "private-registry-creds"
privateRegistry.caCertPath
私人登錄檔的必要項目
可變動
字串
當容器執行階段從私人登錄檔提取映像檔時,登錄檔必須出示憑證來證明身分。登錄檔的憑證是由憑證授權單位 (CA) 簽署。容器執行階段會使用 CA 的憑證來驗證登錄檔的憑證。
將這個欄位設為 CA 憑證的路徑。
範例:
privateRegistry: caCertPath: "my-cert-folder/registry-ca.crt"
componentAccessServiceAccountKeyPath
必要
可變動
字串
元件存取服務帳戶的 JSON 金鑰檔案路徑。
範例:
componentAccessServiceAccountKeyPath: "my-key-folder/access-key.json"
gkeConnect
必要
可變動
填寫 gkeConnect
區段時,管理員叢集會在建立後自動向機群註冊。本節包含註冊叢集所需的 Google Cloud 專案和服務帳戶資訊。
建立或更新叢集時,系統會在管理員叢集上設定多項 RBAC 政策。您必須有這些 RBAC 政策,才能在 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 以上版本中,您可以視需要指定 Fleet 和 Connect 服務的執行 Google Cloud區域。如未指定,則會使用服務的全球執行個體。注意事項:
1.28 版之前建立的管理員叢集,是由全域機群和 Connect 服務管理。
如果是新叢集,如果包含這個欄位,您指定的區域必須與
cloudAuditLogging.clusterLocation
、stackdriver.clusterLocation
和gkeOnPremAPI.location
中設定的區域相同。如果區域不同,叢集建立作業就會失敗。
範例:
gkeConnect: location: "us-central1"
gkeConnect.registerServiceAccountKeyPath
必要
可變動
字串
connect-register 服務帳戶的 JSON 金鑰檔案路徑。
範例:
gkeConnect: registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"
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 控制台、Google Cloud CLI 或 Terraform),升級管理員叢集所管理的使用者叢集。註冊叢集後,您也可以執行 gcloud
指令來取得叢集相關資訊。
新增這個區段並建立或更新管理員叢集後,如果後續移除該區段並更新叢集,更新作業就會失敗。
gkeOnPremAPI.enabled
如果包含 gkeOnPremAPI
區段,則為必要欄位。
可變動
布林值
預設值: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 區域。選擇支援的區域。您必須使用在 cloudAuditLogging.clusterLocation
、gkeConnect.location
和 stackdriver.clusterLocation
中設定的相同區域。如果 gkeOnPremAPI.enabled
為 false
,請勿加入這個欄位。
stackdriver
預設為必要
可變動
如要為叢集啟用 Cloud Logging 和 Cloud Monitoring,請填寫這個部分。否則請移除這個部分。
系統預設會顯示這個部分。也就是說,如果沒有加入這個部分,執行 gkectl create admin
時就必須加入 --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
區段,則在此處設定的區域必須與 cloudAuditLogging.clusterLocation
、gkeConnect.location
和 gkeOnPremAPI.location
中設定的區域相同。如果區域不同,叢集建立作業就會失敗。
範例:
stackdriver: clusterLocation: "us-central1"
stackdriver.enableVPC
選用
不可變動
布林值
預先填入:false
如果叢集的網路是由 VPC 控制,請將此值設為 true
。
這樣可確保所有遙測資料都會流經 Google 的受限 IP 位址。否則請設為 false
。
範例:
stackdriver: enableVPC: false
stackdriver.serviceAccountKeyPath
記錄與監控功能需要此欄位
可變動
字串
記錄/監控服務帳戶的 JSON 金鑰檔案路徑。
如要瞭解如何更新現有叢集中的這個欄位,請參閱輪替服務帳戶金鑰。
範例:
stackdriver: serviceAccountKeyPath: "my-key-folder/log-mon-key.json"
stackdriver.disableVsphereResourceMetrics
選用
可變動
適用於記錄和監控
布林值
預先填入:false
預設值:false
將此值設為 true
,即可停用從 vSphere 收集指標的功能。
否則請設為 false
。
如要在 Google Cloud 控制台中管理使用者叢集的生命週期,管理員叢集就必須包含這個部分。
範例:
stackdriver: disableVsphereResourceMetrics: true
cloudAuditLogging
如要整合叢集 Kubernetes API 伺服器的稽核記錄與 Cloud 稽核記錄,請填寫這個部分。否則,請移除這個區段或排除其註解。
Mutable
如要使用 GKE On-Prem API 用戶端管理使用者叢集的生命週期,管理員叢集就必須包含這個部分。
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 金鑰檔案路徑。
如要瞭解如何更新現有叢集中的這個欄位,請參閱輪替服務帳戶金鑰。
範例:
cloudAuditLogging: serviceAccountKeyPath: "my-key-folder/audit-log-key.json"
clusterBackup.datastore
預覽
選用
可變動
字串
如要啟用管理員叢集備份,請將這個值設為要儲存叢集備份的 vSphere 資料存放區。
範例:
clusterBackup: datastore: "my-datastore"
autoRepair.enabled
選用
可變動
布林值
預先填入:true
將此值設為 true
,即可啟用節點自動修復功能。否則請設為 false
。
如要更新這個欄位的值,請使用 gkectl update admin
。
範例:
autoRepair: enabled: true
secretsEncryption
如要加密 Secret,但不需要外部 KMS (Key Management Service) 或任何其他依附元件,請填寫這個部分。否則,請移除這個部分或排除其註解。
無法變更
secretsEncryption.mode
密鑰加密作業的必要項目
不可變更
字串
可能的值:「GeneratedKey」
預先填入:「GeneratedKey」
Secret 加密模式。
secretsEncryption: mode: "GeneratedKey"
secretsEncryption.generatedKey.keyVersion
Secret 加密功能需要此欄位
可變動
整數
預先填入:1
您選擇用於金鑰版本號碼的整數。建議您先從 1
開始。
範例:
secretsEncryption: generatedKey: keyVersion: 1
secretsEncryption.generatedKey.disabled
Secret 加密 (選用)
可變動
布林值
預先填入:false
將此值設為 true
即可停用 Secret 加密功能。否則請設為 false
。
範例:
secretsEncryption: generatedKey: disabled: false
osImageType
選用
可變動
字串
可能的值:「ubuntu_containerd」、「cos」、「ubuntu_cgv2」、「cos_cgv2」
預先填入:「ubuntu_cgv2」
預設值:「ubuntu_containerd」
要在管理員叢集節點上執行的 OS 映像檔類型。
範例:
osImageType: "cos"