Quando vSphere with Tanzu è abilitato in un cluster vSphere, crea un piano di controllo Kubernetes all'interno del livello dell'hypervisor. Questo layer contiene oggetti specifici che consentono di eseguire i carichi di lavoro Kubernetes all'interno di ESXi.

Figura 1. Architettura generale di Cluster supervisore

Un cluster abilitato per vSphere with Tanzu è chiamato Cluster supervisore. Esso viene eseguito in un livello SDDC composto da ESXi per l'elaborazione, rete di vSphere o NSX-T Data Center e vSAN o altra soluzione di storage condiviso. L'storage condiviso viene utilizzato per i volumi persistenti di Pod vSphere, macchine virtuali in esecuzione all'interno del Cluster supervisore e pod in un cluster di Tanzu Kubernetes. Dopo aver creato un Cluster supervisore, l'amministratore di vSphere può creare spazi dei nomi all'interno del Cluster supervisore denominati Spazio dei nomi vSphere. Il tecnico di DevOps può eseguire carichi di lavoro costituiti da container in esecuzione all'interno di Pod vSphere e creare cluster di Tanzu Kubernetes.

Figura 2. Architettura del cluster supervisore
  • Macchina virtuale del piano di controllo Kubernetes. In totale vengono create tre macchine virtuali del piano di controllo Kubernetes negli host che fanno parte del Cluster supervisore. Per le tre macchine virtuali del piano di controllo viene eseguito il bilanciamento del carico, poiché ognuna di esse ha il proprio indirizzo IP. Viene inoltre assegnato un indirizzo IP mobile a una delle macchine virtuali. vSphere DRS determina il posizionamento esatto delle macchine virtuali del piano di controllo negli host di ESXi ed esegue la migrazione quando necessario. vSphere DRS è integrato anche con l'utilità di pianificazione Kubernetes nelle macchine virtuali del piano di controllo, in modo che DRS possa stabilire il posizionamento di Pod vSphere. Quando un tecnico di DevOps pianifica una Pod vSphere, la richiesta passa attraverso il workflow Kubernetes regolare quindi arriva a DRS, che prende la decisione di posizionamento finale.
  • Spherelet. In ogni host viene creato un processo aggiuntivo chiamato Eletlet. Si tratta di un kubelet per il quale è stato eseguito un porting nativo in ESXi e che consente all'host ESXi di diventare parte del cluster Kubernetes.
  • Container Runtime Executive (CRX). CRX è simile a una macchina virtuale dal punto di vista di Hostd e vCenter Server. CRX include un kernel Linux paravirtualizzato che funziona insieme all'hypervisor. CRX utilizza le stesse tecniche di virtualizzazione dell'hardware delle macchine virtuali ed è interessato da un limite di macchine virtuali. Viene utilizzata una tecnica di avvio diretto, che consente al guest Linux di CRX di iniziare il processo init principale senza passare attraverso l'inizializzazione del kernel. Ciò consente ai Pod vSphere di avviarsi rapidamente come i container.
  • Cluster API e VMware Tanzu™ Kubernetes Grid™ Service sono moduli eseguiti nel Cluster supervisore che abilitano il provisioning e la gestione dei cluster di Tanzu Kubernetes. Il modulo Servizio macchina virtuale è responsabile della distribuzione e dell'esecuzione di macchine virtuali autonome e macchine virtuali che costituiscono i cluster di Tanzu Kubernetes.

Spazio dei nomi vSphere

Un Spazio dei nomi vSphere imposta i limiti delle risorse in cui possono essere eseguiti i Pod vSphere e i cluster di Tanzu Kubernetes creati utilizzando lServizio Tanzu Kubernetes Grid. Quando viene inizialmente creato, lo spazio dei nomi dispone di risorse illimitate all'interno del Cluster supervisore. L'amministratore di vSphere può impostare limiti per CPU, memoria, storage, nonché il numero di oggetti Kubernetes che possono essere eseguiti all'interno dello spazio dei nomi. Viene creato un pool di risorse per ogni spazio dei nomi in vSphere. Le limitazioni di storage sono rappresentate come quote di storage in Kubernetes.

Figura 3. Spazio dei nomi vSphere
Spazio dei nomi supervisore

Per fornire a un tecnico di DevOps l'accesso agli spazi dei nomi, l'amministratore di vSphere assegna l'autorizzazione a utenti o gruppi di utenti disponibili all'interno di un'origine identità associata a vCenter Single Sign-On.

Dopo aver creato e configurato uno spazio dei nomi con limiti di risorse e oggetti, nonché con autorizzazioni e criteri di storage, un tecnico di DevOps può accedere allo spazio dei nomi per eseguire carichi di lavoro Kubernetes e creare cluster di Tanzu Kubernetes utilizzando Servizio Tanzu Kubernetes Grid.

Cluster Tanzu Kubernetes

Un cluster di Tanzu Kubernetes è una distribuzione completa del software Kubernetes open source impacchettata, firmata e supportata da VMware. Nel contesto di vSphere with Tanzu, è possibile utilizzare Servizio Tanzu Kubernetes Grid per eseguire il provisioning di cluster di Tanzu Kubernetes in Cluster supervisore. È possibile richiamare l'API di Servizio Tanzu Kubernetes Grid in modo dichiarativo utilizzando kubectl e una definizione YAML.

Un cluster di Tanzu Kubernetes risiede in un Spazio dei nomi vSphere. È possibile distribuire carichi di lavoro e servizi in cluster di Tanzu Kubernetes nello stesso modo e utilizzando gli stessi strumenti dei cluster Kubernetes standard.
Figura 4. Architettura di vSphere with Tanzu per cluster di Tanzu Kubernetes

Cluster supervisore configurato con lo stack di rete di vSphere

Un Cluster supervisore configurato con lo stack di rete di vSphere supporta solo l'esecuzione di cluster di Tanzu Kubernetes creati utilizzando Servizio Tanzu Kubernetes Grid. Il cluster supporta anche Servizio di rete vSphere e il servizio di storage.

Un Cluster supervisore configurato con lo stack di rete di vSphere non supporta Pod vSphere. Pertanto, il componente Spherelet non è disponibile in questo Cluster supervisore e i pod Kubernetes vengono eseguiti solo all'interno di cluster di Tanzu Kubernetes. Anche un Cluster supervisore configurato con lo stack di rete vSphere non supporta Registro Harbor, perché il servizio viene utilizzato solo con Pod vSphere.

Anche un Spazio dei nomi vSphere creato in un cluster configurato con lo stack di rete di vSphere non supporta l'esecuzione di Pod vSphere, ma solo di cluster di Tanzu Kubernetes.