L'API dichiarativa di Servizio Tanzu Kubernetes Grid espone diversi parametri per la configurazione dei cluster di Tanzu Kubernetes. Fare riferimento all'elenco e alla descrizione di tutti i parametri e alle linee guida per l'utilizzo per eseguire il provisioning e personalizzare i cluster.
Codice YAML annotato per il provisioning di un cluster di 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>
Parametri per il provisioning dei cluster di Tanzu Kubernetes
Nella tabella sono elencati e descritti tutti i parametri e i valori accettabili per il provisioning di un cluster di Tanzu Kubernetes. Per alcuni esempi, vedere Esempi di configurazione dell'API v1alpha1 del Servizio Tanzu Kubernetes Grid.
Nome | Valore | Descrizione |
---|---|---|
apiVersion |
run.tanzu.vmware.com/v1alpha1 |
Specifica la versione dell'API di Tanzu Kubernetes Grid Service. |
kind |
TanzuKubernetesCluster |
Specifica il tipo di risorsa Kubernetes da creare. L'unico valore consentito è TanzuKubernetesCluster (viene applicata la distinzione tra maiuscole e minuscole). |
metadata |
Sezione per i metadati del cluster | Include i metadati del cluster, ad esempio name e namespace . Si tratta di metadati di Kubernetes standard, quindi è possibile utilizzare generateName anziché name , aggiungere etichette e annotazioni e così via. |
name |
Stringa definita dall'utente che accetta caratteri alfanumerici e trattini, ad esempio: my-tkg-cluster-1 |
Specifica il nome del cluster da creare. Vincoli di denominazione del cluster correnti:
|
namespace |
Stringa definita dall'utente che accetta caratteri alfanumerici e trattini, ad esempio: my-sns-1 |
Identifica il nome dello spazio dei nomi supervisore in cui il cluster verrà distribuito. Si tratta di un riferimento a uno spazio dei nomi supervisore esistente nel cluster supervisore. |
spec |
Sezione per le specifiche tecniche del cluster | Include la specifica, espressa in modalità dichiarativa, per lo stato finale del cluster, incluso toplogy del nodo e distribution del software Kubernetes. |
distribution |
Sezione per la specifica della versione di Tanzu Kubernetes | Indica la distribuzione per il cluster: il software del cluster di Tanzu Kubernetes installato nel piano di controllo e i nodi worker, incluso Kubernetes stesso. |
version |
Stringa alfanumerica con trattini che rappresenta la versione di Kubernetes, ad esempio: , v1.20.2 o v1.20 |
Specifica la versione del software della distribuzione di Kubernetes da installare nei nodi del cluster utilizzando la notazione della versione semantica. È possibile specificare la versione completa o utilizzare le abbreviazioni della versione, ad esempio "versione: v1.20.2", che è stata risolta nell'immagine più recente corrispondente alla versione patch, o "versione: v1.20", che è stata risolta nella versione patch corrispondente più recente. Una volta creata, la versione risolta viene visualizzata come "fullVersion" nella descrizione del cluster. |
topology |
Sezione per le topologie dei nodi del cluster | Include campi che descrivono il numero, lo scopo e l'organizzazione dei nodi del cluster, nonché le risorse allocate a ciascun nodo. I nodi del cluster sono raggruppati in pool in base allo scopo previsto: control-plane o worker . Ogni pool è omogeneo, utilizza la stessa allocazione di risorse e lo stesso storage. |
controlPlane |
Sezione per le impostazioni del piano di controllo | Specifica la topologia del piano di controllo del cluster, incluso il numero di nodi (count ), il tipo di macchina virtuale (class ) e le risorse di storage allocate per ogni nodo (storageClass ). |
count |
Un numero intero, 1 o 3 |
Specifica il numero di nodi del piano di controllo. Il piano di controllo deve avere un numero di nodi dispari. |
class |
Elemento definito dal sistema sotto forma di una stringa di un set enumerato, ad esempio: guaranteed-small o best-effort-large |
Specifica il nome della VirtualMachineClass che descrive le impostazioni dell'hardware virtuale da utilizzare per ciascun nodo del pool. Controlla l'hardware disponibile per il nodo (CPU e memoria), nonché le richieste e i limiti di tali risorse. Vedere Classi di macchine virtuali per i cluster di Tanzu Kubernetes. |
storageClass |
node-storage (ad esempio) |
Identifica la classe di storage da utilizzare per lo storage dei dischi in cui sono archiviati i file system root dei nodi del piano di controllo. Eseguire kubectl describe ns nello spazio dei nomi per visualizzare le classi di storage disponibili. Le classi di storage disponibili per lo spazio dei nomi dipendono dallo storage impostato dall'amministratore di vSphere. Le classi di storage associate allo spazio dei nomi supervisore vengono replicate nel cluster. In altre parole, per essere un valore valido per questo campo, la classe di storage deve essere disponibile nello spazio dei nomi supervisore. Vedere Configurazione e gestione degli spazi dei nomi vSphere. |
volumes |
Impostazione di storage facoltativa
|
Può specificare parametri di storage e disco separati per etcd nei nodi del piano di controllo. Vedere l'esempio Cluster con dischi separati e parametri di storage. |
workers |
Sezione per le impostazioni dei nodi worker | Specifica la topologia dei nodi worker del cluster, incluso il numero di nodi (count ), il tipo di macchina virtuale (class ) e le risorse di storage allocate per ciascun nodo (storageClass ). |
count |
Un numero intero compreso tra 0 e 150, ad esempio 1 , 2 o 7 |
Specifica il numero di nodi worker nel cluster. È possibile creare un cluster con zero nodi worker per consentire un cluster con i soli nodi del piano di controllo. Non esiste un limite massimo definito per il numero di nodi worker, ma è consigliabile includerne al massimo 150. |
class |
Elemento definito dal sistema sotto forma di una stringa di un set enumerato, ad esempio: guaranteed-small o best-effort-large |
Specifica il nome della VirtualMachineClass che descrive le impostazioni dell'hardware virtuale da utilizzare per ciascun nodo del pool. Controlla l'hardware disponibile per il nodo (CPU e memoria), nonché le richieste e i limiti di tali risorse. Vedere Classi di macchine virtuali per i cluster di Tanzu Kubernetes. |
storageClass |
node-storage (ad esempio) |
Identifica la classe di storage da utilizzare per lo storage dei dischi in cui sono archiviati i file system root dei nodi worker. Eseguire kubectl describe ns nello spazio dei nomi per elencare le classi di storage disponibili. Le classi di storage disponibili per lo spazio dei nomi dipendono dallo storage impostato dall'amministratore di vSphere. Le classi di storage associate allo spazio dei nomi supervisore vengono replicate nel cluster. In altre parole, per essere valida, la classe di storage deve essere disponibile nello spazio dei nomi supervisore. Vedere Configurazione e gestione degli spazi dei nomi vSphere. |
volumes |
Impostazione di storage facoltativa
|
Può specificare parametri di storage e disco separati per le immagini del container nei nodi worker. Vedere l'esempio Cluster con dischi separati e parametri di storage. |
settings |
Sezione per le impostazioni specifiche del cluster. Tutte le impostazioni spec.settings sono facoltative. |
Identifica le informazioni di configurazione di runtime facoltative per il cluster, inclusi i dettagli di network del nodo e lo storage persistente per i pod. |
storage |
Sezione per la specifica dello storage | Identifica le voci di storage del volume persistente (PV) per i carichi di lavoro di container. |
classes |
Array di una o più stringhe definite dall'utente, ad esempio: ["gold", "silver"] |
Specifica le classi di storage con volume persistente (PV) denominate per i carichi di lavoro di container. Le classi di storage associate allo spazio dei nomi supervisore vengono replicate nel cluster. In altre parole, per essere un valore valido, la classe di storage deve essere disponibile nello spazio dei nomi supervisore. Vedere l'esempio Cluster con classi di storage e classe predefinita per volumi persistenti. |
defaultClass |
silver (ad esempio) |
Specifica una classe di storage denominata da annotare come predefinita nel cluster. Se non viene specificata, non è disponibile alcun valore predefinito. Non è necessario specificare uno o più valori di classes per specificare defaultClass . Alcuni carichi di lavoro possono richiedere una classe predefinita, ad esempio Helm. Vedere l'esempio Cluster con classi di storage e classe predefinita per volumi persistenti. |
network |
Indicatore di sezione per le impostazioni di rete | Specifica le impostazioni relative alla rete per il cluster. |
cni |
Indicatore di sezione per la specifica dell'interfaccia CNI | Identifica il plug-in CNI (Container Networking Interface) per il cluster. L'impostazione predefinita è Antrea, che non deve essere specificata per i nuovi cluster. |
name |
Stringa antrea o calico |
Specifica l'interfaccia CNI da utilizzare. Sono supportati Antrea e Calico. La configurazione di sistema imposta Antrea come interfaccia CNI predefinita. È possibile modificare l'interfaccia CNI predefinita. Se si utilizza il valore predefinito, non è necessario specificare questo campo. |
services |
Indicatore di sezione per la specifica delle subnet dei servizi Kubernetes | Identifica le impostazioni di rete per i servizi Kubernetes. Il valore predefinito è 10.96.0.0/12. |
cidrBlocks |
Array ["198.51.100.0/12"] (ad esempio) |
Specifica un intervallo di indirizzi IP da utilizzare per i servizi Kubernetes. Il valore predefinito è 10.96.0.0/12. Non deve sovrapporsi alle impostazioni scelte per il cluster supervisore. Anche se questo campo è un array, e consente quindi più intervalli, al momento è consentito un solo intervallo di IP. Vedere gli esempi di rete disponibili in Esempi di provisioning dei cluster Tanzu Kubernetes mediante l'API v1alpha1 del Servizio Tanzu Kubernetes Grid. |
pods |
Indicatore di sezione per la specifica delle subnet dei pod Kubernetes | Specifica le impostazioni di rete per i pod. Il valore predefinito è 192.168.0.0/16. Le dimensioni minime del blocco sono /24. |
cidrBlocks |
Array ["192.0.2.0/16"] (ad esempio) |
Specifica un intervallo di indirizzi IP da utilizzare per i pod Kubernetes. Il valore predefinito è 192.168.0.0/16. Non deve sovrapporsi alle impostazioni scelte per il cluster supervisore. Le dimensioni della subnet dei pod devono essere maggiori o uguali a /24. Anche se questo campo è un array, e consente quindi più intervalli, al momento è consentito un solo intervallo di IP. Vedere gli esempi di rete disponibili in Esempi di provisioning dei cluster Tanzu Kubernetes mediante l'API v1alpha1 del Servizio Tanzu Kubernetes Grid. |
serviceDomain |
"cluster.local" |
Specifica il dominio del servizio per il cluster. Il valore predefinito è cluster.local . |
proxy |
Sezione che specifica la configurazione del proxy HTTP(s) per il cluster. Se viene implementata, tutti i campi sono obbligatori. | Include i campi per le impostazioni del proxy specificate. Verranno compilati automaticamente se è configurato un proxy globale e non viene configurato un proxy cluster individuale. Vedere l'esempio Cluster con server proxy. |
httpProxy |
http://<user>:<pwd>@<ip>:<port> |
Specifica un URL proxy da utilizzare per la creazione di connessioni HTTP esterne al cluster. |
httpsProxy |
http://<user>:<pwd>@<ip>:<port> |
Specifica un URL proxy da utilizzare per la creazione di connessioni HTTPS esterne al cluster. |
noProxy |
Array di blocchi CIDR da non usare come proxy, ad esempio: I valori richiesti provengono dalla rete del carico di lavoro nel cluster supervisore: Fare riferimento all'immagine seguente per i valori da includere nel campo di array |
Non è necessario usare il proxy per le subnet utilizzate dalla rete del carico di lavoro nel cluster supervisore per i pod, l'ingresso e l'uscita. Non è necessario includere il CIDR dei servizi del cluster supervisore nel campo Agli endpoint Ai CIDR di pod e servizio per i cluster di Tanzu Kubernetes non viene applicato il proxy per impostazione predefinita. Non è necessario aggiungerli al campo Vedere l'esempio Cluster con server proxy. |
trust |
Marcatore di sezione per i parametri trust . |
Non accetta alcun dato. |
additionalTrustedCAs |
Accetta un array di certificati con name e data per ciascuno. |
Non accetta alcun dato. |
name |
Stringa | Nome del certificato TLS. |
data |
Stringa | Stringa codificata in base64 di un certificato pubblico con codifica PEM. |
Recuperare i valori noProxy
richiesti da Rete carico di lavoro nel Cluster supervisore, come mostrato nell'immagine.