Servizio TKG offre la gestione del ciclo di vita self-service dei cluster dei carichi di lavoro Kubernetes. TKG Service con Supervisore è ottimizzato per l'ambiente vSphere e si integra con l'infrastruttura sottostante, tra cui vCenter, ESXi, rete virtuale e storage cloud nativo. Con TKG Service è possibile eseguire il provisioning dei cluster Kubernetes conformi e mantenere la simultaneità upstream.

Servizio TKG include diversi componenti integrati con vSphere IaaS control plane.
Figura 1. Componenti Servizio TKG
Componenti di TKG Service

Gestione carico di lavoro

Gestione carico di lavoro è una soluzione VMware che fornisce un piano di controllo Kubernetes nell'infrastruttura di vSphere nativa. L'abilitazione di Gestione carico di lavoro consente di distribuire uno o più Supervisori nell'ambiente vSphere. Gestione carico di lavoro viene fornito in bundle con vCenter Server ma concesso in licenza separatamente.

Supervisore

Supervisore è un cluster Kubernetes che funge da piano di controllo per gestire i cluster del carico di lavoro. È possibile configurare Supervisore per supportare gli sviluppatori che eseguono il provisioning e utilizzano i cluster Tanzu Kubernetes Grid.

Distribuzione di Supervisore: cluster di vSphere

Il modo tradizionale per distribuire Supervisore è in un unico cluster vSphere. Un cluster vSphere è una raccolta di host ESXi gestiti da vCenter Server. È necessario configurare un cluster vSphere con funzionalità specifiche per supportare Supervisore, tra cui:
  • Più host ESXi connessi da un vSphere Distributed Switch (VDS)
  • Lo storage condiviso è configurato, come vSAN o NFS
  • vSphere HA e il DRS completamente automatizzato sono abilitati
  • La gestione del ciclo di vita è abilitata
  • Rete configurata, NSX con bilanciamento del carico incorporato o VDS con bilanciamento del carico esterno
Dal punto di vista dell'architettura, per le distribuzioni di produzione di TKG in Supervisore, è consigliabile separare il cluster o l'host del piano di gestione in cui viene eseguito vCenter Server dal cluster del piano di elaborazione in cui Supervisore sarà abilitato. Se si utilizza un cluster vSphere per ospitare vCenter Server, in questo cluster non deve essere abilitato DRS. Per dettagli, fare riferimento alla documentazione di vCenter.

Distribuzione di Supervisore: zone vSphere

vSphere 8 introduce le zone vSphere. È possibile assegnare cluster vSphere a zone vSphere per fornire alta disponibilità e tolleranza agli errori per il Supervisore. La distribuzione di Supervisore nelle zone vSphere consente di eseguire il provisioning dei cluster TKG in zone di disponibilità specifiche.

In una distribuzione di Supervisore in un unico cluster di vSphere, esiste una relazione uno-a-uno tra Supervisore e il cluster vSphere. In una distribuzione di Supervisore con zone, Supervisore si estende in tre cluster vSphere per fornire alta disponibilità e domini di errore per i cluster TKG in Supervisore.

Un amministratore di vSphere crea le tre zone di vSphere e le associa a un cluster vSphere. Una distribuzione del Supervisore in tre zone vSphere presenta requisiti speciali, oltre ai requisiti del cluster vSphere, tra cui:

  • Tre zone vSphere connesse da un vSphere Distributed Switch (VDS)
  • Ogni zona vSphere contiene un singolo cluster vSphere
  • Un Supervisore deve essere distribuito in esattamente 3 zone vSphere
  • Nella zona vSphere è disponibile un criterio di storage vSphere

Spazio dei nomi vSphere

Spazio dei nomi vSphere è uno spazio dei nomi in Supervisore in cui viene eseguito il provisioning di uno o più cluster Tanzu Kubernetes Grid. Per ogni Spazio dei nomi vSphere, è possibile configurare il controllo degli accessi basato sui ruoli, lo storage persistente, i limiti delle risorse, la libreria di immagini e le classi di macchine virtuali.

Servizio TKG

Servizio TKG è un'implementazione del progetto API cluster open source che definisce un set di risorse e controller personalizzati per gestire il ciclo di ciclo di vita dei cluster Kubernetes. Tanzu Kubernetes Grid è un componente di Supervisore.

Servizio TKG ha tre livelli di controller per gestire il ciclo di vita dei cluster TKG, inclusi Servizio macchina virtuale, API del cluster e plug-in del provider di cloud.

Operatore macchina virtuale
Il controller Servizio macchina virtuale fornisce un'API dichiarativa in stile Kubernetes per la gestione delle macchine virtuali e delle risorse di vSphere associate. Il Servizio macchina virtuale introduce il concetto di una classe di macchine virtuali che rappresenta una configurazione hardware riutilizzabile astratta. Servizio TKG utilizza il Servizio macchina virtuale per gestire il ciclo di ciclo di vita del piano di controllo e delle macchine virtuali del nodo di lavoro che ospitano un cluster del carico di lavoro.
API cluster
Il controller dell'API del cluster fornisce le interfacce API dichiarative in stile Kubernetes per la creazione, la configurazione e la gestione del cluster. Gli input per l'API del cluster includono una risorsa che descrive il cluster, un set di risorse che descrive le macchine virtuali che costituiscono il cluster e un set di risorse che descrivono i componenti aggiuntivi del cluster.
Plug-in del provider di cloud
Servizio TKG esegue il provisioning dei cluster del carico di lavoro che includono i componenti necessari per l'integrazione con le risorse del Spazio dei nomi vSphere sottostante. Questi componenti includono un plug-in del provider di cloud che si integra con il Supervisore. TKG utilizza il plug-in del provider di cloud per trasmettere le richieste di volumi persistenti al Supervisore, che è integrato con VMware Cloud Native Storage (CNS).

Versioni di Tanzu Kubernetes

Una Release di Tanzu Kubernetes fornisce la distribuzione e i componenti aggiuntivi del software Kubernetes firmata e supportata da VMware per l'uso con i cluster Tanzu Kubernetes Grid.

Ogni Release di Tanzu Kubernetes è distribuito come modello della macchina virtuale (file OVA). Il Tanzu Kubernetes Grid utilizza il formato OVA per creare i nodi della macchina virtuale per i cluster TKG. Le versioni di Tanzu Kubernetes vengono realizzate in base al controllo delle versioni di Kubernetes e sono incluse le personalizzazioni e le ottimizzazioni del sistema operativo per l'infrastruttura vSphere.

Per un elenco delle versioni di Tanzu Kubernetes e della compatibilità con Supervisore, fare riferimento alle note di rilascio di Tanzu Kubernetes. Vedere anche il Criterio di supporto di vSphere IaaS control plane.

Libreria di contenuti

Release di Tanzu Kubernetes vengono resi disponibili per i cluster TKG utilizzando una libreria di contenuti di vCenter. È possibile creare una libreria di contenuti con sottoscrizione e ricevere automaticamente le TKR quando vengono rese disponibili da VMware oppure utilizzare una libreria di contenuti locale e caricare manualmente le TKR.

Componenti del cluster di Servizio TKG

I componenti eseguiti in un cluster Servizio TKG forniscono funzionalità per quattro aree del prodotto: autenticazione, storage, rete e bilanciamento del carico.

Webhook di autenticazione

Il webhook di autenticazione è in esecuzione come pod all'interno del cluster per convalidare i token di autenticazione degli utenti.

I cluster TKG supportano l'autenticazione in due modi: utilizzando il vCenter Single Sign-On e un provider di identità esterno che supporta il protocollo Open ID Connect (OIDC).

TKG esegue il client OIDC Pinniped sul Supervisore e sui nodi del cluster TKG. La configurazione di un provider OIDC esterno per Supervisore configura automaticamente i componenti di Pinniped.

TKG supporta diversi client per l'autenticazione con Supervisore, inclusi Plug-in vSphere per kubectl e la CLI di Tanzu.

Container Storage Interface (CSI)

Un plug-in CSI paravirtuale è un pod Kubernetes che viene eseguito in un cluster TKG e si integra con VMware Cloud Native Storage (CNS) tramite Supervisore. Un pod Kubernetes in esecuzione all'interno di un cluster TKG può montare tre tipi di dischi virtuali: volume effimero e persistente e immagine del container.

Storage temporaneo

Un pod richiede uno storage temporaneo per archiviare dati temporanei come oggetti Kubernetes come registri, volumi e mappe di configurazione. Lo storage temporaneo dura mentre il pod esiste. I dati temporanei persistono dopo il riavvio del container, ma quando il pod sarà eliminato, il disco virtuale che archivia i dati effimeri scompare.

Storage persistente

TKG sfrutta il framework dei criteri di storage vSphere per definire le classi di storage e riservare volumi persistenti. Inoltre, un cluster TKG trasmette le richieste di volumi persistenti al Supervisore, che è integrato con VMware Cloud Native Storage (CNS). Il provisioning dei volumi persistenti viene eseguito nei nodi del cluster in modo dinamico utilizzando una classe di storage, o manualmente.

Archivio immagine container

I container all'interno del pod utilizzano immagini che contengono il software da eseguire. Il pod monta le immagini utilizzate dai suoi container come dischi virtuali dell'immagine. Quando il pod completa il suo ciclo di vita, i dischi virtuali dell'immagine vengono scollegati dal pod. Kubelet è responsabile dell'estrazione delle immagini dei container dal registro immagini e della loro trasformazione in dischi virtuali da eseguire all'interno del pod.

Container Network Interface (CNI)

Il plug-in Container Network Interface è un plug-in CNI che fornisce la rete di pod.

I cluster TKG supportano le seguenti opzioni Container Network Interface (CNI): Antrea (impostazione predefinita) e Calico. Inoltre, TKG fornisce l'interfaccia CNI instradata di Antrea NSX per implementare la rete di pod instradabili.

Nella tabella sono riepilogate le funzionalità di rete del cluster TKG e la relativa implementazione.

Tabella 1. Rete cluster di Servizio TKG
Endpoint Provider Descrizione
Connettività pod Antrea o Calico CNI per i pod. Antrea utilizza Open vSwitch. Calico utilizza il bridge Linux con BGP.
Tipo di servizio: ClusterIP Antrea o Calico Tipo di servizio Kubernetes predefinito, accessibile solo dall'interno del cluster.
Tipo di servizio: NodePort Antrea o Calico Consente l'accesso esterno tramite una porta aperta su ciascun nodo di lavoro mediante il proxy di rete Kubernetes.
Criterio di rete Antrea o Calico Controlla quale dev'essere il traffico consentito verso e dai pod e dagli endpoint di rete selezionati. Antrea utilizza Open vSwitch. Calico utilizza tabelle IP di Linux.
Implementazione del provider di cloud
L'implementazione del provider di cloud permette di creare servizi di bilanciamento del carico e di ingresso Kubernetes.
Tabella 2. Bilanciamento del carico TKG
Endpoint Provider Descrizione
Tipo di servizio: LoadBalancer

NSX Embedded Load Balancer (parte dello stack di rete NSX)

NSX Advanced Load Balancer (installazione separata da utilizzare con i servizi di rete VDS)

HAProxy (installazione separata da utilizzare con i servizi di rete VDS)

Per NSX Embedded Load Balancer, un server virtuale per ogni definizione di tipo di servizio.

Per NSX Advanced Load Balancer, fare riferimento alla relativa sezione della presente documentazione.

Per HAProxy, fare riferimento alla relativa sezione della presente documentazione.

Nota: Alcune funzioni di bilanciamento del carico potrebbero non essere disponibili su ogni tipo di bilanciamento del carico supportato, come gli IP statici.
Ingresso cluster Controller di ingresso di terze parti Fornisce il routing per il traffico pod in entrata. È possibile utilizzare qualsiasi controller di ingresso di terze parti, ad esempio Contour.

API del cluster Servizio TKG

Servizio TKG fornisce due API per il provisioning e la gestione del ciclo di vita dei cluster TKG.
  • Versione dell'API v1alpha3 per i cluster Tanzu Kubernetes
  • Versione dell'API v1beta1 per i cluster basati su un valore ClusterClass

L'API v1alpha3 di creare cluster Kubernetes conformi di tipo TanzuKubernetesCluster. Questo tipo di cluster è preconfigurato con impostazioni predefinite comuni per un provisioning rapido e può essere personalizzato. L'API di v1beta1 consente di creare cluster Kubernetes conformi di tipo Cluster, basati su un ClusterClass predefinito fornito da VMware.

Nota: Per aggiornare vSphere IaaS control plane da vSphere 7 a vSphere 8, nel cluster TKG deve essere in esecuzione l'API v1alpha2. L' API v1alpha2 è stata introdotta con v7.0 Update 3. L'API v1alpha1 è obsoleta. Per ulteriori informazioni, vedere: .

Client cluster Servizio TKG

TKG nel Supervisore di vSphere 8 supporta varie interfacce client per il provisioning, il monitoraggio e la gestione dei cluster TKG.
  • vSphere Client per la configurazione del Supervisore e il monitoraggio dei cluster TKG distribuiti.
  • Plug-in vSphere per kubectl per l'autenticazione con cluster Supervisore e TKG utilizzando vCenter Single Sign-On.
  • kubectl per eseguire il provisioning e gestire il ciclo di vita dei cluster TKG in modo dichiarativo e interagire con il Supervisore.
  • Helper credenziali docker vSphere per eseguire il push e il pull delle immagini da e verso un registro del container.
  • CLI di Tanzu per il provisioning dei cluster utilizzando comandi e per l'installazione dei pacchetti Tanzu.
  • Tanzu Mission Control interfaccia Web per la gestione dei cluster TKG.