0Pricing
DevOps Bootcamp · Lezione

StorageClass e provisioning dinamico

Impari come le StorageClass consentano a Kubernetes di effettuare automaticamente il provisioning dei Persistent Volume quando necessario, senza interventi amministrativi manuali.

StorageClass e provisioning dinamico è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.

Il problema della gestione manuale dello storage

Con il provisioning statico, un amministratore deve creare manualmente ogni PersistentVolume prima che un PersistentVolumeClaim possa associarsi. Questo approccio non è scalabile.

Il provisioning dinamico crea automaticamente i volumi quando viene richiesto un claim.

Che cos'è una StorageClass?

Una StorageClass descrive un tipo di storage che il cluster può offrire: quale provisioner utilizzare, quali parametri impostare e come devono comportarsi i volumi.

La si può considerare un modello per creare PersistentVolume su richiesta.

Una definizione di StorageClass

Il campo provisioner identifica il plugin che crea il volume, spesso un driver per dischi cloud.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: fast-ssd
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp3
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer

Richiedere storage dinamico

Un PVC fa semplicemente riferimento alla StorageClass tramite il nome. Kubernetes esegue quindi automaticamente il provisioning di un PV corrispondente.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: data
spec:
  accessModes: ['ReadWriteOnce']
  storageClassName: fast-ssd
  resources:
    requests:
      storage: 10Gi

La StorageClass predefinita

Se un PVC omette storageClassName, Kubernetes utilizza la StorageClass predefinita del cluster (contrassegnata da un'annotazione). In questo modo i claim funzionano immediatamente.

kubectl get storageclass
# NAME            PROVISIONER          DEFAULT
# standard (default)  ...

Criterio di reclaim

reclaimPolicy decide che cosa accade quando il PVC viene eliminato:

  • Delete: anche il volume sottostante viene rimosso
  • Retain: il volume viene conservato per il recupero manuale

Modalità di associazione del volume

WaitForFirstConsumer ritarda la creazione del volume finché non viene pianificato un Pod che utilizza il PVC. In questo modo il disco viene collocato nella stessa zona del Pod.

Immediate esegue il provisioning immediatamente, con il rischio di causare incompatibilità tra le zone.

Osservare il provisioning

Dopo aver applicato un PVC, lo osservi passare da Pending a Bound mentre viene creato il volume.

kubectl apply -f pvc.yaml
kubectl get pvc data -w
# data   Pending
# data   Bound   pvc-8a3f...  10Gi

Più livelli

I cluster definiscono spesso diverse StorageClass per esigenze differenti, consentendo ai team di scegliere il compromesso più adatto a ogni carico di lavoro.

# fast-ssd  -> low latency, higher cost
# standard  -> balanced default
# cold-hdd  -> cheap, archival

Espandere i volumi

Se la StorageClass ha allowVolumeExpansion: true, è possibile aumentare le dimensioni di un PVC modificando la dimensione richiesta; il provisioner ridimensionerà il disco sottostante.

spec:
  resources:
    requests:
      storage: 20Gi  # increased from 10Gi

Quando usare lo storage statico o dinamico

  • Dinamico: scelta predefinita; self-service e buona scalabilità
  • Statico: quando è necessario associarsi a un disco preesistente specifico o a un'esportazione NFS

Controllo rapido

Verifichi di aver compreso il provisioning dinamico.

Riepilogo

Ha appreso che una StorageClass definisce un modello per la creazione dello storage, abilitando il provisioning dinamico. I campi principali includono provisioner, reclaimPolicy e volumeBindingMode. I PVC fanno riferimento a una classe tramite il nome e una classe predefinita gestisce i claim che non ne specificano alcuna.

Domande Frequenti

La lezione «StorageClass e provisioning dinamico» è gratuita?

Sì — il testo completo di «StorageClass e provisioning dinamico» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.

Cosa imparerò in «StorageClass e provisioning dinamico»?

Impari come le StorageClass consentano a Kubernetes di effettuare automaticamente il provisioning dei Persistent Volume quando necessario, senza interventi amministrativi manuali. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare DevOps Bootcamp?

Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «StorageClass e provisioning dinamico»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?

Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. ConfigMap per la configurazione
  2. Secret per i dati sensibili
  3. Persistent Volume e Persistent Volume Claim
  4. StorageClass e provisioning dinamico
← Torna a DevOps Bootcamp