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.
|
|
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 | Obbligatorio | Tipo | Descrizione |
|---|---|---|---|
|
Sì |
stringa |
ID del file system FSx for NetApp ONTAP |
|
Sì |
stringa |
Driver di storage Trident (ad esempio, |
|
Sì |
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.
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
{
"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 storage Basic-csi in Kubernetes e Trident, e Trident dovrebbe aver scoperto i pool nel back-end.
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 |
|---|---|
|
Risultato della configurazione ( |
|
Messaggio di stato o errore dettagliato |
|
Nome della risorsa del configuratore interno |
|
Indica che la StorageClass è gestita da Trident |
|
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:
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
{
"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
Puoi integrare Trident con Amazon FSX per NetApp ONTAP utilizzando i seguenti driver:
| Nome driver | Descrizione |
|---|---|
|
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. |
|
Ogni PV fornito è un volume Amazon FSx for NetApp ONTAP completo. Consigliato per NFS e SMB. |
|
Ogni PV di cui viene effettuato il provisioning è un LUN con un numero configurabile di LUN per Amazon FSx for NetApp ONTAP volume. |
|
Ogni PV di cui viene effettuato il provisioning è un qtree, con un numero configurabile di qtree per Amazon FSx for NetApp ONTAP volume. |
|
Ogni PV fornito è un volume Amazon FSx for NetApp ONTAP FlexGroup completo. |
Per informazioni dettagliate sul conducente, fare riferimento a. "Driver NAS" e. "Driver SAN".
Creare il backend
Dopo aver creato il file di configurazione, eseguire i seguenti comandi per creare e convalidare la Trident Backend Configuration (TBC):
-
Creare la configurazione back-end Trident (TBC) dal file yaml ed eseguire il comando seguente:
kubectl create -f backendconfig.yaml -n tridenttridentbackendconfig.trident.netapp.io/backend-tbc-ontap-nas created
-
Verificare che la configurazione back-end Trident (TBC) sia stata creata correttamente:
Kubectl get tbc -n tridentNAME 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, aggiungere i necessari mountOptions alla classe storage:
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 eseguire il provisioning di volumi di un determinato tipo.
| Attributo | Tipo | Valori | Offerta | Richiesta | Supportato da |
|---|---|---|---|---|---|
supporti1 |
stringa |
hdd, ibrido, ssd |
Il pool contiene supporti di questo tipo; ibridi significa entrambi |
Tipo di supporto 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 |
thick: all ONTAP; thin: all ONTAP e 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 |
snapshot |
bool |
vero, falso |
Il pool supporta volumi con snapshot |
Volume con snapshot attivate |
ontap-nas, ontap-san, solidfire-san |
cloni |
bool |
vero, falso |
Il pool supporta la clonazione dei volumi |
Volume con cloni attivati |
ontap-nas, ontap-san, solidfire-san |
crittografia |
bool |
vero, falso |
Il pool supporta volumi crittografati |
Volume con crittografia attivata |
ontap-nas, ontap-nas-economy, ontap-nas-flexgroups, ontap-san |
IOPS |
int |
intero positivo |
Il pool è in grado di garantire IOPS in questa gamma |
Volume garantito per questi IOPS |
solidfire-san |
1: Non supportato da ONTAP Select o FSx for ONTAP
Per ulteriori informazioni sull'interazione delle classi di archiviazione con i PersistentVolumeClaim parametri e per il controllo del provisioning dei volumi da parte di Trident, fare riferimento "Kubernetes e Trident Objects"a.
Crea la classe di archiviazione
Una volta configurato il StorageClass, puoi crearlo in Kubernetes.
-
Si tratta di un oggetto Kubernetes, lo utilizza
kubectlPer crearlo in Kubernetes.kubectl create -f storage-class-ontapnas.yaml -
Ora dovresti vedere una classe storage Basic-csi in Kubernetes e Trident, e Trident dovrebbe aver scoperto i pool nel back-end.
kubectl get sc basic-csi
NAME PROVISIONER AGE basic-csi csi.trident.netapp.io 15h
Fornire volumi SMB
È possibile eseguire il provisioning dei volumi SMB utilizzando il ontap-nas driver. Tuttavia, per farlo è necessario completare questi passaggi: "Preparatevi al provisioning dei volumi SMB".
Configurazione avanzata backend ed esempi
Per le opzioni di configurazione del backend, consultare la tabella seguente:
| Parametro | Descrizione | Esempio |
|---|---|---|
|
Sempre 1 |
|
|
Nome del driver di storage |
|
|
Nome personalizzato o backend dello storage |
Nome del driver + "_" + dataLIF |
|
Indirizzo IP di un cluster o LIF di gestione SVM È possibile specificare Un nome di dominio completo (FQDN). Può essere impostato in modo da utilizzare gli indirizzi IPv6 se Trident è stato installato utilizzando il flag IPv6. Gli indirizzi IPv6 devono essere definiti tra parentesi quadre, ad esempio [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]. Se fornisci il |
"10,0.0,1", "[2001:1234:abcd::fefe]" |
|
Indirizzo IP del protocollo LIF. ONTAP NAS drivers: NetApp consiglia di specificare dataLIF. Se non fornito, Trident recupera i dataLIF dall'SVM. È possibile specificare un fully-qualified domain name (FQDN) da utilizzare per le operazioni di montaggio NFS, consentendo di creare un round-robin DNS per il bilanciamento del carico su più dataLIF. Può essere modificato dopo l'impostazione iniziale. ONTAP SAN drivers: non specificare per iSCSI. Trident utilizza ONTAP Selective LUN Map per individuare i LIF iSCI necessari per stabilire una sessione multipath. Viene generato un avviso se dataLIF è definito esplicitamente. Può essere impostato per utilizzare indirizzi IPv6 se Trident è stato installato utilizzando il flag IPv6. Gli indirizzi IPv6 devono essere definiti tra parentesi quadre, ad esempio [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]. |
|
|
Abilita la creazione e l'aggiornamento automatici dei criteri di esportazione [booleano]. Utilizzando le |
|
|
Elenco di CIDR per filtrare gli IP dei nodi di Kubernetes rispetto a quando |
"["0,0.0,0/0", "::/0"]" |
|
Set di etichette arbitrarie formattate con JSON da applicare sui volumi |
"" |
|
Valore del certificato client codificato con base64. Utilizzato per l'autenticazione basata su certificato |
"" |
|
Valore codificato in base64 della chiave privata del client. Utilizzato per l'autenticazione basata su certificato |
"" |
|
Valore codificato in base64 del certificato CA attendibile. Opzionale. Utilizzato per l'autenticazione basata su certificato. |
"" |
|
Nome utente per la connessione al cluster o alla SVM. Utilizzato per l'autenticazione basata su credenziali. Ad esempio, vsadmin. |
|
|
Password per la connessione al cluster o alla SVM. Utilizzato per l'autenticazione basata su credenziali. |
|
|
Macchina virtuale per lo storage da utilizzare |
Derivato se viene specificato un LIF di gestione SVM. |
|
Prefisso utilizzato per il provisioning di nuovi volumi nella SVM. Impossibile modificare dopo la creazione. Per aggiornare questo parametro, è necessario creare un nuovo backend. |
|
|
Non specificare Amazon FSX per NetApp ONTAP. Fornito |
Non utilizzare. |
|
Fallire il provisioning se la dimensione del volume richiesta è superiore a questo valore. Limita anche le dimensioni massime dei volumi gestiti per qtree e LUN e l' `qtreesPerFlexvol`opzione consente di personalizzare il numero massimo di qtree per FlexVol volume |
"" (non applicato per impostazione predefinita) |
|
Il numero massimo di LUN per FlexVol volume deve essere compreso nell'intervallo [50, 200]. Solo SAN. |
"`100'" |
|
Flag di debug da utilizzare per la risoluzione dei problemi. Esempio, {"api":false, "method":true} |
nullo |
|
Elenco separato da virgole delle opzioni di montaggio NFS. Le opzioni di montaggio per volumi persistenti di Kubernetes vengono normalmente specificate in classi di storage, ma se non sono specificate opzioni di montaggio in una classe di storage, Trident tornerà all'utilizzo delle opzioni di montaggio specificate nel file di configurazione del backend di storage. Se non sono 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. |
"" |
|
Configurare la creazione di volumi NFS o SMB. Le opzioni sono |
|
|
Qtree massimi per FlexVol volume, devono essere compresi nell'intervallo [50, 300] |
|
|
È possibile specificare uno dei seguenti elementi: Il nome di una condivisione SMB creata utilizzando la console di gestione Microsoft o l'interfaccia CLI di ONTAP oppure un nome per consentire a Trident di creare la condivisione SMB. Questo parametro è obbligatorio per i backend Amazon FSX per ONTAP. |
|
|
Parametro booleano per l'utilizzo delle API REST di ONTAP. Quando è impostato su |
|
|
Puoi specificare quanto segue nel file di configurazione per AWS FSX per ONTAP: |
|
|
Specifica le credenziali di FSX SVM da memorizzare in AWS Secrets Manager. - |
Opzioni di configurazione back-end per il provisioning dei volumi
È possibile controllare il provisioning predefinito utilizzando queste opzioni in defaults della configurazione. Per un esempio, vedere gli esempi di configurazione riportati di seguito.
| Parametro | Descrizione | Predefinito |
|---|---|---|
|
Allocazione dello spazio per LUN |
|
|
Modalità di prenotazione dello spazio; "nessuno" (sottile) o "volume" (spesso) |
|
|
Policy di Snapshot da utilizzare |
|
|
Gruppo di criteri QoS da assegnare per i volumi creati. Scegliere una delle opzioni qosPolicy o adaptiveQosPolicy per pool di storage o backend. L'utilizzo di gruppi di criteri QoS con Trident richiede ONTAP 9.8 o versioni successive. È necessario utilizzare un gruppo di criteri QoS non condiviso e garantire che il gruppo di criteri venga applicato singolarmente a ciascun componente. Un gruppo di policy QoS condiviso impone un limite massimo per il throughput totale di tutti i carichi di lavoro. |
"" |
|
Gruppo di criteri QoS adattivi da assegnare per i volumi creati. Scegliere una delle opzioni qosPolicy o adaptiveQosPolicy per pool di storage o backend. Non supportato da ontap-nas-Economy. |
"" |
|
Percentuale di volume riservato agli snapshot "0" |
Se |
|
Separare un clone dal suo padre al momento della creazione |
|
|
Abilitare la crittografia del volume NetApp (NVE) sul nuovo volume; il valore predefinito è |
|
|
Attivare la crittografia LUKS. Fare riferimento a. "Utilizzo di Linux Unified Key Setup (LUKS)". Solo SAN. |
"" |
|
Policy di tiering da utilizzare |
|
|
Per i nuovi volumi. Lasciare vuoto per i volumi SMB. |
"" |
|
Stile di sicurezza per nuovi volumi. Supporto di NFS |
Il valore predefinito di NFS è |