Familiarizzare con diversi concetti essenziali per l'ambiente Cloud Native Storage in vSphere .

Componenti dell'ambiente Cloud Native Storage.

Cluster Kubernetes
Nell'ambiente Cloud Native Storage, è possibile distribuire un cluster Kubernetes generico in un cluster di macchine virtuali. Oltre al cluster Kubernetes, vengono distribuite le applicazioni containerizzate. Le applicazioni possono essere stateful (con stato) o stateless (senza stato).
Nota: Per informazioni su un Supervisore e un cluster Tanzu Kubernetes Grid che possono essere eseguiti nell'ambiente vSphere IaaS control plane, vedere la documentazione Concetti e pianificazione di vSphere IaaS Control Plane.
Pod
Un pod è un gruppo di una o più applicazioni containerizzate che condividono risorse, come storage e rete. I container all'interno di un pod vengono avviati, arrestati e replicati come gruppo.
Container Orchestrator
Piattaforme open source, come Kubernetes, per la distribuzione, la scalabilità e la gestione di applicazioni containerizzate nei cluster di host. Le piattaforme forniscono un'infrastruttura incentrata sui container.
Applicazione stateful
Poiché le applicazioni containerizzate si evolvono da stateless a stateful, richiedono uno storage persistente. A differenza delle applicazioni stateless che non salvano i dati tra le sessioni, le applicazioni stateful salvano i dati in uno storage persistente. I dati conservati vengono chiamati stato dell'applicazione. È possibile recuperare i dati in un secondo momento e utilizzarli nella sessione successiva. La maggior parte delle applicazioni è stateful. Un database rappresenta un esempio di applicazione stateful.
PersistentVolume
Le applicazioni stateful utilizzano PersistentVolumes per archiviare i propri dati. Un PersistentVolume è un volume Kubernetes in grado di mantenere lo stato e i dati. È indipendente da un pod e può continuare ad esistere anche quando il pod viene eliminato o riconfigurato. Nell'ambiente di vSphere, gli oggetti PersistentVolume utilizzano i dischi virtuali vSphere di tipo FCD (First Class Disk) o condivisioni di file vSAN come storage di supporto. I First Class Disk vengono denominati anche IVD (Improved Virtual Disk) o dischi virtuali gestiti.
  • I dischi virtuali supportano volumi montati come ReadWriteOnce. Questi volumi possono essere utilizzati solo da un singolo pod in Kubernetes.

    È possibile utilizzare la tecnologia di crittografia di vSphere per proteggere i dischi virtuali FCD che supportano i volumi persistenti. Per ulteriori informazioni, vedere Utilizzo della crittografia con lo storage cloud nativo vSphere.

  • Le condivisioni di file vSAN supportano volumi ReadWriteMany montati da molti nodi. Questi volumi possono essere condivisi tra più pod o applicazioni in esecuzione tra nodi Kubernetes o tra cluster Kubernetes. Per informazioni sulle possibili configurazioni con condivisioni di file, vedere Utilizzo di vSAN File Service per il provisioning dei volumi di file vSphere.
StorageClass
Kubernetes utilizza una StorageClass per definire diversi livelli di storage e per descrivere diversi tipi di requisiti per lo storage che supporta PersistentVolume. Nell'ambiente di vSphere, una classe di storage può essere collegata a un criterio di storage. In qualità di amministratore vSphere è possibile creare criteri di storage che descrivono requisiti di storage diversi. I criteri di storage della macchina virtuale possono essere utilizzati come parte della definizione StorageClass per il provisioning del volume dinamico.

Il seguente file YAML di esempio fa riferimento al criterio di storage Gold creato in precedenza utilizzando vSphere Client. Il volume persistente VMDK risultante viene posizionato su un datastore compatibile che soddisfa i requisiti del criterio di storage Gold.

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: gold-sc
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: csi.vsphere.vmware.com
parameters:
  storagepolicyname: "Gold"
  
PersistentVolumeClaim
In genere, le applicazioni o i pod possono richiedere uno storage persistente tramite PersistentVolumeClaim. PersistentVolumeClaim specifica il tipo e la classe di storage, la modalità di accesso, ReadWriteOnce o ReadWriteMany e altri parametri per PersistentVolume. La richiesta può quindi eseguire il provisioning dinamico dell'oggetto PersistentVolume corrispondente e del disco virtuale sottostante o condivisione del file vSAN nell'ambiente di vSphere.
Una volta creata l'attestazione, PersistentVolume viene automaticamente associato all'attestazione. I pod utilizzano l'attestazione per montare PersistentVolume e accedere allo storage.
Quando si elimina questa attestazione, l'oggetto PersistentVolume corrispondente e lo storage sottostante vengono eliminati.
kind: PersistentVolumeClaim
metadata:
 name: persistent-VMDK
spec:
 accessModes:
 - ReadWriteOnce
 resources:
 requests:
 storage: 5Gi
 storageClassName: gold-sc