可以使用關鍵功能的全域設定自訂 Tanzu Kubernetes Grid 服務,包括容器網路介面 (CNI)、Proxy 伺服器和 TLS 憑證。實作全域功能與每個叢集功能時,請注意各自的利弊和考量事項。
或者,也可以使用全域參數設定 Tanzu Kubernetes Grid 服務。
TkgServiceConfiguration
規格進行的任何變更適用於該服務所佈建的所有
Tanzu Kubernetes 叢集。如果以手動方式或透過升級起始輪流更新,則叢集將透過變更的服務規格進行更新。
TkgServiceConfiguration 規格
TkgServiceConfiguration
規格提供了用於設定
Tanzu Kubernetes Grid 服務執行個體的欄位。
apiVersion: run.tanzu.vmware.com/v1alpha1 kind: TkgServiceConfiguration metadata: name: tkg-service-configuration-example spec: defaultCNI: <antrea or calico> proxy: httpProxy: http://<user>:<pwd>@<ip>:<port> httpsProxy: http://<user>:<pwd>@<ip>:<port> noProxy: [<array of CIDRs to not proxy>] trust: additionalTrustedCAs: - name: <first-cert-name> data: <base64-encoded string of a PEM encoded public cert 1> - name: <second-cert-name> data: <base64-encoded string of a PEM encoded public cert 2>
TkgServiceConfiguration 規格參數
TkgServiceConfiguration
規格參數。如需範例,請參閱
設定 v1alpha1 API Tanzu Kubernetes Grid 服務的範例。
欄位 | 值 | 說明 |
---|---|---|
defaultCNI |
antrea or calico |
供叢集使用的預設 CNI。預設值為 antrea 。另一個支援的 CNI 為 calico 。 |
proxy |
proxy 參數的區段標記。 |
proxy 參數包括 httpProxy 、httpsProxy 和 noProxy 。所有參數均為必填。如果缺少任何 proxy 參數,則無法建立 Tanzu Kubernetes 叢集。 |
httpProxy |
http://<user>:<pwd>@<ip>:<port> 格式的 URI |
不允許使用 https 通訊協定。如果使用 https ,則無法建立 Tanzu Kubernetes 叢集。 |
httpsProxy |
http://<user>:<pwd>@<ip>:<port> 格式的 URI |
不允許使用 https 通訊協定。如果使用 https ,則無法建立 Tanzu Kubernetes 叢集。 |
noProxy |
不進行代理的一組 CIDR 區塊,例如: 從主管叢集上的工作負載網路取得所需的值: 請參閱下面的影像,瞭解要包括在 |
不得代理由主管叢集上的工作負載網路用於網繭、入口和出口的子網路。 無需在 不會自動代理 不會自動代理 Tanzu Kubernetes 叢集的網繭和服務 CIDR。無需將其新增至 |
trust |
trust 參數的區段標記。 |
不接受任何資料。 |
additionalTrustedCAs |
為每個受信任的 CA 接受包含 name 和 data 的一組憑證。 |
不接受任何資料。 |
name |
字串 | TLS 憑證的名稱。 |
data |
字串 | PEM 編碼公用憑證的 Base64 編碼字串。 |
從主管叢集上的工作負載網路取得所需的 noProxy
值,如圖所示。
何時使用全域組態選項或每個叢集的組態選項
TkgServiceConfiguration
是全域規格,將會影響由 Tanzu Kubernetes Grid 服務執行個體佈建的所有 Tanzu Kubernetes 叢集。
TkgServiceConfiguration
規格之前,請注意每個叢集的替代方案,這些替代方案可能滿足您的使用案例而非全域組態。
設定 | 全域選項 | 每個叢集的選項 |
---|---|---|
預設 CNI | 編輯 TkgServiceConfiguration 規格。請參閱設定 v1alpha1 API Tanzu Kubernetes Grid 服務的範例。 |
在叢集規格中指定 CNI。例如,Antrea 為預設 CNI。若要使用 Calico,請在叢集 YAML 中加以指定。請參閱 使用 Tanzu Kubernetes Grid 服務 v1alpha1 API 佈建 Tanzu Kubernetes 叢集的範例 |
Proxy 伺服器 | 編輯 TkgServiceConfiguration 規格。請參閱設定 v1alpha1 API Tanzu Kubernetes Grid 服務的範例。 |
在叢集規格中包括 Proxy 伺服器組態參數。請參閱使用 Tanzu Kubernetes Grid 服務 v1alpha1 API 佈建 Tanzu Kubernetes 叢集的範例。 |
信任憑證 | 編輯 TkgServiceConfiguration 規格。有兩種使用案例:設定外部容器登錄和以憑證為基礎的 Proxy 組態。請參閱 設定 v1alpha1 API Tanzu Kubernetes Grid 服務的範例 |
是,可以根據每個叢集包含自訂憑證,或覆寫叢集規格中全域設定的 trust 設定。請參閱使用 Tanzu Kubernetes Grid 服務 v1alpha1 API 佈建 Tanzu Kubernetes 叢集的範例。 |
TkgServiceConfiguration
上設定了全域 Proxy,該 Proxy 資訊將在初始部署該叢集後散佈到叢集資訊清單。只有在建立叢集時不存在 Proxy 組態欄位的情況下,全域 Proxy 組態才會新增至叢集資訊清單。換句話說,每個叢集的組態優先,而且將覆寫全域 Proxy 組態。如需詳細資訊,請參閱
Tanzu Kubernetes Grid 服務 v1alpha1 API 的組態參數。
編輯 TkgServiceConfiguration
規格之前,請注意在全域層級套用設定的後果。
欄位 | 已套用 | 新增/變更時對現有叢集的影響 | 建立叢集時的每個叢集覆寫 | 更新叢集時的每個叢集覆寫 |
---|---|---|---|---|
defaultCNI |
全域 | 無 | 是,可以在建立叢集時覆寫全域設定 | 否,無法變更現有叢集的 CNI;如果在建立叢集時使用了全域設定的預設 CNI,則無法進行變更 |
proxy |
全域 | 無 | 是,可以在建立叢集時覆寫全域設定 | 是,對於 U2+,可以在更新叢集時覆寫全域設定 |
trust |
全域 | 無 | 是,可以在建立叢集時覆寫全域設定 | 是,對於 U2+,可以在更新叢集時覆寫全域設定 |
將全域組態變更散佈到現有叢集
在 TkgServiceConfiguration
中的全域層級進行的設定不會自動散佈到現有叢集。例如,如果您對 TkgServiceConfiguration
中的 proxy
或 trust
設定進行變更,則此類變更將不會影響已佈建的叢集。
若要將全域變更散佈到現有叢集,則必須修補 Tanzu Kubernetes 叢集,使叢集繼承對 TkgServiceConfiguration
所做的變更。
kubectl patch tkc <CLUSTER_NAME> -n <NAMESPACE> --type merge -p "{\"spec\":{\"settings\":{\"network\":{\"proxy\": null}}}}"
kubectl patch tkc <CLUSTER_NAME> -n <NAMESPACE> --type merge -p "{\"spec\":{\"settings\":{\"network\":{\"trust\": null}}}}"