Tanzu Kubernetes Grid 服務宣告式 API 公開了多個用於設定 Tanzu Kubernetes 叢集的參數。請參閱用於佈建和自訂叢集的所有參數和使用準則的清單和說明。
用於佈建 Tanzu Kubernetes 叢集的標註 YAML
標註 YAML 列出了用於佈建
Tanzu Kubernetes 叢集的所有可用參數以及每個欄位的摘要註解。
備註: 未驗證用於佈建叢集的標註 YAML。如需此類指引,請參閱以下範例:
使用 Tanzu Kubernetes Grid 服務 v1alpha1 API 佈建 Tanzu Kubernetes 叢集的範例。
apiVersion: run.tanzu.vmware.com/v1alpha1 kind: TanzuKubernetesCluster metadata: name: <tanzu kubernetes cluster name> namespace: <vsphere namespace where the cluster will be provisioned> spec: distribution: version: <tanzu kubernetes release version string: full, point, short> topology: controlPlane: count: <integer either 1 or 3> class: <vm class bound to the target vsphere namespace> storageClass: <vsphere storage policy bound to the target vsphere namespace> volumes: #optional setting for high-churn control plane component (such as etcd) - name: <user-defined string> mountPath: </dir/path> capacity: storage: <size in GiB> workers: count: <integer from 0 to 150> class: <vm class bound to the target vsphere namespace> storageClass: <vsphere storage policy bound to the target vsphere namespace> volumes: #optional setting for high-churn worker node component (such as containerd) - name: <user-defined string> mountPath: </dir/path> capacity: storage: <size in GiB> settings: #all spec.settings are optional storage: #optional storage settings classes: [<array of kubernetes storage classes for dynamic pvc provisioning>] defaultClass: <default kubernetes storage class> network: #optional network settings cni: #override default cni set in the tkgservicesonfiguration spec name: <antrea or calico> pods: #custom pod network cidrBlocks: [<array of pod cidr blocks>] services: #custom service network cidrBlocks: [<array of service cidr blocks>] serviceDomain: <custom service domain> proxy: #proxy server for outbound connections httpProxy: http://<IP:PORT> httpsProxy: http://<IP:PORT> noProxy: [<array of CIDRs to not proxy>] trust: #trust fields for custom public certs for tls additionalTrustedCAs: - name: <first-cert-name> data: <base64-encoded string of PEM encoded public cert 1> - name: <second-cert-name> data: <base64-encoded string of PEM encoded public cert 2>
用於佈建 Tanzu Kubernetes 叢集的參數
下表列出並說明用於佈建 Tanzu Kubernetes 叢集的所有參數和可接受的值。如需範例,請參閱設定 v1alpha1 API Tanzu Kubernetes Grid 服務的範例。
名稱 | 值 | 說明 |
---|---|---|
apiVersion |
run.tanzu.vmware.com/v1alpha1 |
指定 Tanzu Kubernetes Grid 服務 API 的版本。 |
kind |
TanzuKubernetesCluster |
指定要建立的 Kubernetes 資源類型。唯一允許的值為 TanzuKubernetesCluster (區分大小寫)。 |
metadata |
適用於叢集中繼資料的區段 | 包含叢集中繼資料,例如 name 和 namespace 。這是標準 Kubernetes 中繼資料,因此您可以使用 generateName (而非 name ),新增標籤和註解等。 |
name |
使用者定義的字串,可接受英數字元和破折號,例如:my-tkg-cluster-1 |
指定要建立的叢集名稱。目前叢集命名限制:
|
namespace |
使用者定義的字串,可接受英數字元和破折號,例如:my-sns-1 |
識別將在其中部署叢集的主管命名空間的名稱。這是對主管叢集中存在的主管命名空間的參考。 |
spec |
適用於叢集的技術規格的區段 | 包括叢集結束狀態的規格 (以宣告式方式表示),包括節點 toplogy 和 Kubernetes 軟體 distribution 。 |
distribution |
用於指定 Tanzu Kubernetes 發行版本的區段 | 指示叢集的分佈:安裝在控制平面和工作節點上的 Tanzu Kubernetes 叢集軟體,包括 Kubernetes 本身。 |
version |
以英數字元字串和虛線表示 Kubernetes 版本,例如: 、v1.20.2 或 v1.20 |
使用語義版本標記法指定要在叢集節點上安裝的 Kubernetes 發行版本的軟體版本。可以指定完全限定版本或使用版本捷徑,例如「version: v1.20.2」(解析為與該修補程式版本相符的最新映像) 或「version: v1.20」(解析為相符的最新修補程式版本)。在建立叢集後,已解析的版本將在叢集說明中顯示為「fullVersion」。 |
topology |
適用於叢集節點拓撲的區段 | 包括說明叢集節點數目、目的和組織以及配置給每個叢集節點的資源的欄位。叢集節點會根據其預期目的分組至集區:control-plane 或 worker 。每個集區都屬於同類,具有相同的資源配置並使用相同的儲存區。 |
controlPlane |
適用於控制平面設定的區段 | 指定叢集控制平面的拓撲,包括節點數目 (count )、虛擬機器類型 (class ) 以及為每個節點配置的儲存區資源 (storageClass )。 |
count |
值為 1 或 3 的整數 |
指定控制平面節點的數目。控制平面的節點數目必須為奇數。 |
class |
系統定義的元素,採用列舉集中字串的格式,例如:guaranteed-small 或 best-effort-large |
指定 VirtualMachineClass 的名稱,說明了要用於集區中每個節點的虛擬硬體設定。這會控制節點可用的硬體 (CPU 和記憶體),以及關於這些資源的要求和限制。請參閱Tanzu Kubernetes 叢集的虛擬機器類別。 |
storageClass |
node-storage (例如) |
識別要用於磁碟儲存區 (儲存控制平面節點之根檔案系統) 的儲存區類別。在命名空間上執行 kubectl describe ns ,以檢視可用的儲存區類別。命名空間可用的儲存區類別取決於 vSphere 管理員所設定的儲存區。在叢集中複寫與主管命名空間相關聯的儲存區類別。換言之,儲存區類別在主管命名空間中必須可用,才能成為此欄位的有效值。請參閱設定和管理 vSphere 命名空間。 |
volumes |
選用儲存區設定
|
可以為控制平面節點上的 etcd 指定單獨的磁碟和儲存區參數。請參閱範例 使用單獨磁碟和儲存參數的叢集。 |
workers |
適用於 worker 節點設定的區段 | 指定叢集工作節點的拓撲,包括節點數目 (count )、虛擬機器類型 (class ) 以及為每個節點配置的儲存區資源 (storageClass )。 |
count |
介於 0 到 150 之間的整數,例如:1 、2 或 7 |
指定叢集中工作節點的數目。您可以建立具有零工作節點的叢集,以允許僅具有控制平面節點的叢集。工作節點數目上限沒有硬限制,但合理的限制為 150。
備註: 對於佈建了 0 個 worker 節點的叢集,不會向其指派任何負載平衡器服務。
|
class |
系統定義的元素,採用列舉集中字串的格式,例如:guaranteed-small 或 best-effort-large |
指定 VirtualMachineClass 的名稱,說明了要用於集區中每個節點的虛擬硬體設定。這會控制節點可用的硬體 (CPU 和記憶體),以及關於這些資源的要求和限制。請參閱Tanzu Kubernetes 叢集的虛擬機器類別。 |
storageClass |
node-storage (例如) |
識別要用於磁碟儲存區 (儲存工作節點之根檔案系統) 的儲存區類別。在命名空間上執行 kubectl describe ns ,以列出可用的儲存區類別。命名空間可用的儲存區類別取決於 vSphere 管理員所設定的儲存區。在叢集中複寫與主管命名空間相關聯的儲存區類別。換言之,儲存區類別在主管命名空間中必須可用,才能有效。請參閱設定和管理 vSphere 命名空間。 |
volumes |
選用儲存區設定
|
可以為 worker 節點上的容器映像指定單獨的磁碟和儲存區參數。請參閱範例 使用單獨磁碟和儲存參數的叢集。 |
settings |
適用於叢集特定設定的區段;所有 spec.settings 都是可選的 |
識別叢集的選用執行階段組態資訊,包括網繭的節點 network 詳細資料和持續性 storage 。 |
storage |
用於指定儲存區的區段 | 識別容器工作負載的持續性磁碟區 (PV) 儲存區項目。 |
classes |
由一或多個使用者定義的字串所組成的陣列,例如:["gold", "silver"] |
指定容器工作負載的具名持續性磁碟區 (PV) 儲存區類別。在叢集中複寫與主管命名空間相關聯的儲存區類別。換言之,儲存區類別在主管命名空間中必須可用,才能成為有效值。請參閱範例 具有儲存區類別和預設持續性磁碟區類別的叢集。 |
defaultClass |
silver (例如) |
指定要在叢集中標注為預設值的具名儲存區類別。如果未指定,則沒有預設值。您不需要指定一或多個 classes ,即可指定 defaultClass 。某些工作負載可能需要預設類別,例如 Helm。請參閱範例 具有儲存區類別和預設持續性磁碟區類別的叢集。 |
network |
適用於網路設定的區段標記 | 指定叢集的網路相關設定。 |
cni |
用於指定 CNI 的區段標記 | 識別叢集的容器網路介面 (CNI) 外掛程式。預設值為 Antrea,不需要為新叢集指定。 |
name |
字串 antrea 或 calico |
指定要使用的 CNI。支援 Antrea 和 Calico。系統組態將 Antrea 設定為預設 CNI。預設 CNI 可進行變更。如果使用預設值,則不需要指定此欄位。 |
services |
用於指定 Kubernetes 服務子網路的區段標記 | 識別 Kubernetes 服務的網路設定。預設為 10.96.0.0/12。 |
cidrBlocks |
陣列 ["198.51.100.0/12"] (範例) |
指定要用於 Kubernetes 服務的 IP 位址範圍。預設為 10.96.0.0/12。不得與為主管叢集所選擇的設定重疊。雖然此欄位是陣列,可允許多個範圍,但目前僅允許單一 IP 範圍。如需相關網路範例,請參閱 使用 Tanzu Kubernetes Grid 服務 v1alpha1 API 佈建 Tanzu Kubernetes 叢集的範例。 |
pods |
用於指定 Kubernetes 網繭子網路的區段標記 | 指定網繭的網路設定。預設為 192.168.0.0/16。區塊大小下限為 /24。 |
cidrBlocks |
陣列 ["192.0.2.0/16"] (範例) |
指定要用於 Kubernetes 網繭的 IP 位址範圍。預設為 192.168.0.0/16。不得與為主管叢集所選擇的設定重疊。網繭子網路大小必須等於或大於 /24。雖然此欄位是陣列,可允許多個範圍,但目前僅允許單一 IP 範圍。如需相關網路範例,請參閱 使用 Tanzu Kubernetes Grid 服務 v1alpha1 API 佈建 Tanzu Kubernetes 叢集的範例。 |
serviceDomain |
"cluster.local" |
指定叢集的服務網域。預設值為 cluster.local 。 |
proxy |
用於為叢集指定 HTTP(s) Proxy 組態的區段。如果已實作,則所有欄位為必填。 | 提供指定 Proxy 設定的欄位;如果已設定全域 Proxy 且未設定個別叢集 Proxy,則會自動填入。請參閱範例 具有 Proxy 伺服器的叢集。 |
httpProxy |
http://<user>:<pwd>@<ip>:<port> |
指定 Proxy URL,用於在叢集外部建立 HTTP 連線。 |
httpsProxy |
http://<user>:<pwd>@<ip>:<port> |
指定 Proxy URL,用於在叢集外部建立 HTTPS 連線。 |
noProxy |
不進行代理的一組 CIDR 區塊,例如: 從主管叢集上的工作負載網路取得所需的值: 請參閱下面的影像,瞭解要包括在 |
不得代理由主管叢集上的工作負載網路用於網繭、入口和出口的子網路。 無需在 不會自動代理 不會自動代理 Tanzu Kubernetes 叢集的網繭和服務 CIDR。無需將其新增至 請參閱範例 具有 Proxy 伺服器的叢集。 |
trust |
trust 參數的區段標記。 |
不接受任何資料。 |
additionalTrustedCAs |
為每個受信任的 CA 接受包含 name 和 data 的一組憑證。 |
不接受任何資料。 |
name |
字串 | TLS 憑證的名稱。 |
data |
字串 | PEM 編碼公用憑證的 Base64 編碼字串。 |
從主管叢集上的工作負載網路取得所需的 noProxy
值,如圖所示。