Skip to main content
È disponibile una versione più recente di questo prodotto.
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Configurare una classe di storage

Il "Oggetto Kubernetes StorageClass" identifica un provisioner e istruisce il provisioner su come effettuare il provisioning dei volumi. Questa sezione mostra come configurare un oggetto Kubernetes StorageClass che specifica Trident come provisioner.

Crea un oggetto StorageClass

Quando si crea una StorageClass per FSx for ONTAP, Trident creerà automaticamente la configurazione del backend.

Nota Se desideri configurare manualmente il backend di storage, consulta la [create-a-kubernetes-storageclass-without-automatic-backend-configuration] sezione per sapere come creare separatamente il backend Trident e la storage class.

Specificare i parametri richiesti StorageClass

I seguenti tre parametri devono essere definiti durante la creazione di un StorageClass:

Parametro Richiesto Tipo Descrizione

fsxFilesystemID

stringa

ID del file system FSx for NetApp ONTAP

storageDriverName

stringa

Driver di storage Trident (ad esempio, ontap-nas o ontap-san)

credentialsName

stringa

Nome del segreto Kubernetes che contiene le credenziali FSx for ONTAP

Specificare parametri facoltativi

È possibile passare parametri backend opzionali tramite la StorageClass. Definire tutti i valori opzionali come stringhe nella sezione StorageClass parameters. Per un elenco completo dei parametri backend, vedere: "Configurazione del backend FSx for NetApp ONTAP".

Esempi di file di configurazione StorageClass.

L'esempio seguente mostra un StorageClass che attiva la configurazione automatica del backend.

YAML
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ontap-fsx-demo
  annotations:
    description: "Demo StorageClass for FSx for NetApp ONTAP"
provisioner: csi.trident.netapp.io
parameters:
  fsxFilesystemID: "fs-0abc123"
  storageDriverName: "ontap-nas"
  credentialsName: trident-fsx-credentials
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
JSON
{
  "apiVersion": "storage.k8s.io/v1",
  "kind": "StorageClass",
  "metadata": {
    "name": "ontap-fsx-demo",
    "annotations": {
      "description": "Demo StorageClass for FSx for NetApp ONTAP"
    }
  },
  "provisioner": "csi.trident.netapp.io",
  "parameters": {
    "fsxFilesystemID": "fs-0abc123",
    "storageDriverName": "ontap-nas",
    "credentialsName": "trident-fsx-credentials"
  },
  "allowVolumeExpansion": true,
  "reclaimPolicy": "Delete",
  "volumeBindingMode": "Immediate"
}

Crea il StorageClass

Una volta creato il file di configurazione, esegui il seguente comando per creare la storage class.

kubectl create -f storage-class-ontapnas.yaml

Ora dovresti vedere una classe di storage basic-csi sia in Kubernetes che in Trident, e Trident dovrebbe aver rilevato i pool sul backend.

kubectl get sc basic-csi
NAME         PROVISIONER             AGE
basic-csi    csi.trident.netapp.io   15h

Dopo aver applicato il StorageClass, Trident crea automaticamente il backend. Puoi quindi creare PersistentVolumeClaims che fanno riferimento a questo StorageClass.

Verifica lo stato della configurazione del backend

Trident registra il risultato della creazione del backend nelle annotazioni di StorageClass.

Annotazione Descrizione

trident.netapp.io/configuratorStatus

Risultato della configurazione (Success o Failure)

trident.netapp.io/configuratorMessage

Messaggio di stato o errore dettagliato

trident.netapp.io/configuratorName

Nome della risorsa del configuratore interno

trident.netapp.io/managed

Indica che la StorageClass è gestita da Trident

trident.netapp.io/additionalStoragePools

Pool di storage creati per questo backend

Per verificare lo stato, eseguire:

kubectl get storageclass ontap-fsx-demo -o yaml

Confermare che trident.netapp.io/configuratorStatus è impostato su Success. Se il valore è Failure, esaminare trident.netapp.io/configuratorMessage per l'errore.

Aggiungi file system FSxN aggiuntivi

Se hai bisogno di ulteriore capacità di archiviazione continuando a utilizzare lo stesso StorageClass, aggiungi ulteriori ID del file system FSxN.

Modifica la StorageClass e aggiungi la seguente annotazione:

metadata:
  annotations:
    trident.netapp.io/additionalFsxNFileSystemID: '["fs-xxxxxxxxxxxxxxxxxx"]'

Dopo aver applicato la modifica, Trident aggiorna la configurazione del backend e aggiorna le annotazioni StorageClass.

Considerazioni operative e limitazioni

  • L'eliminazione di un StorageClass che ha la configurazione automatica del backend solitamente elimina il backend Trident associato. Ciò può interrompere la connettività di storage e interrompere i carichi di lavoro in esecuzione. Verifica l'impatto prima di eliminare un StorageClass gestito.

  • La configurazione automatica del backend è supportata solo per AWS FSx per NetApp ONTAP.

Crea un Kubernetes StorageClass senza configurazione automatica del backend

Se desideri creare il backend Trident e la StorageClass separatamente, segui questi passaggi.

Scopri come funziona la configurazione automatica del backend

Trident deriva la configurazione del backend dalla definizione di StorageClass. Quando si applica la StorageClass, Trident convalida i parametri richiesti, crea il backend e annota la StorageClass con lo stato.

Trident crea il VolumeSnapshotClass solo una volta. Trident riutilizza lo stesso VolumeSnapshotClass per i successivi StorageClasses.

Crea il backend Trident

Per creare un backend Trident, è necessario creare un file di configurazione in formato JSON o YAML. Il file deve specificare il tipo di storage desiderato (NAS o SAN), il file system, la SVM da cui ottenerlo e come autenticarsi con essa. L'esempio seguente mostra come definire uno storage basato su NAS e utilizzare un segreto AWS per memorizzare le credenziali per la SVM che si desidera utilizzare:

YAML
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-ontap-nas
  namespace: trident
spec:
  version: 1
  storageDriverName: ontap-nas
  backendName: tbc-ontap-nas
  svm: svm-name
  aws:
    fsxFilesystemID: fs-xxxxxxxxxx
  credentials:
    name: "arn:aws:secretsmanager:us-west-2:xxxxxxxx:secret:secret-name"
    type: awsarn
JSON
{
  "apiVersion": "trident.netapp.io/v1",
  "kind": "TridentBackendConfig",
  "metadata": {
    "name": "backend-tbc-ontap-nas"
    "namespace": "trident"
  },
  "spec": {
    "version": 1,
    "storageDriverName": "ontap-nas",
    "backendName": "tbc-ontap-nas",
    "svm": "svm-name",
    "aws": {
      "fsxFilesystemID": "fs-xxxxxxxxxx"
    },
    "managementLIF": null,
    "credentials": {
      "name": "arn:aws:secretsmanager:us-west-2:xxxxxxxx:secret:secret-name",
      "type": "awsarn"
    }
  }
}

Dettagli del driver FSx per ONTAP

È possibile integrare Trident con Amazon FSx for NetApp ONTAP utilizzando i seguenti driver:

Nome driver Descrizione

ontap-san

Ogni PV di cui viene effettuato il provisioning è una LUN all'interno del proprio volume Amazon FSx for NetApp ONTAP. Consigliato per storage a blocchi.

ontap-nas

Ogni PV fornito è un volume Amazon FSx for NetApp ONTAP completo. Consigliato per NFS e SMB.

ontap-san-economy

Ogni PV di cui viene effettuato il provisioning è un LUN con un numero configurabile di LUN per Amazon FSx for NetApp ONTAP volume.

ontap-nas-economy

Ogni PV di cui viene effettuato il provisioning è un qtree, con un numero configurabile di qtree per Amazon FSx for NetApp ONTAP volume.

ontap-nas-flexgroup

Ogni PV fornito è un volume Amazon FSx for NetApp ONTAP FlexGroup completo.

Per i dettagli sui driver, fare riferimento a "Driver NAS" e "Driver SAN".

Crea il backend

Dopo aver creato il file di configurazione, eseguire i seguenti comandi per creare e convalidare la Trident Backend Configuration (TBC):

  • Crea la configurazione del backend Trident (TBC) dal file yaml ed esegui il seguente comando:

    kubectl create -f backendconfig.yaml -n trident
    tridentbackendconfig.trident.netapp.io/backend-tbc-ontap-nas created
  • Verificare che la configurazione del backend Trident (TBC) sia stata creata correttamente:

    Kubectl get tbc -n trident
    NAME                         BACKEND NAME         BACKEND UUID                           PHASE   STATUS
    
    backend-tbc-ontap-nas        tbc-ontap-nas        933e0071-66ce-4324-b9ff-f96d916ac5e9   Bound   Success

Per ulteriori informazioni su altre opzioni di configurazione, consultare la [Backend-advanced-configuration-and-examples] sezione seguente.

Configura una Storage Class senza configurazione automatica del backend

Di seguito sono riportati alcuni esempi di configurazioni di Storage Class da utilizzare con Trident e FSx for ONTAP.

Classe di archiviazione per NFS

È possibile utilizzare questo esempio per configurare StorageClass per volumi tramite NFS (fare riferimento alla sezione Attributi Trident di seguito per l'elenco completo degli attributi):

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-nas"
  provisioningType: "thin"
  snapshots: "true"

Classe di storage per iSCSI

Utilizza questo esempio per configurare StorageClass per volumi tramite iSCSI:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-san"
  provisioningType: "thin"
  snapshots: "true"

Classe di archiviazione che utilizza NFSv3 e AWS Bottlerocket

Per eseguire il provisioning di volumi NFSv3 su AWS Bottlerocket, aggiungete il necessario mountOptions alla storage class:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-nas"
  media: "ssd"
  provisioningType: "thin"
  snapshots: "true"
mountOptions:
  - nfsvers=3
  - nolock

Attributi di Trident StorageClass

Questi parametri determinano quali pool di storage gestiti da Trident devono essere utilizzati per effettuare il provisioning dei volumi di un determinato tipo.

Attributo Tipo Valori Offerta Richiesta Supportato da

media1

stringa

hdd, hybrid, ssd

Il pool contiene supporti di questo tipo; ibrido significa entrambi

Tipo di media specificato

ontap-nas, ontap-nas-economy, ontap-nas-flexgroup, ontap-san, solidfire-san

provisioningType

stringa

sottile, spesso

Il pool supporta questo metodo di provisioning

Metodo di provisioning specificato

spesso: tutti ontap; sottile: tutti ontap & solidfire-san

backendType

stringa

ontap-nas, ontap-nas-economy, ontap-nas-flexgroup, ontap-san, solidfire-san, azure-netapp-files, ontap-san-economy

Il pool appartiene a questo tipo di backend

Backend specificato

Tutti i driver

istantanee

bool

vero, falso

Il pool supporta volumi con snapshot

Volume con snapshot abilitato

ontap-nas, ontap-san, solidfire-san

cloni

bool

vero, falso

Il pool supporta la clonazione dei volumi

Volume con cloni abilitati

ontap-nas, ontap-san, solidfire-san

crittografia

bool

vero, falso

Il pool supporta volumi criptati

Volume con crittografia abilitata

ontap-nas, ontap-nas-economy, ontap-nas-flexgroups, ontap-san

IOPS

int

intero positivo

Il pool è in grado di garantire IOPS in questo intervallo

Volume garantisce questi IOPS

solidfire-san

1: Non supportato da ONTAP Select o FSx for ONTAP

Fate riferimento a "Oggetti Kubernetes e Trident" per i dettagli su come le classi di storage interagiscono con PersistentVolumeClaim e sui parametri per controllare come Trident effettua il provisioning dei volumi.

Crea la classe di archiviazione

Una volta configurato il StorageClass, puoi crearlo in Kubernetes.

Passaggi
  1. Si tratta di un oggetto Kubernetes, quindi usa kubectl per crearlo in Kubernetes.

    kubectl create -f storage-class-ontapnas.yaml
  2. Ora dovresti vedere una classe di storage basic-csi sia in Kubernetes che in Trident, e Trident dovrebbe aver rilevato i pool sul backend.

    kubectl get sc basic-csi
NAME         PROVISIONER             AGE
basic-csi    csi.trident.netapp.io   15h

Effettuare il provisioning dei volumi SMB

È possibile eseguire il provisioning dei volumi SMB utilizzando il ontap-nas driver. Tuttavia, per farlo è necessario completare questi passaggi: "Prepararsi al provisioning dei volumi SMB".

Configurazione avanzata del backend ed esempi

Consulta la tabella seguente per le opzioni di configurazione del backend:

Parametro Descrizione Esempio

version

Sempre 1

storageDriverName

Nome del driver di archiviazione

ontap-nas, ontap-nas-economy, ontap-nas-flexgroup, ontap-san, ontap-san-economy

backendName

Nome personalizzato o lo storage backend

Nome driver + "_" + dataLIF

managementLIF

Indirizzo IP di un cluster o di una LIF di gestione SVM. È possibile specificare un fully-qualified domain name (FQDN). Può essere impostato per usare indirizzi IPv6 se hai installato Trident usando il flag IPv6. Gli indirizzi IPv6 devono essere definiti tra parentesi quadre, ad esempio [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]. Se si fornisce fsxFilesystemID sotto il campo aws, non è necessario fornire managementLIF perché Trident recupera le informazioni SVM managementLIF da AWS. Quindi, è necessario fornire le credenziali per un utente sotto l'SVM (ad esempio: vsadmin) e l'utente deve avere il ruolo vsadmin.

"10.0.0.1", "[2001:1234:abcd::fefe]"

dataLIF

Indirizzo IP del protocollo LIF. ONTAP NAS drivers: NetApp consiglia di specificare dataLIF. Se non fornito, Trident recupera i dataLIF dall'SVM. Puoi specificare un fully-qualified domain name (FQDN) da usare per le operazioni di mount NFS, permettendoti di creare un DNS round-robin per bilanciare il carico tra più dataLIF. Può essere modificato dopo l'impostazione iniziale. ONTAP SAN drivers: non specificare per iSCSI. Trident usa ONTAP Selective LUN Map per individuare i LIF iSCSI necessari a stabilire una sessione multipath. Viene generato un avviso se dataLIF è definito esplicitamente. Può essere impostato per usare indirizzi IPv6 se hai installato Trident usando il flag IPv6. Gli indirizzi IPv6 devono essere definiti tra parentesi quadre, ad esempio [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555].

autoExportPolicy

Abilita la creazione e l'aggiornamento automatici delle policy di esportazione [Boolean]. Utilizzando le autoExportPolicy e autoExportCIDRs opzioni, Trident può gestire automaticamente le policy di esportazione.

false

autoExportCIDRs

Elenco di CIDR in base ai quali filtrare gli IP dei nodi Kubernetes quando autoExportPolicy è abilitato. Utilizzando le autoExportPolicy e autoExportCIDRs opzioni, Trident può gestire automaticamente le policy di esportazione.

"["0.0.0.0/0", "::/0"]"

labels

Set di etichette arbitrarie in formato JSON da applicare ai volumi

""

clientCertificate

Valore codificato in Base64 del certificato client. Utilizzato per l'autenticazione basata su certificato

""

clientPrivateKey

Valore codificato in Base64 della chiave privata del client. Utilizzato per l'autenticazione basata su certificato

""

trustedCACertificate

Valore codificato in Base64 del certificato CA attendibile. Facoltativo. Utilizzato per l'autenticazione basata su certificato.

""

username

Nome utente per connettersi al cluster o alla SVM. Utilizzata per l'autenticazione basata sulle credenziali. Ad esempio, vsadmin.

password

Password per connettersi al cluster o alla SVM. Utilizzata per l'autenticazione basata sulle credenziali.

svm

Macchina virtuale di storage da utilizzare

Derivato se viene specificato un SVM managementLIF.

storagePrefix

Prefisso utilizzato durante il provisioning di nuovi volumi nell'SVM. Non può essere modificato dopo la creazione. Per aggiornare questo parametro, sarà necessario creare un nuovo backend.

trident

limitAggregateUsage

Non specificare per Amazon FSx per NetApp ONTAP. I fsxadmin e vsadmin forniti non contengono le autorizzazioni necessarie per recuperare l'utilizzo aggregato e limitarlo tramite Trident.

Non utilizzare.

limitVolumeSize

Il provisioning fallisce se la dimensione del volume richiesto supera questo valore. Limita inoltre la dimensione massima dei volumi che gestisce per qtree e LUN, e l' `qtreesPerFlexvol`opzione consente di personalizzare il numero massimo di qtree per FlexVol volume

"" (non applicato per impostazione predefinita)

lunsPerFlexvol

Numero massimo di LUN per FlexVol volume, deve essere compreso nell'intervallo [50, 200]. Solo SAN.

“100”

debugTraceFlags

Flag di debug da usare per la risoluzione dei problemi. Ad esempio, {"api":false, "method":true} non utilizzare debugTraceFlags a meno che non si stia risolvendo un problema e si richieda un dump dettagliato del log.

null

nfsMountOptions

Elenco separato da virgole delle opzioni di montaggio NFS. Le opzioni di montaggio per i volumi persistenti Kubernetes sono normalmente specificate nelle classi di storage, ma se non vengono specificate opzioni di montaggio in una classe di storage, Trident utilizzerà le opzioni di montaggio specificate nel file di configurazione del backend di storage. Se non vengono specificate opzioni di montaggio nella classe di storage o nel file di configurazione, Trident non imposterà alcuna opzione di montaggio su un volume persistente associato.

""

nasType

Configura la creazione di volumi NFS o SMB. Le opzioni sono nfs, smb o null. Deve essere impostato su smb per i volumi SMB. Impostando su null, vengono creati di default volumi NFS.

nfs

qtreesPerFlexvol

Numero massimo di qtree per volume FlexVol, deve essere compreso nell'intervallo [50, 300]

"200"

smbShare

È possibile specificare uno dei seguenti parametri: il nome di una condivisione SMB creata tramite Microsoft Management Console o ONTAP CLI oppure un nome che consenta a Trident di creare la condivisione SMB. Questo parametro è obbligatorio per Amazon FSx for ONTAP backends.

smb-share

useREST

Parametro booleano per utilizzare le API REST di ONTAP. Se impostato su true, Trident utilizzerà le API REST di ONTAP per comunicare con il backend. Questa funzione richiede ONTAP 9.11.1 e versioni successive. Inoltre, il ruolo di login ONTAP utilizzato deve avere accesso all'applicazione ontap. Questo è soddisfatto dai ruoli predefiniti vsadmin e cluster-admin.

false

aws

È possibile specificare quanto segue nel file di configurazione per AWS FSx for ONTAP: - fsxFilesystemID: Specificare l'ID del file system AWS FSx. - apiRegion: Nome della regione API AWS. - apikey: Chiave API AWS. - secretKey: Chiave segreta AWS.



""
""
""

credentials

Specificare le credenziali FSx SVM da archiviare in AWS Secrets Manager. - name: Amazon Resource Name (ARN) del segreto, che contiene le credenziali di SVM. - type: Impostare su awsarn. Consulta "Crea un segreto AWS Secrets Manager" per maggiori informazioni.

Opzioni di configurazione del backend per il provisioning dei volumi

È possibile controllare il provisioning predefinito utilizzando queste opzioni nella defaults sezione della configurazione. Per un esempio, vedere gli esempi di configurazione riportati di seguito.

Parametro Descrizione Predefinito

spaceAllocation

Allocazione dello spazio per le LUN

true

spaceReserve

Modalità di prenotazione dello spazio; "none" (thin) o "volume" (thick)

none

snapshotPolicy

policy di Snapshot da utilizzare

none

qosPolicy

Gruppo di policy QoS da assegnare ai volumi creati. Scegli uno tra qosPolicy o adaptiveQosPolicy per ogni pool di storage o backend. L'utilizzo di gruppi di policy QoS con Trident richiede ONTAP 9.8 o versioni successive. È consigliabile utilizzare un gruppo di policy QoS non condiviso e assicurarsi che il gruppo di policy venga applicato a ciascun componente singolarmente. Un gruppo di policy QoS condiviso impone il limite massimo per il throughput di tutti i carichi di lavoro.

""

adaptiveQosPolicy

Gruppo di policy QoS adattivo da assegnare ai volumi creati. Scegli uno tra qosPolicy o adaptiveQosPolicy per ogni pool di storage o backend. Non supportato da ontap-nas-economy.

""

snapshotReserve

Percentuale di volume riservata per gli snapshot "0"

Se snapshotPolicy è none, else ""

splitOnClone

Dividere un clone dal suo genitore al momento della creazione

false

encryption

Abilita NetApp Volume Encryption (NVE) sul nuovo volume; l'impostazione predefinita è false. NVE deve essere concesso in licenza e abilitato sul cluster per utilizzare questa opzione. Se NAE è abilitato sul backend, qualsiasi volume fornito in Trident sarà abilitato per NAE. Per ulteriori informazioni, fare riferimento a: "Come funziona Trident con NVE e NAE".

false

luksEncryption

Abilita la crittografia LUKS. Consulta "Usa Linux Unified Key Setup (LUKS)". Solo SAN.

""

tieringPolicy

Criterio di tiering da utilizzare none

unixPermissions

Modalità per nuovi volumi. Lasciare vuoto per volumi SMB.

""

securityStyle

Stile di sicurezza per i nuovi volumi. NFS supporta mixed e unix stili di sicurezza. SMB supporta mixed e ntfs stili di sicurezza.

L'impostazione predefinita di NFS è unix. L'impostazione predefinita di SMB è ntfs.