Distribuisci manualmente l'operatore Shift (modalità standard)
Distribuisci manualmente il toolkit NetApp Shift come servizio containerizzato con NetApp Trident CSI e Migration Toolkit for Virtualization (MTV). Questo processo consente il provisioning dello storage automatizzato e la migrazione dei dischi delle macchine virtuali, sfruttando annotazioni ed etichette per instradare correttamente le richieste tra i componenti.
Componenti architetturali
Scopri come il toolkit NetApp Shift, Trident CSI e Migration Toolkit for Virtualization lavorano insieme per abilitare il provisioning dello storage automatizzato e la migrazione dei dischi delle VM nel tuo ambiente OpenShift.
NetApp Shift toolkit
-
Distribuito come servizio containerizzato tramite un image registry
-
Espone un endpoint che rimane in ascolto delle richieste Persistent Volume Claim (PVC) provenienti da MTV con un'annotazione specifica
-
Responsabile dell'elaborazione delle attività di migrazione del disco delle macchine virtuali, comprese le conversioni di formato
NetApp Trident CSI (versione 26.06 o successiva)
-
Agisce come provisioner della Container Storage Interface (CSI)
-
Riceve le richieste di importazione PVC dal toolkit Shift
-
Applica una logica basata su annotazioni e etichette PVC per determinare se elaborare la richiesta direttamente o reindirizzarla a Shift
Migration Toolkit for Virtualization (MTV 2.12 o versioni successive)
-
Orchestra i piani di migrazione delle macchine virtuali
-
Emette richieste PVC necessarie per il provisioning dello storage durante la migrazione delle VM
-
Aggiunge annotazioni per guidare l'elaborazione successiva
Prima di iniziare
Verifica che nel tuo ambiente OpenShift siano installati e configurati tutti i componenti necessari prima di distribuire l'operatore Shift.
-
Migration Toolkit for Virtualization Operator è in esecuzione nella versione 2.12 o successiva
-
Trident viene installato tramite OpenShift OperatorHub - "Guida all'installazione di Trident"
-
NetApp Shift viene distribuito come un container con l'endpoint Shift accessibile a NetApp Trident
-
Viene creata e annotata una Storage Class specifica per l'utilizzo con Shift toolkit
-
Le annotazioni identificano Shift toolkit come gestore previsto e specificano il backend Trident di destinazione
-
MTV include la seguente annotazione sui PVC:
forklift.konveyor.io/netapp-shift: "true"
Passaggio 1: Scarica ed estrai il programma di installazione di Shift
Il pacchetto di installazione di Shift contiene tutto il necessario per distribuire l'operatore Shift e installare Shift.
|
|
Se il cluster non ha accesso a quay.io, salta questo passaggio e segui la Installazione offline (cluster air-gapped) procedura alternativa. Torna al passaggio 2 una volta completata l'importazione dell'immagine offline. |
-
Scarica l'ultima versione del programma di installazione di Shift da "Toolchest del sito di supporto NetApp".
-
Estrai il pacchetto di installazione:
tar -xf Shift-installer-1.0.0.tar.gz -
Passa alla directory dell'installer:
cd shift-installer
Passaggio 2: Crea lo spazio dei nomi Shift e le credenziali API
Configura uno spazio dei nomi dedicato per l'operatore Shift e crea le credenziali necessarie per l'accesso sicuro all'API.
-
Crea lo spazio dei nomi Shift:
oc create ns shift -
Crea il segreto per l'accesso all'API di Shift all'interno dello spazio dei nomi di Shift. Sostituisci i valori di esempio con un nome utente univoco e una password complessa per il tuo ambiente:
oc create secret generic shift-credentials -n shift \ --from-literal=username='admin' \ --from-literal=password='admin'
|
|
Sostituisci la password con un valore a tua scelta. |
Passaggio 3: Crea il certificato TLS ConfigMaps
Crea i ConfigMaps che forniscono il certificato TLS e la chiave privata che il servizio Shift utilizza per gestire il traffico HTTPS.
Il certificato deve essere emesso con il CN/SAN impostato su shift-toolkit-service.shift.svc.cluster.local. I file del certificato e della chiave devono essere denominati server.cert e server.key, rispettivamente.
-
Crea il ConfigMap per il certificato TLS:
oc create configmap shift-toolkit-service-server-crt -n shift \ --from-file=server.cert=server.cert -
Crea la ConfigMap per la chiave privata TLS:
oc create configmap shift-toolkit-service-server-key -n shift \ --from-file=server.key=server.key
|
|
Se non usi HTTPS, imposta INSECURE_TLS=true in bundle.yaml. I ConfigMaps richiesti devono comunque essere creati come descritto sopra, anche quando HTTPS è disabilitato e i certificati TLS non vengono utilizzati attivamente.
|
Passaggio 4: Crea il CA bundle ConfigMap
Crea la ConfigMap che fornisce il bundle CA che il listener PVC utilizza per verificare il certificato TLS del servizio Shift.
-
Indica `--from-file`il `server.cert`file PEM.
La chiave nel ConfigMap deve essere
ca.crt. Con questo ConfigMap in posizione, il listener viene eseguito conINSECURE_TLS=falsee verifica il certificato Shift rispetto a questo bundle utilizzandoSHIFT_CA_CERT_FILE. -
Crea il ConfigMap per il pacchetto CA:
oc create configmap shift-toolkit-service-ca -n shift \ --from-file=ca.crt=ca.cert
Passaggio 5: Crea richieste di volume persistenti
Crea i PVC necessari per il filedb (database) di Shift e per i log prima di distribuire il bundle.
-
Prima di applicare le definizioni PVC, aggiorna
deploy/filedb-pvc.yamledeploy/logs-pvc.yamlper specificare l'opportunostorageClassNameper il tuo cluster (ad esempio,ontap-storageclass).Questi PVC devono essere creati e disponibili prima che il bundle venga distribuito nel passaggio 6: Distribuisci l'operatore Shift. -
Applica il manifest PVC di filedb:
oc apply -f deploy/filedb-pvc.yaml -
Applica il manifest PVC dei log:
oc apply -f deploy/logs-pvc.yaml
Passaggio 6: Distribuisci l'operatore Shift
Applica la configurazione dell'operatore Shift al tuo OpenShift cluster e verifica che i pod richiesti siano in esecuzione correttamente.
-
Dalla directory shift-installer, esegui il comando deploy:
oc apply -f deploy/shift-bundle.yaml -
Verifica l'installazione utilizzando lo stato di creazione del pod:
oc get pods -n shiftEsempio output:
NAME READY STATUS RESTARTS AGE shift-68ccd597c-dtsj7 1/1 Running 0 18s shift-pvc-listener-57d546f6b8-r9mgc 1/1 Running 0 18s
|
|
Per annullare la distribuzione, esegui oc delete -f deploy/bundle.yaml --ignore-not-found. Questo comando rimuove le risorse distribuite da bundle.yaml preservando lo spazio dei nomi e il secret.
|
Passaggio 7: Configura la Storage Class per l'integrazione con Shift
Crea una nuova Storage Class o aggiorna una Storage Class esistente con le annotazioni necessarie per l'integrazione con Shift.
La Storage Class deve includere le seguenti annotazioni:
-
shift.netapp.io/storage-class-type -
shift.netapp.io/trident-backend-uuid
-
Applica le annotazioni necessarie alla storage class:
oc patch storageclass nimnas1172 \ --type=merge \ -p '{ "metadata": { "annotations": { "shift.netapp.io/storage-class-type": "shift", "shift.netapp.io/trident-backend-uuid": "facc3aad-83bb-423a-b6a1-ba0fb8811217" } } }'Esempio output:
storageclass.storage.k8s.io/nimnas1172 patchedL'UUID del backend puoi recuperarlo eseguendo oc get tbc -n trident -
Verifica le classi di storage esistenti:
oc get scEsempio output:
nimnas1172 (default) csi.trident.netapp.io Delete Immediate true
Passaggio 8: Crea e avvia il piano MTV
Dopo aver completato la distribuzione dell'operatore Shift e la configurazione della storage class, puoi creare e avviare il piano MTV.
Per informazioni dettagliate sulla creazione del piano MTV, consulta il "Documentazione di Migration Toolkit for Virtualization".
La seguente screenshot mostra la sequenza di passaggi eseguiti quando viene avviato il piano di migrazione.
La seguente screenshot mostra i PVC convertiti utilizzando il toolkit Shift e successivamente importati da NetApp Trident.
Piano di migrazione completato con successo — 5 macchine virtuali e circa 5 TB di dati migrati in circa 6 minuti.
Al termine della migrazione, ogni volume clone deve essere scollegato. Il metodo di scollegamento dipende dalla versione di ONTAP: usa clone split per ONTAP 9.17.1 e versioni successive, oppure vol move per le versioni precedenti.
Sia clone split che vol move sono operazioni in background e non influiscono sui carichi di lavoro di produzione mentre sono in esecuzione. Uno script per avviare il processo di distacco è disponibile nel widget Post Migrate Detach all'interno del NetApp Console Automation Catalog.
Installazione offline (cluster air-gapped)
Questa sezione descrive un percorso di installazione alternativo per i cluster che non hanno accesso a quay.io. Se il tuo cluster può raggiungere quay.io, segui invece i passaggi da 1 a 8.
Per i cluster che non hanno accesso a quay.io, importa gli archivi tar delle immagini nel registro interno di OpenShift prima di distribuire il bundle.
Non è necessario alcun percorso di registro esterno. Sia le operazioni di push delle immagini che i riferimenti alle immagini del bundle utilizzano image-registry.openshift-image-registry.svc:5000, che è accessibile tramite la rete del cluster e protetto dalla CA del cluster.
-
`oc`Accesso alla CLI con privilegi di cluster-admin
-
`skopeo`installato
-
File tarball delle immagini disponibili sull'host:
-
shift-toolkit-1.0.0-image.tar -
shift-toolkit-listener-1.0.0-image.tar
-
-
Abilita il registro interno (operazione da eseguire una sola volta; salta questo passaggio se è già configurato):
oc patch configs.imageregistry.operator.openshift.io cluster \ --type=merge -p '{"spec":{"defaultRoute":true}}' oc get route default-route -n openshift-image-registry -
Genera le credenziali di registro utilizzando la sessione
ocattiva:Non utilizzare un raw service account token, perché potrebbe non funzionare durante il caricamento dei blob. Usa
oc registry loginper creare un file di autenticazione compatibile con il flusso di reindirizzamento del registry.REGISTRY=image-registry.openshift-image-registry.svc:5000 oc registry login --skip-check \ --registry=$REGISTRY \ --to=/tmp/registry-auth.json -
Carica l'immagine del toolkit Shift nel registro interno:
skopeo copy \ docker-archive:shift-toolkit-1.0.0-image.tar \ docker://$REGISTRY/shift/shift-toolkit:1.0.0 \ --dest-tls-verify=false \ --dest-authfile=/tmp/registry-auth.json -
Carica l'immagine del listener di Shift Toolkit nel registro interno:
skopeo copy \ docker-archive:shift-toolkit-listener-1.0.0-image.tar \ docker://$REGISTRY/shift/shift-toolkit-listener:1.0.0 \ --dest-tls-verify=false \ --dest-authfile=/tmp/registry-auth.json -
Aggiorna i riferimenti alle immagini in
deploy/bundle.yamlper utilizzare il registro interno:sed -i \ -e "s|quay.io/netapp/shift-toolkit:1.0.0|$REGISTRY/shift/shift-toolkit:1.0.0|g" \ -e "s|quay.io/netapp/shift-toolkit-listener:1.0.0|$REGISTRY/shift/shift-toolkit-listener:1.0.0|g" \ -e "s|imagePullPolicy: Always|imagePullPolicy: IfNotPresent|g" \ deploy/bundle.yaml -
Distribuisci il pacchetto:
oc apply -f deploy/bundle.yaml