Configurazione iSCSI di NetApp ONTAP
Per integrare il sistema di storage NetApp ONTAP con i cluster VMware Tanzu Kubernetes per volumi persistenti tramite iSCSI, il primo passo è preparare i nodi accedendo a ciascun nodo e configurando le utility o i pacchetti iSCSI per il montaggio dei volumi iSCSI. A tale scopo, seguire la procedura descritta in questo documento "collegamento".
NetApp sconsiglia questa procedura per le implementazioni NAT dei cluster VMware Tanzu Kubernetes. |
TKGI utilizza le macchine virtuali Bosh come nodi per i cluster Tanzu Kubernetes che eseguono immagini di configurazione immutabili e qualsiasi modifica manuale dei pacchetti iSCSI sulle macchine virtuali Bosh non rimane persistente durante i riavvii. Pertanto, NetApp consiglia di utilizzare volumi NFS per lo storage persistente per i cluster Tanzu Kubernetes implementati e gestiti da TKGI. |
Una volta preparati i nodi del cluster per i volumi iSCSI, è necessario creare un backend che consenta la comunicazione con il sistema storage. In questa soluzione è stato configurato un backend di base, ma per ulteriori opzioni personalizzate, consultare la documentazione "qui".
Creare una SVM in ONTAP
Per creare una SVM in ONTAP, attenersi alla seguente procedura:
-
Accedere a Gestore di sistema di ONTAP, selezionare Storage > Storage VM e fare clic su Aggiungi.
-
Inserire un nome per la SVM, attivare il protocollo iSCSI, quindi fornire i dettagli per la LIF dei dati.
-
Inserire i dettagli dell'account di amministrazione SVM, quindi fare clic su Save (Salva).
-
Per assegnare gli aggregati alla SVM, selezionare Storage > Storage VM (Storage > Storage VM), fare clic sui puntini di sospensione accanto alla SVM appena creata, quindi fare clic su Edit (Modifica). Selezionare la casella di controllo Limit Volume Creation to Preferred Local Tier (limita creazione volume a livelli locali preferiti) e allegarvi gli aggregati richiesti.
Creare backend e StorageClasses
-
Per i sistemi NetApp ONTAP che utilizzano NFS, creare un file di configurazione back-end sul jumphost con backendName, managementLIF, dataLIF, svm, nome utente, password e altri dettagli.
{ "version": 1, "storageDriverName": "ontap-san", "backendName": "ontap-san+10.61.181.231", "managementLIF": "172.21.224.201", "dataLIF": "10.61.181.231", "svm": "trident_svm_iscsi", "username": "admin", "password": "password" }
-
Creare il backend Trident eseguendo il seguente comando.
[netapp-user@rhel7 trident-installer]$ ./tridentctl -n trident create backend -f backend-ontap-san.json +------------------------+----------------+--------------------------------------+--------+---------+ | NAME | STORAGE DRIVER | UUID | STATE | VOLUMES | +------------------------+----------------+--------------------------------------+--------+---------+ | ontap-san+10.61.181.231 | ontap-san | 6788533c-7fea-4a35-b797-fb9bb3322b91 | online | 0 | +------------------------+----------------+--------------------------------------+--------+---------+
-
Dopo aver creato un backend, è necessario creare una classe di storage. La seguente definizione di classe di storage di esempio evidenzia i campi obbligatori e di base. Il parametro
backendType
Dovrebbe riflettere il driver di storage del backend Trident appena creato. Annotare anche il valore del campo nome, a cui si deve fare riferimento in un passaggio successivo.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ontap-iscsi provisioner: csi.trident.netapp.io parameters: backendType: "ontap-san"
Esiste un campo opzionale chiamato fsType
definito in questo file. Nei backend iSCSI, questo valore può essere impostato su un tipo di file system Linux specifico (XFS, ext4 e così via) o può essere cancellato per consentire ai cluster Tanzu Kubernetes di decidere quale filesystem utilizzare. -
Creare la classe di storage eseguendo il comando kubectl.
[netapp-user@rhel7 trident-installer]$ kubectl create -f storage-class-iscsi.yaml storageclass.storage.k8s.io/ontap-iscsi created
-
Una volta creata la classe di storage, è necessario creare la prima dichiarazione di volume persistente (PVC). Di seguito viene fornita una definizione di PVC di esempio. Assicurarsi che il
storageClassName
il campo corrisponde al nome della classe di storage appena creata. La definizione del PVC può essere ulteriormente personalizzata in base alle esigenze, a seconda del carico di lavoro da fornire.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: basic spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: ontap-iscsi
-
Creare il PVC emettendo il comando kubectl. La creazione può richiedere del tempo a seconda delle dimensioni del volume di backup da creare, in modo da poter guardare il processo mentre viene completato.
[netapp-user@rhel7 trident-installer]$ kubectl create -f pvc-basic.yaml persistentvolumeclaim/basic created [netapp-user@rhel7 trident-installer]$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE basic Bound pvc-7ceac1ba-0189-43c7-8f98-094719f7956c 1Gi RWO ontap-iscsi 3s