L'ambiente di Cloud Native Storage e le macchine virtuali che partecipano al cluster Kubernetes devono soddisfare diversi requisiti.

Requisiti Cloud Native Storage

  • Una versione compatibile di vSphere.
  • Una versione compatibile di Kubernetes.
  • Un cluster Kubernetes distribuito nelle macchine virtuali. Per informazioni dettagliate sulla distribuzione del plug-in CSI di vSphere e l'esecuzione del cluster Kubernetes in vSphere, vedere la documentazione del plug-in Container Storage di VMware vSphere.

Requisiti per le macchine virtuali del cluster Kubernetes

  • Macchine virtuali con hardware versione 15 o successiva. Installare VMware Tools sulla macchina virtuale di ciascun nodo.
  • Raccomandazioni relative all'hardware della macchina virtuale:
    • Impostare correttamente CPU e memoria in base ai requisiti del carico di lavoro.
    • Utilizzare il controller SCSI VMware Paravirtual per il disco primario nella macchina virtuale del nodo.
  • Tutte le macchine virtuali devono poter accedere a un datastore condiviso, ad esempio vSAN.
  • Impostare il parametro disk.EnableUUID in ogni macchina virtuale del nodo. Vedere Configurazione del cluster Kubernetes nelle macchine virtuali vSphere.
  • Per evitare errori e un comportamento imprevedibile, non creare snapshot delle macchine virtuali dei nodi CNS.

Requisiti per il volume dei file CNS

  • Utilizzare vSphere versione 7.0 o successiva con una versione Kubernetes compatibile.
  • Utilizzare una versione di CSI compatibile. Per informazioni, vedere la documentazione del plug-in Container Storage di VMware vSphere.
  • Abilitare e configurare il servizio file vSAN. È necessario configurare i domini del servizio file, i pool di IP, la rete e così via secondo necessità. Per informazioni, consultare la documentazione di Amministrazione di VMware vSAN.
  • Per configurare l'accesso alla rete da un sistema operativo guest nel nodo Kubernetes a una condivisione di file vSAN, seguire le linee guida specifiche. Vedere Configurazione dell'accesso alla rete per la condivisione di file vSAN.

Configurazione dell'accesso alla rete per la condivisione di file vSAN

Per poter eseguire il provisioning di volumi persistenti ReadWriteMany nell'ambiente Kubernetes vSphere generico, configurare le reti, i commutatori e i router necessari dai nodi Kubernetes alla rete del file service vSAN.

Impostazione della rete

Quando si configurano le reti, attenersi ai seguenti requisiti:
  • In ogni nodo Kubernetes, è possibile utilizzare una vNIC dedicata per il traffico della condivisione di file vSAN. Questa opzione è obbligatoria solo se si desidera utilizzare un percorso di traffico dati sicuro per i volumi di file.
  • Se si utilizza un vNIC dedicato, assicurarsi che il traffico attraverso il vNIC dedicato sia instradabile a una o più reti di file service vSAN.
  • Assicurarsi che solo il sistema operativo guest in ciascun nodo Kubernetes possa accedere direttamente alla condivisione file vSAN tramite l'indirizzo IP della condivisione file. I pod nel nodo non possono eseguire il ping o accedere alla condivisione file vSAN in base al relativo indirizzo IP.

    Il driver CSI di CNS garantisce che solo i pod configurati per utilizzare il volume file CNS possano accedere alla condivisione file vSAN creando un punto di montaggio nel sistema operativo guest.

  • Evitare di creare un indirizzo IP in conflitto tra le macchine virtuali del nodo e le condivisioni file vSAN.

La figura seguente è un esempio della configurazione di rete di CNS con il servizio di condivisione file vSAN.

La figura mostra la configurazione di rete CNS con la condivisione di file vSAN.

Nell'illustrazione, la configurazione di rete di esempio segue queste linee guida.
  • La configurazione utilizza reti separate per i diversi elementi dell'ambiente CNS.
    Rete Descrizione
    Rete di gestione vSphere In genere, in un cluster Kubernetes generico, ogni nodo ha accesso a questa rete.
    Rete del nodo o del pod Kubernetes utilizza questa rete per la comunicazione tra i nodi o tra i pod.
    Rete di condivisione file dedicata Il traffico dati del volume del file CNS utilizza questa rete.
    Rete di condivisione file vSAN Rete in cui è abilitata la condivisione di file vSAN e dove sono disponibili condivisioni di file.
  • Ogni nodo Kubernetes dispone di una vNIC dedicata per il traffico del file. Questa vNIC è separata dalla vNIC utilizzata per la comunicazione tra i nodi o tra i pod. Questa configurazione viene utilizzata solo come esempio, ma non è obbligatoria.
  • Solo le applicazioni configurate per utilizzare la condivisione file CNS hanno accesso alle condivisioni file vSAN attraverso il punto di montaggio nel sistema operativo guest del nodo. Ad esempio, nell'illustrazione avviene quanto segue:
    • I pod App-1 e App-2 sono configurati per utilizzare un volume file e possono accedere alla condivisione file tramite il punto di montaggio creato dal driver CSI.
    • App-3 e App-4 non sono configurati con un volume di file e non possono accedere alle condivisioni file.
  • Le condivisioni di file vSAN vengono distribuite come container in una macchina virtuale dell'appliance di condivisione file vSAN nell'host di ESXi. Un deployer Kubernetes, che è un software o un servizio che può configurare, distribuire e gestire i cluster Kubernetes, configura i router e i commutatori necessari, in modo che il sistema operativo guest nel nodo Kubernetes possa accedere alle condivisioni di file vSAN.

Limitazioni di sicurezza

Sebbene la vNIC dedicata impedisca a un pod non autorizzato di accedere direttamente alle condivisioni file, esistono alcune limitazioni di sicurezza:
  • La funzionalità file CNS presuppone che chiunque abbia l'ID del volume file CNS sia un utente autorizzato del volume. Qualsiasi utente che disponga dell'ID del volume file CNS può accedere ai dati archiviati nel volume.
  • Il volume file CNS supporta solo l'autenticazione AUTH_SYS, che è un'autenticazione basata su ID utente. Per proteggere l'accesso ai dati nel volume file CNS, è necessario utilizzare ID utente appropriati per i contenitori che accedono al volume file CNS.
  • Un volume ReadWriteMany persistente non associato che fa riferimento a un volume file CNS può essere associato da un'attestazione di volume persistente creata da qualsiasi utente Kubernetes in qualsiasi spazio dei nomi. Assicurarsi che solo gli utenti autorizzati abbiano accesso a Kubernetes per evitare problemi di sicurezza.

Configurazione del driver CSI per l'accesso ai cluster di file service vSAN

In base alla configurazione, il driver CSI può eseguire il provisioning di volumi di file in uno o più cluster di vSAN in cui il servizio file è abilitato.

È possibile limitare l'accesso solo a cluster di vSAN specifici in cui il servizio file è abilitato. Quando si distribuisce il cluster Kubernetes, configurare il driver CSI con accesso a cluster di vSAN file specifici. Di conseguenza, il driver CSI può eseguire il provisioning dei volumi file solo in tali cluster di vSAN.

Nella configurazione predefinita, il driver CSI utilizza qualsiasi cluster vSAN servizio file disponibile in vCenter Server per il provisioning del volume dei file. Il driver CSI non verifica quale servizio file del cluster vSAN sia accessibile durante il provisioning dei volumi dei file.