叢集資源
必填
可以變更
authentication
本節包含使用 OpenID Connect (OIDC) 時所需的設定。
透過 OIDC,您可以使用現有的身分識別提供者,管理叢集中的使用者和群組驗證。
叢集資源
—
—
authentication.oidc.certificateAuthorityData
(選用步驟) OIDC 供應商的 base64
編碼
PEM 編碼憑證 。如要建立字串,請將憑證 (包含標頭) 的編碼方式改為 base64
。並把產生的字串另列一行加入 certificateAuthorityData
。
例如 (範例已換行,以符合表格):
certificateAuthorityData :
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC
...k1JSUN2RENDQWFT==
叢集資源
選用
無法變更
authentication.oidc.clientID
(選用步驟) 字串。向 OpenID 供應商提出驗證要求時使用的用戶端應用程式 ID。
叢集資源
選用
無法變更
authentication.oidc.clientSecret
(選用步驟) 字串。OIDC 用戶端應用程式與 OIDC 供應商之間共用的密鑰。
叢集資源
選用
無法變更
authentication.oidc.deployCloudConsoleProxy
(選用步驟) 布林值 (true
|false
)。指定是否在叢集中部署反向 Proxy,以將 Google Cloud 控制台連線至無法透過網際網路公開存取的內部部署身分識別提供者。如果無法透過公用網際網路連線至身分識別提供者,請將這個欄位設為 true
,以便透過 Google Cloud 控制台進行驗證。根據預設,這個值會設為 false
。
叢集資源
選用
無法變更
(選用步驟) 以半形逗號分隔的清單。要傳送至 OpenID 供應商的其他鍵/值參數。
叢集資源
選用
無法變更
authentication.oidc.groupPrefix
(選用步驟) 字串。在群組憑證附加資訊的前方加上此字串,即可避免與現有的名稱衝突。舉例來說,假設群組為 dev
,前置字串為 oidc:
,則 oidc:dev
。
叢集資源
選用
無法變更
authentication.oidc.group
(選用步驟) String。
供應商用來傳回安全性群組的 JWT 憑證附加資訊。
叢集資源
選用
無法變更
authentication.oidc.issuerURL
(選用步驟) 網址字串。會將授權要求傳送給 OpenID 的網址,例如 https://example.com/adfs
。Kubernetes API 伺服器會使用這個網址,探索用於驗證權杖的公開金鑰。網址必須使用 HTTPS。
叢集資源
選用
無法變更
authentication.oidc.kubectlRedirectURL
(選用步驟) 網址字串。kubectl
用於授權的重新導向網址。啟用 OIDC 時,必須指定 kubectlRedirectURL
值。
叢集資源
選用
無法變更
authentication.oidc.proxy
(選用步驟) 網址字串。叢集用於連線至 OIDC 供應商的 Proxy 伺服器 (如適用)。值應包含主機名稱/IP 位址,以及選用的通訊埠、使用者名稱和密碼。例如:http://user:password@10.10.10.10:8888
。
叢集資源
選用
無法變更
authentication.oidc.scopes
(選用步驟) 以半形逗號分隔的清單。要傳送給 OpenID 供應商的其他範圍。Microsoft Azure 和 Okta 需要 offline_access
範圍。
叢集資源
選用
無法變更
authentication.oidc.usernamePrefix
(選用步驟) 字串。在使用者名稱憑證附加資訊的前方加上此字串。
叢集資源
選用
無法變更
authentication.oidc.username
(選用步驟) String。
用來當做使用者名稱的 JWT 憑證附加資訊。如未指定,則預設為 sub
。
叢集資源
選用
無法變更
bypassPreflightCheck
(選用步驟) 布林值 (true
|false
)。設為 true
時,將資源套用至現有叢集時,系統會忽略內部預檢。預設值為 false
。
可變動性: 您可以使用 bmctl update
指令修改現有叢集的這個值。
叢集資源
選用
可以變更
clusterNetwork
本節包含叢集的網路設定。
叢集資源
必填
可以變更
clusterNetwork.advancedNetworking
布林值。將這個欄位設為 true
,即可啟用進階網路功能,例如搭配 BGP 的組合式負載平衡,或輸出 NAT 閘道。這兩項功能都使用 GDC 的網路閘道。
GDC 網路閘道是啟用 GKE Enterprise 和 Google Kubernetes Engine (GKE) 進階網路功能的重要元件。GDC 網路閘道的主要優點之一,是可從您在 NetworkGatewayGroup
自訂資源中指定的一組位址,動態分配浮動 IP 位址。
如要進一步瞭解 GDC 網路閘道和相關進階網路功能,請參閱「設定輸出 NAT 閘道 」和「使用 BGP 設定組合式負載平衡器 」。
叢集資源
選用
無法變更
clusterNetwork.bundledIngress
布林值。將這個欄位設為 false
,即可停用 Google Distributed Cloud 軟體隨附的 Ingress 功能。叢集隨附的 Ingress 功能僅支援 Ingress。如要整合 Istio 或 Cloud Service Mesh,享有功能齊全的服務網格帶來的額外好處,建議停用隨附的 Ingress。這個欄位預設為 true
。產生的叢集設定檔中沒有這個欄位。您只能為 1.13.0 以上版本的叢集停用隨附的 Ingress。
如要進一步瞭解隨附的 Ingress 功能,請參閱「建立服務和 Ingress 」。
叢集資源
選用
可以變更
clusterNetwork.flatIPv4
布林值。將這個欄位設為 true
,即可啟用扁平模式叢集網路模型。在扁平模式中,每個 Pod 都有專屬的 IP 位址。Pod 可以直接彼此通訊,無需中介閘道或網路位址轉譯 (NAT)。flatIPv4
的預設值為 false
。您只能在建立叢集時啟用扁平模式。叢集啟用扁平模式後,就無法停用。
叢集資源
選用
無法變更
clusterNetwork.forwardMode
(選用步驟) 字串。指定 Dataplane V2 負載平衡的網路模式。來源網路位址轉譯 (SNAT) 是預設的網路模式。伺服器直接回傳 (DSR) 模式可解決 SNAT 負載平衡的問題。在 DSR 模式 (forwardMode: dsr
) 中,負載平衡器節點會使用 IP 選項儲存用戶端來源位址。Dataplane V2 負載平衡的網路模式只能在建立叢集時設定。
允許的值:dsr
| snat
詳情請參閱「設定負載平衡網路模式 」。
叢集資源
選用
無法變更
clusterNetwork.multipleNetworkInterfaces
(選用步驟) 布林值。將這個欄位設為 true
,即可為 Pod 啟用多個網路介面。
如要進一步瞭解如何設定及使用多個網路介面,請參閱「為 Pod 設定多個網路介面 」說明文件。
叢集資源
選用
無法變更
clusterNetwork.pods.cidrBlocks
這是必要旗標,採用 CIDR 區塊格式的 IPv4 位址範圍。Pod 會指定分配 Pod 網路的 IP 範圍。
Pod CIDR 範圍下限: 遮罩值為 /18
,相當於 14 位元的大小 (16,384 個 IP 位址)。
Pod CIDR 範圍上限: 遮罩值為 /8
,對應的大小為 24 位元 (16,777,216 個 IP 位址)。
例如:
pods :
cidrBlocks :
- 192.168.0.0/16
叢集資源
必填
無法變更
clusterNetwork.sriovOperator
(選用步驟) 布林值。將這個欄位設為 true
,即可為叢集啟用 SR-IOV 網路。
如要進一步瞭解如何設定及使用 SR-IOV 網路,請參閱「設定 SR-IOV 網路 」說明文件。
叢集資源
選用
可以變更
clusterNetwork.services.cidrBlocks
這是必要旗標,採用 CIDR 區塊格式的 IPv4 位址範圍。指定要從中分配服務虛擬 IP (VIP) 位址的 IP 位址範圍。這些範圍不得與可從網路連線的任何子網路重疊。如要進一步瞭解私人網際網路的位址分配,請參閱 RFC 1918 。
從裸機適用的 Google Distributed Cloud 軟體版本 1.15.0 開始,這個欄位可變動。如有需要,您可以在建立叢集後,增加分配給服務的 IP 位址數量。詳情請參閱「擴大服務網路範圍 」。您只能擴大 IPv4 服務 CIDR 的範圍。網路範圍無法縮減,也就是說,遮罩 (「/」後的值) 無法增加。
服務 CIDR 範圍下限: 遮罩值為 /24
,對應的大小為 8 位元 (256 個位址)。
服務 CIDR 範圍上限: 遮罩值為 /12
,對應的大小為 20 位元 (1,048,576 個 IP 位址)。
例如:
services :
cidrBlocks :
- 10.96.0.0/12
叢集資源
必填
可以變更
clusterOperations
本節提供 Cloud Logging 和 Cloud Monitoring 的相關資訊。
叢集資源
必填
可以變更
clusterOperations.enableApplication
這個欄位已停用,不會產生任何影響。應用程式記錄和監控功能已在 Stackdriver 自訂資源中啟用。如要進一步瞭解如何啟用應用程式記錄和監控功能,請參閱「啟用應用程式記錄和監控功能 」一文。
叢集資源
免人工管理
可以變更
clusterOperations.disableCloudAuditLogging
布林值。Cloud 稽核記錄適合用於調查可疑的 API 要求,以及收集統計資料。Cloud 稽核記錄預設為啟用 (disableCloudAuditLogging: false
)。設為 true
即可停用 Cloud 稽核記錄。
詳情請參閱「使用稽核記錄 」。
叢集資源
選用
可以變更
clusterOperations.location
字串。您要將 Monitoring 指標傳送至哪個 Google Cloud 區域並儲存。建議您選擇靠近內部部署資料中心的區域。建立叢集時,系統會使用這個值在 stackdriver
資源規格中設定 clusterLocation
值。
Stackdriver 也會使用您指定的值,為指標和記錄加上標籤。這些標籤可用於在 Metrics Explorer 和 Logs Explorer 中篩選資料。
如要進一步瞭解 Google Cloud 位置,請參閱「全球位置 」。如要進一步瞭解如何轉送記錄和指標,請參閱「記錄和指標轉送 」。
例如:
location : us-central1
叢集資源
必填
無法變更
clusterOperations.projectID
字串。您要查看記錄和指標的 Google Cloud 專案 ID。建立叢集時,這個值會用於設定 stackdriver
資源規格中的 projectID
值。
叢集資源
必填
無法變更
controlPlane
本節包含控制平面及其元件的相關資訊。
叢集資源
必填
可以變更
(選用步驟) 字串陣列 (網域名稱和 IP 位址)。主體別名 (SAN) 是 SSL 憑證的一項功能,可讓您定義要讓憑證生效的網域名稱和子網域。在裸機叢集上,API 伺服器憑證的 SAN 預設會包含控制層節點的 IP 和 VIP 位址,以及 Kubernetes DNS 名稱。使用這個欄位,為叢集的 API 伺服器憑證新增額外的 SAN。網域名稱必須符合 RFC 1035 。詳情請參閱「將網域新增至 API 伺服器憑證 」。
例如:
...
controlPlane :
apiServerCertExtraSANs :
- "demo-dns.example.com"
- "sample-dns.com"
nodePoolSpec :
...
你隨時可以新增或變更這個欄位。
叢集資源
選用
可以變更
controlPlane.loadBalancer
本節包含控制層負載平衡的設定。本節中的欄位僅適用於 1.32 以上版本的叢集。
叢集資源
選用
可以變更
controlPlane.loadBalancer.keepalivedVRRPGARPMasterRepeat
(選用步驟) 整數。指定 Keepalived 在控制層節點轉換為主要伺服器角色後,要一次傳送的無償 ARP (GARP) 訊息數量。這個值會對應至 Keepalived 的 vrrp_garp_master_repeat
設定。預設值為 5
。詳情請參閱「Keepalived 自訂 」。
叢集資源
選用
可以變更
controlPlane.loadBalancer.mode
(選用步驟) 字串。設為 bundled
時,這項設定會指定控制層負載平衡器在控制層節點上執行。如果已設定,且您使用 loadBalancer.nodePoolSpec
設定負載平衡器節點集區,控制層負載平衡器會在控制層節點上執行,資料層負載平衡器則會在負載平衡器節點集區上執行。詳情請參閱負載平衡器分離 。
如果將 controlPlane.loadBalancer.mode
設為 manual
,loadBalancer.mode
也必須設為 manual
。這項設定用於啟用手動負載平衡。詳情請參閱「設定手動負載平衡 」。您不必將 controlPlane.loadBalancer.mode
設為 manual
,即可設定手動負載平衡。
允許的值:bundled
| manual
叢集資源
選用
無法變更
controlPlane.nodePoolSpec
本節會指定控制層及其元件使用的節點集區 IP 位址。控制層節點集區規格 (例如負載平衡器節點集區規格 ) 較為特殊。這項規格會宣告及控管重要的叢集資源。這個資源的標準來源是叢集設定檔中的這個部分。請勿直接修改頂層控制層節點集區資源。請改為修改叢集設定檔中的相關區段。
叢集資源
必填
可以變更
controlPlane.nodePoolSpec.nodes
這是必要旗標,IP 位址陣列。一般來說,這個陣列是單一機器的 IP 位址,或是高可用性 (HA) 部署作業的三部機器 IP 位址。
例如:
controlPlane :
nodePoolSpec :
nodes :
- address : 192.168.1.212
- address : 192.168.1.213
- address : 192.168.1.214
更新或升級叢集時,隨時可以變更這個欄位。
叢集資源
必填
可以變更
controlPlane.nodePoolSpec.nodes.address
這是必要旗標,字串 (IPv4 位址)。指定節點集區時,請使用 address
欄位,為每個節點指定 SSH 存取的預設 IPv4 位址。您必須具備安全殼層 (SSH) 存取權,才能執行叢集管理作業,例如安裝及升級。根據預設,這個 IP 位址也會用於資料和 Kubernetes 流量。不過,如果為特定節點指定 k8sIP
位址,流量會在這兩個節點位址之間分配,而 k8sIP
位址專用於資料和 Kubernetes 流量。
例如:
controlPlane :
nodePoolSpec :
nodes :
- address : 192.168.1.212
- address : 192.168.1.213
- address : 192.168.1.214
更新或升級叢集時,隨時可以變更這個欄位。
叢集資源
必填
可以變更
controlPlane.nodePoolSpec.nodes.k8sIP
(選用步驟) 字串 (IPv4 位址)。為節點指定選用的 k8sIP
位址時,該位址會專門處理節點的資料和 Kubernetes 流量,例如 Kubernetes API、kubelet 和工作負載的要求和回應。指定 k8sIP
時,系統會使用標準節點 IP 位址 nodePoolSpec.nodes.address
,專門用於與節點建立 SSH 連線。如未指定 k8sIP
位址,標準節點 IP 位址會處理節點的所有流量。
例如:
controlPlane :
nodePoolSpec :
nodes :
- address : 192.168.2.212
k8sIP : 192.168.1.212
- address : 192.168.1.213
- address : 192.168.1.214
叢集建立後即無法修改這個欄位。
叢集資源
選用
無法變更
controlPlane.nodePoolSpec.kubeletConfig
選用。這個部分包含的欄位,可用於設定控制層節點集區中所有節點的 kubelet。
例如:
controlPlane :
nodePoolSpec :
kubeletConfig :
registryBurst : 15
registryPullQPS : 10
serializeImagePulls : false
叢集資源
選用
可以變更
controlPlane.nodePoolSpec.kubeletConfig.registryBurst
(選用步驟) 整數 (非負數)。指定可新增至處理佇列的圖片提取要求數量上限,以處理要求尖峰。提取作業開始後,即可將新要求加入佇列。預設值為 10。這個欄位對應於 registryBurst
kubelet 設定 (v1beta1) 選項。
registryPullQPS
的值優先於這項設定。舉例來說,使用預設設定時,系統最多允許 10 個並行查詢,但必須以每秒五個查詢的預設速率處理。只有在 registryPullQPS
大於 0
時,才會使用這項爆量行為。
您可以在建立、更新或升級叢集時設定這個欄位,且設定會在叢集升級時保留。詳情請參閱「設定 kubelet 映像檔提取設定 」。
叢集資源
選用
可以變更
controlPlane.nodePoolSpec.kubeletConfig.registryPullQPS
(選用步驟) 整數 (非負數)。指定 Artifact Registry 映像檔提取作業的查詢處理速率,以每秒查詢次數 (QPS) 為單位。如果 registryPullQPS
設為大於 0 的值,查詢率會限制為每秒查詢次數。如果 registryPullQPS
設為 0
,查詢頻率就不會受到限制。預設值為 5
。
這個欄位對應於 registryPullQPS
kubelet 設定 (v1beta1) 選項。
您可以在建立、更新或升級叢集時設定這個欄位,且設定會在叢集升級時保留。詳情請參閱「設定 kubelet 映像檔提取設定 」。
叢集資源
選用
可以變更
controlPlane.nodePoolSpec.kubeletConfig.serializeImagePulls
(選用步驟) 布林值 (true
|false
)。這個欄位會指定 Artifact Registry 提取作業是並行處理,還是逐一處理。預設值為 true
,表示系統會一次處理一個提取作業。如果設為 false
,kubelet 會平行提取映像檔。這個欄位對應於 serializeImagePulls
kubelet 設定 (v1beta1) 選項。
您可以在建立、更新或升級叢集時設定這個欄位,且設定會在叢集升級時保留。詳情請參閱「設定 kubelet 映像檔提取設定 」。
叢集資源
選用
可以變更
gkeConnect
這個部分包含您要用來將叢集連線至 Google Cloud Google Cloud的專案相關資訊。
叢集資源
必填
無法變更
gkeConnect.projectID
必要:字串。您要用於將叢集連線至 Google Cloud的 Google Cloud 專案 ID。這也稱為「機群主專案」 。
例如:
spec :
...
gkeConnect :
projectID : "my-connect-project-123"
現有叢集無法修改這個值。
叢集資源
必填
無法變更
gkeConnect.location
(選用步驟) 字串。預設值為 global
。
叢集的機群成員資格由機群服務 (gkehub.googleapis.com
) 和 Connect 服務 (gkeconnect.googleapis.com
) 管理。機群成員資格可以是全域或區域。您也可以使用 gkeConnect.location
指定 Fleet 和 Connect 服務的執行 Google Cloud 區域,將流量限制在您的區域內。
如需支援的區域清單,請參閱「GKE On-Prem API 支援的區域 」。如未指定,則會使用服務的全球執行個體。
注意事項:
以低於 1.28 的版本建立的叢集,由全域 Fleet 和 Connect 服務管理。
使用 GKE On-Prem API 用戶端 (例如 Google Cloud 控制台、Google Cloud CLI 或 Terraform) 建立的新叢集,會使用您為 GKE On-Prem API 指定的相同區域。
如果是新叢集,如果您加入這個欄位,指定的區域必須與 gkeOnPremAPI.location
中設定的區域相同。如果區域不同,叢集建立作業就會失敗。
例如:
spec :
...
gkeConnect :
projectID : "my-connect-project-123"
location : "us-central1"
現有叢集無法修改這個值。
叢集資源
選用
無法變更
gkeOnPremAPI
在 1.16 以上版本中,如果專案已啟用 GKE On-Prem API,專案中的所有叢集都會在 Google Cloud 中設定的區域中,自動註冊 GKE On-Prem API 。clusterOperations.location
如要將專案中的所有叢集註冊至 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,請務必按照事前準備 中的步驟,在專案中啟用及使用 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 指令,
取得叢集相關資訊 。
GKE On-Prem API 會將叢集狀態中繼資料儲存在 Google Cloud中。
API 可透過這項中繼資料管理叢集生命週期。標準工具會使用 GKE On-Prem API,統稱為 GKE On-Prem API 用戶端 。
如果您在透過 bmctl
建立或更新叢集前,將 gkeOnPremAPI.enabled
設為 true
,請務必按照「事前準備 」一節中的步驟啟用及初始化 GKE On-Prem API。
新增這個區段並建立或更新叢集後,如果隨後移除該區段並更新叢集,更新作業就會失敗。
如果您偏好使用標準工具 (而非 bmctl
) 建立叢集,請參閱下列說明:
使用標準工具建立叢集時,系統會自動向 GKE On-Prem API 註冊叢集。
叢集資源
選用
gkeOnPremAPI.enabled
如果專案已啟用 GKE On-Prem API,叢集預設會註冊 GKE On-Prem API。如不想註冊叢集,請設為 false
。
在 GKE On-Prem API 中註冊叢集後,如要取消註冊叢集,請進行下列變更,然後更新叢集:
gkeOnPremAPI :
enabled : false
叢集資源
必填
可以變更
gkeOnPremAPI.location
GKE On-Prem API 執行及儲存叢集中繼資料的 Google Cloud 區域。選擇其中一個
支援的區域 。如果 gkeOnPremAPI.enabled
為 true
,則必須為非空白字串。如果 gkeOnPremAPI.enabled
為 false
,請勿加入這個欄位。
如果設定檔未包含這個部分,這個欄位會設為 clusterOperations.location
。
叢集資源
選用
無法變更
kubevirt.useEmulation
(已淘汰)
已淘汰。 自 1.11.2 版起,您只需更新 VMRuntime 自訂資源,即可啟用或停用 VM Runtime on GDC。布林值。判斷是否使用軟體模擬執行虛擬機器。如果節點支援硬體虛擬化,請將 useEmulation
設為 false
,以提升效能。如果不支援硬體虛擬化,或是不確定是否支援,請設為 true
。
叢集資源
選用
可以變更
loadBalancer
本節包含叢集負載平衡的設定。
叢集資源
必填
可以變更
loadBalancer.addressPools
物件。叢集負載平衡器集區的名稱和 IP 位址陣列。位址集區設定僅適用於非管理員叢集中的 bundled
LB 模式。您隨時可以新增地址集區,但無法移除現有地址集區。現有位址集區只能編輯 avoidBuggyIPs
和 manualAssign
欄位。
叢集資源
選用
無法變更
loadBalancer.addressPools.addresses
IP 位址範圍陣列。指定資料層負載平衡器的非重疊 IP 範圍清單。所有位址都必須與負載平衡器節點位於同一個子網路。
例如:
addressPools :
- name : pool1
addresses :
- 192.168.1.0-192.168.1.4
- 192.168.1.240/28
叢集資源
選用
無法變更
loadBalancer.addressPools.name
字串。您為叢集負載平衡器集區選擇的名稱。
叢集資源
必填
無法變更
loadBalancer.addressPools.avoidBuggyIPs
(選用步驟) 布林值 (true
| false
)。如果為 true
,集區會省略結尾為 .0
和 .255
的 IP 位址。部分網路硬體會捨棄傳送至這些特殊位址的流量。您可以省略這個欄位,預設值為 false
。
叢集資源
選用
可以變更
loadBalancer.addressPools.manualAssign
(選用步驟) 布林值 (true
| false
)。如果為 true
,這個集區中的位址不會自動指派給 Kubernetes 服務。如果 true
,只有在服務明確指定時,才會使用這個集區中的 IP 位址。您可以省略這個欄位,預設值為 false
。
叢集資源
選用
可以變更
loadBalancer.mode
這是必要旗標,字串。指定負載平衡模式。在 bundled
模式下,Google Distributed Cloud 軟體會在建立叢集時,將負載平衡器安裝到負載平衡器節點上。在「手動」manual
模式下,叢集必須使用手動設定的外部負載平衡器。詳情請參閱負載平衡器總覽 。
允許的值:bundled
| manual
叢集資源
必填
無法變更
loadBalancer.type
(選用步驟) 字串。指定使用的套裝組合負載平衡類型,第 2 層或邊界閘道通訊協定 (BGP)。如果您使用標準隨附負載平衡 ,請將 type
設為 layer2
。如果您使用使用 BGP 進行套裝組合負載平衡 ,請將 type
設為 bgp
。如未設定 type
,系統會預設為 layer2
。
允許的值:layer2
| bgp
叢集資源
選用
無法變更
loadBalancer.nodePoolSpec
(選用步驟) 您可以在這個部分設定負載平衡器節點集區。您指定的節點隸屬於 Kubernetes 叢集,並會執行一般工作負載和負載平衡器。如未指定節點集區,系統會使用控制層節點進行負載平衡。只有在負載平衡模式設為 bundled
時,才適用本節內容。
重要事項: 如果您建立叢集時未指定 loadBalancer.nodePoolSpec
,之後就無法新增 nodePoolSpec
。如要更新以 loadBalancer.nodePoolSpec
設定的叢集,請隨時更新 nodePoolSpec
。
如要防止工作負載在負載平衡器節點集區的節點上執行,請在節點中新增下列汙點:
node-role.kubernetes.io/load-balancer:NoSchedule
Google Distributed Cloud 軟體會將此汙點的容許度新增至負載平衡所需的 Pod。
叢集資源
選用
可以變更
loadBalancer.nodePoolSpec.nodes
本節包含負載平衡器節點集區中節點的 IP 位址陣列。
根據預設,負載平衡器節點集區中的所有節點,都必須與設定檔 loadBalancer.addressPools
區段中設定的負載平衡器 VIP 位於同一個第 2 層子網路。不過,如果您為節點指定 Kubernetes IP 位址 k8sIP
,則只有該位址需要與其他負載平衡器 VIP 位於相同的第 2 層子網路。
叢集資源
選用
可以變更
loadBalancer.nodePoolSpec.nodes.address
(選用步驟) 字串 (IPv4 位址)。指定節點集區時,請使用 address
欄位,為每個節點指定 SSH 存取的預設 IPv4 位址。您必須具備安全殼層 (SSH) 存取權,才能執行叢集管理作業,例如安裝及升級。根據預設,這個 IP 位址也會用於資料和 Kubernetes 流量。不過,如果為特定節點指定 k8sIP
位址,流量會在這兩個節點位址之間分配,而 k8sIP
位址專用於資料和 Kubernetes 流量。
雖然負載平衡器節點集區中的節點可以執行工作負載,但這些節點與工作站節點集區中的節點不同。您無法在多個節點集區中加入特定叢集節點。節點 IP 位址重疊會導致叢集無法建立,以及其他叢集作業無法執行。
例如:
loadBalancer :
mode : bundled
...
nodePoolSpec :
nodes :
- address : 10.200.0.25
- address : 10.200.0.26
- address : 10.200.0.27
叢集資源
選用
可以變更
loadBalancer.nodePoolSpec.nodes.k8sIP
(選用步驟) 字串 (IPv4 位址)。為節點指定選用的 k8sIP
位址時,該位址會專門處理節點的資料和 Kubernetes 流量,例如 Kubernetes API、kubelet 和工作負載的要求和回應。指定 k8sIP
時,系統會使用標準節點 IP 位址 nodePoolSpec.nodes.address
,專門用於與節點建立 SSH 連線。如未指定 k8sIP
位址,標準節點 IP 位址會處理節點的所有流量。
注意: Google Distributed Cloud 會為部分叢集作業 (例如建立管理員叢集) 部署啟動叢集。如果指定 k8sIP
位址,這個暫時性啟動程序叢集會在叢集作業期間存取這兩個節點位址。
例如:
loadBalancer :
mode : bundled
...
addressPools :
- name : pool1
addresses :
- 10.200.0.92-10.200.0.100
nodePoolSpec :
nodes :
- address : 10.200.1.25
k8sIP : 10.200.0.25
- address : 10.200.0.26
- address : 10.200.0.27
叢集建立後即無法修改這個欄位。
叢集資源
選用
無法變更
loadBalancer.nodePoolSpec.kubeletConfig
選用。這個部分包含的欄位,可用於設定控制層節點集區中所有節點的 kubelet。
例如:
loadBalancer :
nodePoolSpec :
kubeletConfig :
registryBurst : 15
registryPullQPS : 10
serializeImagePulls : false
叢集資源
選用
可以變更
loadBalancer.nodePoolSpec.kubeletConfig.registryBurst
(選用步驟) 整數 (非負數)。指定可新增至處理佇列的映像檔提取要求數量上限,以處理要求尖峰。提取作業開始後,即可將新要求加入佇列。預設值為 10。這個欄位對應於 registryBurst
kubelet 設定 (v1beta1) 選項。
registryPullQPS
的值優先於這項設定。舉例來說,使用預設設定時,系統最多允許 10 個並行查詢的叢發,但必須以每秒五個查詢的預設速率處理。只有在 registryPullQPS
大於 0
時,才會使用這項爆量行為。
您可以在建立、更新或升級叢集時設定這個欄位,且設定會在叢集升級時保留。詳情請參閱「設定 kubelet 映像檔提取設定 」。
叢集資源
選用
可以變更
loadBalancer.nodePoolSpec.kubeletConfig.registryPullQPS
(選用步驟) 整數 (非負數)。指定 Artifact Registry 映像檔提取作業的查詢處理速率,以每秒查詢次數 (QPS) 為單位。如果 registryPullQPS
設為大於 0 的值,查詢率會限制為每秒查詢次數。如果「registryPullQPS
」設為 0
,查詢頻率就不會受到限制。預設值為 5
。
這個欄位對應於 registryPullQPS
kubelet 設定 (v1beta1) 選項。
您可以在建立、更新或升級叢集時設定這個欄位,且設定會在叢集升級時保留。詳情請參閱「設定 kubelet 映像檔提取設定 」。
叢集資源
選用
可以變更
loadBalancer.nodePoolSpec.kubeletConfig.serializeImagePulls
(選用步驟) 布林值 (true
|false
)。這個欄位會指定 Artifact Registry 提取作業是並行處理,還是逐一處理。預設值為 true
,表示系統會一次處理一個提取作業。如果設為 false
,kubelet 會平行提取映像檔。這個欄位對應於 serializeImagePulls
kubelet 設定 (v1beta1) 選項。
您可以在建立、更新或升級叢集時設定這個欄位,且設定會在叢集升級時保留。詳情請參閱「設定 kubelet 映像檔提取設定 」。
叢集資源
選用
可以變更
loadBalancer.ports.controlPlaneLBPort
數字。Kubernetes 控制層 (Kubernetes API 伺服器) 接收流量時使用的目的地通訊埠。
叢集資源
必填
無法變更
叢集資源
必填
無法變更
loadBalancer.vips.ingressVIP
(選用步驟) 字串 (IPv4 位址)。針對輸入流量,在負載平衡器上所選擇設定的 IP 位址。
叢集資源
選用
無法變更
loadBalancer.localASN
(選用步驟) 字串。指定要建立的叢集自治系統編號 (ASN)。設定使用邊界閘道通訊協定 (BGP) 的組合式負載平衡解決方案時,會使用這個欄位。詳情請參閱「使用 BGP 設定套裝組合的負載平衡器 」。
叢集資源
選用
可以變更
loadBalancer.bgpPeers
(選用步驟) 物件 (對應清單)。本節會指定一或多個來自您 (叢集外部) 本機網路的邊界閘道通訊協定 (BGP) 對等互連。設定套裝組合負載平衡解決方案的控制層負載平衡部分時,您會指定 BGP 對等互連,該解決方案會使用 BGP。每個對等互連都以對應形式指定,包含 IP 位址、自治系統編號 (ASN),以及 (選用) 控制層節點的一或多個 IP 位址清單。叢集建立後,就無法更新控制層負載平衡的 BGP 對等互連設定。
例如:
loadBalancer :
mode : bundled
type : bgp
localASN : 65001
bgpPeers :
- ip : 10.0.1.254
asn : 65002
controlPlaneNodes :
- 10.0.1.10
- 10.0.1.11
- ip : 10.0.2.254
asn : 65002
controlPlaneNodes :
- 10.0.2.10
詳情請參閱「使用 BGP 設定套裝組合的負載平衡器 」。
叢集資源
選用
可以變更
叢集資源
選用
可以變更
loadBalancer.bgpPeers.asn
(選用步驟) 字串。包含外部對等互連裝置的網路自治系統編號 (ASN)。設定使用 BGP 的組合式負載平衡解決方案時,請為您設定的每個 BGP 對等互連指定 ASN,以進行控制層負載平衡。詳情請參閱「使用 BGP 設定套裝組合的負載平衡器 」。
叢集資源
選用
可以變更
loadBalancer.bgpPeers.controlPlaneNodes
(選用步驟) IP (IPv4) 位址陣列。設定使用 BGP 的套裝組合負載平衡解決方案時,用於連線至外部 BGP 對等互連的一或多個控制層節點 IP 位址。如未指定任何控制層節點,所有控制層節點都會連線至外部對等互連。如果您指定一或多個 IP 位址,只有指定的節點會參與對等互連工作階段。詳情請參閱「使用 BGP 設定套裝組合的負載平衡器 」。
叢集資源
選用
可以變更
maintenanceBlocks.cidrBlocks
(選用步驟) 單一 IPv4 位址或 IPv4 位址範圍。指定要進入維護模式的節點機器的 IP 位址。詳情請參閱讓節點進入維護模式 。
例如:
maintenanceBlocks :
cidrBlocks :
- 192.168.1.200 # Single machine
- 192.168.1.100-192.168.1.109 # Ten machines
叢集資源
選用
可以變更
nodeAccess.loginUser
(選用步驟) 字串。指定要用於無密碼 SUDO 功能存取權的非超級使用者名稱,以便存取叢集中的節點機器。安全殼層金鑰 sshPrivateKeyPath
必須適用於指定使用者。叢集建立和更新作業會檢查是否能使用指定的使用者和 SSH 金鑰存取節點機器。
叢集資源
選用
可以變更
osEnvironmentConfig.addPackageRepo
(選用步驟) 布林值 (true
| false
)。指定是否要使用自己的套件存放區伺服器,而非預設的 Docker apt
存放區。如要使用自己的套件存放區,請將 addPackageRepo
設為 false
。使用這項功能,即可略過在部署作業中,為每部裸機新增套件存放區的步驟。詳情請參閱「使用私人套件存放區伺服器 」。
叢集資源
選用
無法變更
叢集資源
選用
可變動 (僅限升級)
nodeConfig.containerRuntime
(已淘汰)
已淘汰,自 1.13.0 版起,Google Distributed Cloud 僅支援 containerd
做為容器執行階段。
containerRuntime
欄位已淘汰,並從產生的叢集設定檔中移除。如果是 Google Distributed Cloud 軟體 1.13.0 以上版本,如果叢集設定檔包含這個欄位,值必須為 containerd
。
叢集資源
選用
可變動 (僅限升級)
nodeConfig.podDensity
本節指定 Pod 密度設定。
叢集資源
選用
無法變更
nodeConfig.podDensity.maxPodsPerNode
(選用步驟) 整數。指定單一節點可執行的 Pod 數量上限。如果是自行管理的叢集,maxPodsPerNode
的允許值為高可用性 (HA) 叢集的 32
–250
,以及非 HA 叢集的 64
–250
。如果是使用者叢集,maxPodsPerNode
的允許值為 32
至 250
。如未指定,預設值為 110
。叢集建立後,這個值就無法更新。
Kubernetes 會為每個節點指派無類別跨網域路由 (CIDR) 區塊 ,讓每個 Pod 擁有一個不重複的 IP 位址。CIDR 區塊的大小對應每個節點的最大 Pod 數。如要進一步瞭解如何設定每個節點的 Pod 數量上限,請參閱「Pod 網路 」。
叢集資源
選用
無法變更
nodeConfig.privateRegistries
本節說明使用者叢集的節點層級私有登錄設定。節點層級的私人登錄檔適用於工作負載,可讓您進一步控管映像檔提取作業和相關安全性。
例如:
spec:
bypassPreflightCheck: false
...
nodeConfig:
containerRuntime: containerd
podDensity:
maxPodsPerNode: 250
privateRegistries:
- caCertSecretRef:
name: ca-9dd74fd308bac6df562c7a7b220590b5
namespace: some-namespace
host: 10 .200.0.2:5007
pullCredentialSecretRef:
name: pull-creds-9dd74fd308bac6df562c7a7b220590b5
namespace: some-namespace
...
如果是管理員叢集,節點層級的私有登錄檔會在管理員叢集設定檔的「憑證」 部分中指定。
如要進一步瞭解如何設定節點存取私人登錄檔,請參閱「設定節點向私人登錄檔進行驗證 」。
下表列出各版本設定節點層級私有登錄檔的推出階段:
1.30 以上版本:正式發布
1.29:預先發布版
叢集資源
選用
可以變更
nodeConfig.privateRegistries.caCertSecretRef
如適用,請使用這個部分指定為私有登錄檔建立的 Secret 名稱和命名空間,該 Secret 用於儲存 CA 憑證 (伺服器根 CA)。如果本機登錄檔不需要私密 TLS 憑證,則可以省略這個區塊。
下表列出各版本設定節點層級私有登錄檔的推出階段:
1.30 以上版本:正式發布
1.29:預先發布版
叢集資源
選用
可以變更
nodeConfig.privateRegistries.caCertSecretRef.name
(選用步驟) 字串。為儲存私有登錄檔的 CA 憑證而建立的密鑰名稱。
如要進一步瞭解如何設定節點存取私人登錄檔,請參閱「設定節點向私人登錄檔進行驗證 」。
下表列出各版本設定節點層級私有登錄檔的推出階段:
1.30 以上版本:正式發布
1.29:預先發布版
叢集資源
選用
可以變更
nodeConfig.privateRegistries.caCertSecretRef.namespace
(選用步驟) 字串。為私人登錄檔儲存 CA 憑證而建立的 Secret 命名空間。
如要進一步瞭解如何設定節點存取私人登錄檔,請參閱「設定節點向私人登錄檔進行驗證 」。
下表列出各版本設定節點層級私有登錄檔的推出階段:
1.30 以上版本:正式發布
1.29:預先發布版
叢集資源
選用
可以變更
nodeConfig.privateRegistries.host
字串。這個欄位會指定單一私人登錄檔的主機和連接埠。您可以透過網域名稱或 IP 位址指定主機。請勿加入 http
或 https
前置字元。
為使用者叢集指定私有登錄檔時,必須填寫 host
欄位。
下表列出各版本設定節點層級私有登錄檔的推出階段:
1.30 以上版本:正式發布
1.29:預先發布版
叢集資源
選用
可以變更
nodeConfig.privateRegistries.pullCredentialSecretRef
如適用,請使用這個部分指定為儲存私有登錄檔憑證而建立的 Secret 名稱和命名空間。
設定使用者叢集時,請使用 pullCredentialSecretRef
區塊,讓節點存取需要驗證的私人登錄檔。
下表列出各版本設定節點層級私有登錄檔的推出階段:
1.30 以上版本:正式發布
1.29:預先發布版
叢集資源
選用
可以變更
nodeConfig.privateRegistries.pullCredentialSecretRef.name
(選用步驟) 字串。為儲存私有登錄檔憑證而建立的密鑰名稱。
如要進一步瞭解如何設定節點存取私人登錄檔,請參閱「設定節點向私人登錄檔進行驗證 」。
下表列出各版本設定節點層級私有登錄檔的推出階段:
1.30 以上版本:正式發布
1.29:預先發布版
叢集資源
選用
可以變更
nodeConfig.privateRegistries.pullCredentialSecretRef.namespace
(選用步驟) 字串。為儲存私有登錄檔憑證而建立的 Secret 命名空間。
如要進一步瞭解如何設定節點存取私人登錄檔,請參閱「設定節點向私人登錄檔進行驗證 」。
下表列出各版本設定節點層級私有登錄檔的推出階段:
1.30 以上版本:正式發布
1.29:預先發布版
叢集資源
選用
可以變更
nodePoolUpgradeStrategy
(選用步驟) 本節包含設定,可設定叢集中工作站節點集區的升級策略。詳情請參閱「平行升級 」。
叢集資源
選用
可以變更
nodePoolUpgradeStrategy.concurrentNodePools
(選用步驟) 布林值 (0
或 1
)。預設值:1
。
這個欄位會指定是否要同時升級叢集的所有工作站節點集區。根據預設 (1
),升級作業會依序進行,將 concurrentNodePools
設為 0
時,叢集中的每個工作站節點集區都會平行升級。
apiVersion : baremetal.cluster.gke.io/v1
kind : Cluster
metadata :
name : cluster1
namespace : cluster-cluster1
spec :
...
nodePoolUpgradeStrategy :
concurrentNodePools : 0
...
詳情請參閱節點集區升級策略 。
每個工作站節點集區中的節點,都會根據對應 NodePool 規格中的升級策略 升級。
叢集資源
選用
可以變更
nodePoolUpgradeStrategy.pause
(選用步驟) 布林值 (true
或 false
)。預設值:
false
。這個欄位會指定要暫停或繼續進行叢集升級。
1.29 以上版本
如果叢集的所有控制層節點都採用 1.29 以上的子版本,即可使用升級暫停和繼續功能。如為 1.29 版叢集,這項功能預設為啟用。
1.28
升級暫停和繼續功能適用於搶先版 ,且叢集的所有控制層節點都必須是 1.28 以上的子版本。如果是 1.28 版叢集,請使用 preview.baremetal.cluster.gke.io/upgrade-pause-and-resume
註解啟用這項功能。
將 nodePoolUpgradeStrategy.pause
值更新為 true
,即可暫停執行中的叢集升級作業:
apiVersion : baremetal.cluster.gke.io/v1
kind : Cluster
metadata :
name : cluster1
namespace : cluster-cluster1
annotations : preview.baremetal.cluster.gke.io/upgrade-pause-and-resume
spec :
...
nodePoolUpgradeStrategy :
pause : true
...
詳情請參閱「暫停及繼續升級 」。
叢集資源
選用
可以變更
periodicHealthCheck
本節包含定期健康狀態檢查的設定資訊。在叢集資源中,定期健康狀態檢查唯一可用的設定是 enable
欄位。詳情請參閱定期健康狀態檢查 。
叢集資源
選用
可以變更
periodicHealthCheck.enable
(選用步驟) 布林值 (true
|false
)。啟用或停用叢集的定期健康檢查。根據預設,所有叢集都會啟用定期健康狀態檢查。如要停用叢集的定期健康狀態檢查,請將 periodicHealthCheck.enable
欄位設為 false
。詳情請參閱停用定期健康狀態檢查 。
叢集資源
選用
可以變更
profile
(選用步驟) 字串。如果將獨立叢集的 profile
設為 edge
,即可盡量減少叢集的資源用量。邊緣設定檔僅適用於獨立叢集。
邊緣設定檔的系統資源需求較低,建議資源受限的邊緣裝置使用。如要瞭解與 Edge 設定檔相關聯的硬體需求,請參閱「使用 Edge 設定檔的獨立叢集資源需求 」。
叢集資源
選用
無法變更
proxy
如果您的網路位於 Proxy 伺服器後方,請填寫這個部分。
否則請移除這個部分。
叢集資源
選用
可以變更
proxy.noProxy
字串。以逗號分隔的 IP 位址、IP 位址範圍、主機名稱和網域名稱清單,這些項目不應透過 Proxy 伺服器傳輸。當叢集將要求傳送至其中一個地址、主機或網域時,要求會直接傳送。
叢集資源
選用
無法變更
proxy.url
字串。Proxy 伺服器的 HTTP 位址。即使通訊埠號碼與架構的預設通訊埠相同,也請一併加入。
例如:
proxy :
url : "http://my-proxy.example.local:80"
noProxy : "10.151.222.0/24, my-host.example.local,10.151.2.1"
叢集資源
選用
可以變更
clusterSecurity
本節會指定叢集安全性相關設定。
叢集資源
選用
可以變更
clusterSecurity.enableSeccomp
(預覽 )
(選用步驟) 布林值 (true
|false
)。啟用或停用叢集範圍的 seccomp
。如果停用這個欄位,叢集設定檔中沒有 seccomp
設定檔的容器就會以不受限模式執行。啟用這個欄位後,系統會使用容器執行階段的預設 seccomp
設定檔,保護這些容器。這項功能預設為啟用。
叢集建立後,只有在升級期間才能切換這個欄位。
詳情請參閱「使用 seccomp
限制容器 」。
叢集資源
選用
可變動 (僅限升級)
clusterSecurity.enableRootlessContainers
(選用步驟) 布林值 (true
|false
)。啟用或停用無根裸機系統容器。啟用這個欄位後,裸機系統容器會以非超級使用者身分執行,使用者 ID 介於 2000 到 5000 之間。停用後,裸機系統容器會以超級使用者身分執行。這項功能預設為啟用。強烈建議不要關閉這項功能,因為以超級使用者身分執行容器會造成安全風險。叢集建立後,只有在升級期間才能切換這個欄位。詳情請參閱「請勿以根使用者身分執行容器 」。
叢集資源
選用
可變動 (僅限升級)
clusterSecurity.authorization
(選用步驟) 授權可設定使用者叢集存取權。
叢集資源
選用
可以變更
clusterSecurity.authorization.clusterAdmin
(選用步驟) 指定這個叢集的叢集管理員。
叢集資源
選用
可以變更
clusterSecurity.authorization.clusterAdmin.gcpAccounts
(選用步驟) gcpAccounts
欄位會指定獲授 Kubernetes 角色型存取權控管 (RBAC) 角色的帳戶清單 clusterrole/cluster-admin
。具備這項角色的帳戶可完整存取所有命名空間中的叢集資源。這個欄位也會設定 RBAC 政策,讓指定帳戶使用連結閘道 ,對叢集執行 kubectl
指令。如果您要管理多個叢集,特別是同時有 GKE 和地端叢集的混合式環境,這項功能就非常方便。
如果使用者具備存取控制台所需的 Identity and Access Management 角色 ,這些 RBAC 政策也允許使用者透過 Google 身分登入 Google Cloud 控制台。
這個欄位會採用帳戶名稱陣列。支援使用者帳戶和服務帳戶。如果是使用者,請指定他們的 Google Cloud 帳戶電子郵件地址。如果是服務帳戶,請指定電子郵件地址,格式如下:
SERVICE_ACCOUNT @PROJECT_ID .iam.gserviceaccount.com
。
例如:
...
clusterSecurity:
authorization:
clusterAdmin:
gcpAccounts:
- alex@example.com
- hao@example.com
- my-sa@example-project-123.iam.gserviceaccount.com
...
更新叢集以新增帳戶時,請務必在清單中加入所有帳戶 (包括現有和新帳戶),因為更新指令會以您在更新中指定的內容覆寫清單。
這個欄位僅適用於可執行工作負載的叢集。舉例來說,您無法為管理員叢集指定 gcpAccounts
。
叢集資源
選用
可以變更
clusterSecurity.startUIDRangeRootlessContainers
(選用步驟) 整數。預設值為 2000
。Google Distributed Cloud 軟體中的系統容器可協助安裝及管理叢集。這些容器使用的使用者 ID (UID) 和群組 ID (GID) 可由叢集規格中的 startUIDRangeRootlessContainers
欄位控制。系統容器會使用 startUIDRangeRootlessContainers
到 startUIDRangeRootlessContainers
+ 2999 範圍內的 UID 和 GID,預設範圍為 2000
-4999
。更新 startUIDRangeRootlessContainers
時,請選取可確保系統容器使用的 UID 和 GID 空間不會與指派給使用者工作負載的空間重疊的值。只有在升級期間,才能變更 startUIDRangeRootlessContainers
值。
允許的值:1000
-57000
例如:
apiVersion : baremetal.cluster.gke.io/v1
kind : Cluster
metadata :
name : name-of-cluster
spec :
clusterSecurity :
startUIDRangeRootlessContainers : 5000
...
詳情請參閱不要以根使用者身分執行容器 。
叢集資源
選用
可變動 (僅限升級)
storage.lvpNodeMounts.path
這是必要旗標,字串。使用 path
欄位指定主機機器路徑,系統可在該路徑中探索已掛接的磁碟。系統會為每個掛接項目建立本機 PersistentVolume (PV)。預設路徑為 /mnt/localpv-share
。如需設定節點掛接點的操作說明,請參閱「設定 LVP 節點掛接點 」。
叢集資源
必填
無法變更
叢集資源
必填
無法變更
storage.lvpNodeMounts
本節指定已掛接磁碟所支援本機永久磁碟區的設定 (路徑)。您必須自行格式化並掛接這些磁碟。您可以在建立叢集之前或之後執行這項工作。詳情請參閱 LVP 節點掛接 。
叢集資源
必填
無法變更
storage.lvpShare
本節指定共用檔案系統中子目錄支援的本機 PersistentVolume 設定,系統會在建立叢集時自動建立這些子目錄。詳情請參閱 LVP 分享 。
叢集資源
必填
無法變更
storage.lvpShare.path
這是必要旗標,字串。使用 path
欄位指定可建立子目錄的主機機器路徑。系統會為每個子目錄建立本機 PersistentVolume (PV)。如需設定 LVP 共用空間的操作說明,請參閱「設定 LVP 共用空間 」。
叢集資源
必填
無法變更
storage.lvpShare.numPVUnderSharedPath
這是必要旗標,字串。指定要在 lvpShare.path
下建立的子目錄數量。預設值為 5
。如需設定 LVP 共用空間的操作說明,請參閱「設定 LVP 共用空間 」。
叢集資源
必填
無法變更
storage.lvpShare.storageClassName
這是必要旗標,字串。指定用於建立永久磁碟區的 StorageClass。系統會在建立叢集時建立 StorageClass。預設值為 local-shared
。如需設定 LVP 共用資料夾的操作說明,請參閱「設定 LVP 共用資料夾 」。
叢集資源
選用
無法變更
type
這是必要旗標,字串。指定叢集類型。標準部署模型包含單一管理員叢集和一或多個使用者叢集,這些叢集由管理員叢集管理。Google Distributed Cloud 軟體支援下列類型的叢集:
管理員 - 用於管理使用者叢集的叢集。
使用者:用來執行工作負載的叢集。
混合式 - 單一叢集,同時用於管理員和工作負載,也可管理使用者叢集。
獨立式:單一叢集,可自行管理,也能執行工作負載,但無法建立或管理其他使用者叢集。
叢集類型是在建立叢集時指定,更新或升級時無法變更。如要進一步瞭解如何建立叢集,請參閱「建立叢集:總覽 」。
允許的值:admin
| user
| hybrid
| standalone
現有叢集無法修改這個值。
叢集資源
必填
無法變更
name
這是必要旗標,字串。通常命名空間名稱會使用 cluster-CLUSTER_NAME
模式,但自 Google Distributed Cloud 軟體版本 1.7.2 起,cluster-
前置字串並非必要。
現有叢集無法修改這個值。
命名空間資源
必填
無法變更
clusterName
字串。這是必要旗標,要新增節點集區的叢集名稱。在相關聯叢集的相同命名空間中建立節點集區資源,並在這個欄位中參照叢集名稱。詳情請參閱「新增及移除叢集中的節點集區 」。
例如:
apiVersion : baremetal.cluster.gke.io/v1
kind : NodePool
metadata :
name : node-pool-new
namespace : cluster-my-cluster
spec :
clusterName : my-cluster
nodes :
- address : 10.200.0.10
- address : 10.200.0.11
- address : 10.200.0.12
NodePool 資源
必填
無法變更
nodes
(選用步驟) IP (IPv4) 位址陣列。這會定義工作站節點的節點集區。
NodePool 資源
選用
可以變更
nodes.address
(選用步驟) 字串 (IPv4 位址)。工作站節點集區中一或多個節點的 IP 位址。
NodePool 資源
選用
可以變更
kubeletConfig
選用。這個部分包含的欄位,可用於設定控制層節點集區中所有節點的 kubelet。
例如:
apiVersion : baremetal.cluster.gke.io/v1
kind : NodePool
metadata :
name : node-pool-new
namespace : cluster-my-cluster
spec :
clusterName : my-cluster
...
kubeletConfig :
serializeImagePulls : true
registryBurst : 20
registryPullQPS : 10
NodePool 資源
選用
可以變更
kubeletConfig.registryBurst
(選用步驟) 整數 (非負數)。指定可新增至處理佇列的圖片提取要求數量上限,以處理要求尖峰。提取作業開始後,即可將新要求加入佇列。預設值為 10。這個欄位對應於 registryBurst
kubelet 設定 (v1beta1) 選項。
registryPullQPS
的值優先於這項設定。舉例來說,使用預設設定時,系統最多允許 10 個並行查詢,但必須以每秒五個查詢的預設速率處理。只有在 registryPullQPS
大於 0
時,才會使用這項爆量行為。
您可以在建立、更新或升級叢集時設定這個欄位,且設定會在叢集升級時保留。詳情請參閱「設定 kubelet 映像檔提取設定 」。
NodePool 資源
選用
可以變更
kubeletConfig.registryPullQPS
(選用步驟) 整數 (非負數)。指定 Artifact Registry 映像檔提取作業的查詢處理速率,以每秒查詢次數 (QPS) 為單位。如果 registryPullQPS
設為大於 0 的值,查詢率會限制為每秒查詢次數。如果「registryPullQPS
」設為 0
,查詢頻率就不會受到限制。預設值為 5
。
這個欄位對應於 registryPullQPS
kubelet 設定 (v1beta1) 選項。
您可以在建立、更新或升級叢集時設定這個欄位,且設定會在叢集升級時保留。詳情請參閱「設定 kubelet 映像檔提取設定 」。
NodePool 資源
選用
可以變更
kubeletConfig.serializeImagePulls
(選用步驟) 布林值 (true
|false
)。這個欄位會指定 Artifact Registry 提取作業是並行處理,還是逐一處理。預設值為 true
,表示系統會一次處理一個提取作業。如果設為 false
,kubelet 會平行提取映像檔。這個欄位對應於 serializeImagePulls
kubelet 設定 (v1beta1) 選項。
您可以在建立、更新或升級叢集時設定這個欄位,且設定會在叢集升級時保留。詳情請參閱「設定 kubelet 映像檔提取設定 」。
NodePool 資源
選用
可以變更
taints
(選用步驟) 物件。節點 taint 可讓您標示節點,避免或防止排程器在特定 Pod 使用此節點。汙點包含鍵/值組合和相關聯的效果。key
和 value
值是字串,用於識別汙染,而 effect
值則指定節點的 Pod 處理方式。taints
物件可以有多個汙染。
effect
欄位可採用下列其中一個值:
NoSchedule
- 除非 Pod 具有相符的容許條件,否則無法排定在節點上。
PreferNoSchedule
- 系統會避免將無法容忍 taint 的 Pod 放在節點上,但這並非必要。
NoExecute
- 系統會立即移除無法容忍 taint 的 Pod,且絕不會移除可容忍 taint 的 Pod。
如果是 Google Distributed Cloud 軟體,除非叢集套用 baremetal.cluster.gke.io/label-taint-no-sync
註解,否則污點會與節點集區的節點進行調解。如要進一步瞭解 taint,請參閱「Taint 和容許條件 」。
例如:
taints :
- key : status
value : testpool
effect : NoSchedule
NodePool 資源
選用
可以變更
labels
(選用步驟) 對應 (鍵/值組合)。
除非將 baremetal.cluster.gke.io/label-taint-no-sync
註解套用至叢集,否則標籤會與節點集區的節點進行比對。如要進一步瞭解標籤,請參閱「標籤和選取器 」。
NodePool 資源
選用
可以變更
upgradeStrategy
(選用步驟) 本節包含設定,可設定工作站節點集區中節點的升級策略。詳情請參閱平行升級 。
注意:請勿為控制層或負載平衡器節點集區新增這個區段。
NodePool 資源
選用
可以變更
upgradeStrategy.parallelUpgrade
(選用步驟) 本節包含的設定可為工作站節點集區設定平行節點升級。在典型的預設叢集升級中,每個叢集節點會依序升級。您可以設定工作站節點集區,在升級叢集時,讓多個節點並行升級。平行升級節點可大幅加快叢集升級速度,尤其是節點數達數百個的叢集。
對於工作站節點集區,您可以指定要同時升級的節點數量,並設定節點數量下限,確保升級期間有足夠的節點執行工作負載。
詳情請參閱「節點升級策略 」。
apiVersion : baremetal.cluster.gke.io/v1
kind : NodePool
metadata :
name : np1
namespace : cluster-cluster1
spec :
clusterName : cluster1
nodes :
- address : 10.200.0.1
...
upgradeStrategy :
parallelUpgrade :
concurrentNodes : 2
minimumAvailableNodes : 5
NodePool 資源
選用
可以變更
upgradeStrategy.parallelUpgrade.concurrentNodes
(選用步驟) 正整數。預設值:1
。最大值:15
。
根據預設 (1
),節點會依序升級,如果將 concurrentNodes
設為大於 1 的數字,這個欄位會指定要平行升級的節點數量。請注意 concurrentNodes
的下列限制:
這個值不得超過節點集區中節點數量的 50%,也不得超過固定數字 15
,以較小者為準。舉例來說,如果節點集區有 20 個節點,您就無法指定大於 10
的值。如果節點集區有 100 個節點,則 15
是可指定的最大值。
如果同時使用這個欄位和 minimumAvailableNodes
欄位,兩者的合併值不得超過節點集區中的節點總數。舉例來說,如果節點集區有 20 個節點,且 minimumAvailableNodes
設為 18
,則 concurrentNodes
不得超過 2
。
平行升級不會遵守 Pod 中斷預算 (PDB) 。如果工作負載對中斷情形很敏感,建議您指定 minimumAvailableNodes
,確保在升級過程中,有一定數量的節點可供工作負載執行。詳情請參閱「平行升級 」。
NodePool 資源
選用
可以變更
upgradeStrategy.parallelUpgrade.minimumAvailableNodes
(選用步驟) 整數 (非負數)。預設值:取決於 concurrentNodes
。如要進一步瞭解 minimumAvailableNodes
的預設值,請參閱「平行升級預設值 」。minimumAvailableNodes
可讓您指定節點集區中必須在升級程序期間保持可用的節點數量。節點正在升級時,系統會將其視為無法使用。如果符合下列任一條件,節點也會視為無法使用:
節點處於維護模式
節點正在協調
節點在升級期間停滯
如果同時使用這個欄位和 concurrentNodes
欄位,兩者的值加總不得超過節點集區中的節點總數。舉例來說,如果節點集區有 20 個節點,且 concurrentNodes
設為 10
,則 minimumAvailableNodes
不得超過 10
。
minimumAvailableNodes
值越高,排定 Pod 時的容量問題就越少,因此有助於在叢集升級期間保護工作負載。不過,如果 minimumAvailableNodes
值過高,升級作業可能會因等待節點可用而停滯,風險也會隨之增加。詳情請參閱「平行升級 」。
NodePool 資源
選用
可以變更
privateRegistries
(選用步驟) 請使用這個部分指定要用於工作負載映像檔的私人登錄檔。在叢集設定檔的憑證部分設定私有登錄檔的方法,適用於只有工作站節點集區的混合式或獨立叢集。
如要進一步瞭解如何設定節點存取私人登錄檔,請參閱「設定節點向私人登錄檔進行驗證 」。
注意: 為方便起見,bmctl
接受叢集規格以外的 privateRegistries
欄位,例如憑證鍵/值組合。如需範例,請參閱私有登錄檔設定操作說明 。
例如:
---
gcrKeyPath : baremetal/gcr.json
sshPrivateKeyPath : .ssh/id_rsa
...
privateRegistries :
- host : 10.200.0.2:5007
caCertPath : /root/cert.pem
pullCredentialConfigPath : /root/dockerconfig.json
...
憑證
選用
可以變更
privateRegistries.host
字串。這個欄位會指定單一私人登錄檔的主機和連接埠。您可以透過網域名稱或 IP 位址指定主機。請勿加入 http
或 https
前置字元。
為混合式或獨立叢集指定私有登錄檔時,必須提供 host
欄位。
例如:
- host : 10.200.0.2:5007
憑證
選用
可以變更
privateRegistries.caCertPath
(選用步驟) 字串。如果登錄伺服器使用私密 TLS 憑證,請提供 CA 憑證檔案 (伺服器根 CA) 的路徑。如果本機登錄檔不需要私密 TLS 憑證,則可以省略這個欄位。
憑證
選用
可以變更
privateRegistries.pullCredentialConfigPath
(選用步驟) 字串。Docker CLI 設定檔 的路徑,config.json
。Docker 會將驗證設定儲存在設定檔中。這個欄位僅適用於節點層級的私人登錄檔。
設定混合式或獨立叢集時,請使用 pullCredentialConfigPath
欄位,讓節點存取需要驗證的私人登錄檔。
憑證
選用
可以變更
registryMirrors
(選用步驟) 使用這個部分指定要用於安裝叢集的登錄檔鏡像,而非 Artifact Registry (gcr.io
)。如要進一步瞭解如何使用登錄檔鏡像,請參閱「使用登錄檔鏡像取得容器映像檔 」。
注意: 為方便起見,bmctl
接受叢集規格以外的 registryMirrors
欄位,例如憑證鍵/值組合。如需範例,請參閱使用登錄檔鏡像取得容器映像檔 。
例如:
registryMirrors :
- endpoint : https://172.18.0.20:5000
caCertPath : /root/ca.crt
pullCredentialConfigPath : /root/.docker/config.json
hosts :
- somehost.io
- otherhost.io
登錄檔鏡像
選用
可以變更
registryMirrors.endpoint
字串。鏡像端點,由登錄伺服器 IP 位址和通訊埠號碼組成。(選用) 您可以在登錄伺服器中使用自己的命名空間,而非根命名空間。如果沒有命名空間,端點格式為 REGISTRY_IP :PORT
。使用命名空間時,端點格式為 REGISTRY_IP :PORT /v2/NAMESPACE
。指定命名空間時,必須提供 /v2
。
指定登錄檔鏡像時,必須提供 endpoint
欄位。您可以指定多個鏡像和端點。
例如:
- endpoint : https://172.18.0.20:5000/v2/test-namespace
登錄檔鏡像
選用
可以變更
registryMirrors.caCertPath
(選用步驟) 字串。如果登錄伺服器使用私密 TLS 憑證,請提供 CA 憑證檔案 (伺服器根 CA) 的路徑。如果本機登錄檔不需要私有 TLS 憑證,則可以省略這個欄位。
登錄檔鏡像
選用
可以變更
registryMirrors.pullCredentialConfigPath
(選用步驟) 字串。Docker CLI 設定檔 的路徑,config.json
。Docker 會將驗證設定儲存在設定檔中。這個欄位僅適用於使用登錄檔鏡像。如果登錄伺服器不需要 Docker 設定檔進行驗證,則可以省略這個欄位。
例如:
registryMirrors :
- endpoint : https://172.18.0.20:5000
caCertPath : /root/ca.crt
pullCredentialConfigPath : /root/.docker/config.json
登錄檔鏡像
選用
可以變更
registryMirrors.hosts
(選用步驟) 主機的網域名稱陣列,這些主機是針對指定登錄檔鏡像 (endpoint
) 在本機進行鏡像處理。當容器執行階段遇到從指定主機提取映像檔的要求時,會先檢查本機登錄檔鏡像。如需其他資訊,請參閱「從登錄檔鏡像建立叢集 」。
例如:
registryMirrors :
- endpoint : https://172.18.0.20:5000
caCertPath : /root/ca.crt
pullCredentialConfigPath : /root/.docker/config.json
hosts :
- somehost.io
- otherhost.io
登錄檔鏡像
選用
可以變更
憑證
bmctl
產生的叢集設定檔包含欄位,可指定本機檔案系統中憑證和金鑰檔案的路徑。這些憑證和金鑰是連結叢集與 Google Cloud 專案的必要條件。
注意: 這些鍵/值組合欄位不是 Kubernetes 叢集自訂資源的有效元素。只有 bmctl
能夠解讀這種格式,標準 Kubernetes 工具則無法。如要使用 kubectl
將變更套用至叢集,請移除憑證和金鑰欄位。
例如:
gcrKeyPath : bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-gcr.json
sshPrivateKeyPath : /home/root-user/.ssh/id_rsa
gkeConnectAgentServiceAccountKeyPath : bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-connect.json
gkeConnectRegisterServiceAccountKeyPath : bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-register.json
cloudOperationsServiceAccountKeyPath : bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-cloud-ops.json
憑證
選用
可以變更
gcrKeyPath
字串。服務帳戶金鑰的路徑,該金鑰必須具備存取 Artifact Registry 資源所需的 IAM 權限。
憑證
選用
可以變更
sshPrivateKeyPath
字串。安全殼層私密金鑰的路徑。您必須透過 SSH 存取節點。
憑證
選用
可以變更
gkeConnectAgentServiceAccountKeyPath
字串。代理程式服務帳戶金鑰的路徑。
Google Distributed Cloud 會使用這個服務帳戶,維持內部部署叢集與 Google Cloud之間的連線。
如需設定這個服務帳戶的操作說明,請參閱設定服務帳戶以搭配使用 Connect 。
憑證
選用
可以變更
gkeConnectRegisterServiceAccountKeyPath
字串。註冊服務帳戶金鑰的路徑。
Google Distributed Cloud 會使用這個服務帳戶向 Google Cloud註冊使用者叢集。
如需設定這個服務帳戶的操作說明,請參閱設定服務帳戶以搭配使用 Connect 。
憑證
選用
可以變更
cloudOperationsServiceAccountKeyPath
字串。作業服務帳戶金鑰的路徑。
Google Distributed Cloud 會使用作業服務帳戶向 Google Cloud Observability 進行驗證,以存取 Logging API 和 Monitoring API。除了使用者叢集外,您必須提供作業服務帳戶金鑰。使用者叢集會使用為管理叢集 (管理員或混合式) 指定的憑證。
您無法為叢集停用 Cloud Logging 和 Cloud Monitoring。
如需設定這個服務帳戶的操作說明,請參閱「設定服務帳戶 」。
憑證
必填
可以變更
ipv4
定義 IPv4 CIDR 範圍的設定。ClusterCidrConfig
資源必須提供至少一個 ipv4
或 ipv6
欄位。
ClusterCIDRConfig 資源
選用
無法變更
ipv4.cidr
字串。設定 IPv4 節點 CIDR 區塊。節點只能有一個來自每個系列的範圍。這個 CIDR 區塊必須與 Cluster
資源中描述的 Pod CIDR 相符。
例如:
ipv4 :
cidr : "10.1.0.0/16"
ClusterCIDRConfig 資源
必填
無法變更
ipv4.perNodeMaskSize
整數。定義節點 IPv4 CIDR 區塊的遮罩大小。舉例來說,值 24
會轉換為網路遮罩 /24
。請確認節點的 CIDR 區塊網路遮罩大於 kubelet 可排程的 Pod 數量上限,這是在 kubelet 的 --max-pods
旗標中定義。
ClusterCIDRConfig 資源
必填
無法變更
ipv6
定義 IPv6 CIDR 範圍的設定。ClusterCidrConfig
資源必須提供至少一個 ipv4
或 ipv6
欄位。
ClusterCIDRConfig 資源
選用
無法變更
ipv6.cidr
字串。設定 IPv6 節點 CIDR 區塊。每個節點只能有一個來自每個系列的範圍。
例如:
ipv6 :
cidr : "2620:0:1000:2631:3:10:3:0/112"
ClusterCIDRConfig 資源
必填
無法變更
ipv6.perNodeMaskSize
整數。定義節點 IPv6 CIDR 區塊的遮罩大小。舉例來說,值 120
會轉換為網路遮罩 /120
。請確認節點的 CIDR 區塊網路遮罩大於 kubelet 可排程的 Pod 數量上限,這是在 kubelet 的 --max-pods
旗標中定義。
ClusterCIDRConfig 資源
必填
無法變更
nodeSelector.matchLabels
定義 CIDR 設定適用的節點。空白節點選取器會做為預設值,套用至所有節點。
例如:
nodeSelector :
matchLabels :
baremetal.cluster.gke.io/node-pool : "workers"
ClusterCIDRConfig 資源
選用
可以變更