Skip to main content
NetApp virtualization solutions
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Déployez manuellement l'opérateur Shift (mode standard)

Contributeurs netapp-jsnyder

Déployez manuellement le kit d’outils NetApp Shift en tant que service conteneurisé avec NetApp Trident CSI et Migration Toolkit for Virtualization (MTV). Ce processus permet le provisionnement automatisé du stockage et la migration des disques des machines virtuelles, en tirant parti des annotations et des étiquettes pour acheminer correctement les requêtes entre les composants.

Composants d'architecture

Comprenez comment NetApp Shift toolkit, Trident CSI et Migration Toolkit for Virtualization fonctionnent ensemble pour permettre le provisionnement automatisé du stockage et la migration des disques de machines virtuelles dans votre environnement OpenShift.

Diagramme d'architecture de l'opérateur Shift

toolkit NetApp Shift

  • Déployé en tant que service conteneurisé via un registre d'images

  • Expose un point de terminaison qui écoute les requêtes de revendication de volume persistant (PVC) provenant de MTV avec une annotation spécifique

  • Responsable du traitement des tâches de migration de disques de machines virtuelles, y compris les conversions de format

NetApp Trident CSI (Version 26.06 ou ultérieure)

  • Agit en tant que fournisseur Container Storage Interface (CSI)

  • Reçoit les demandes d'importation de PVC de la boîte à outils Shift

  • Applique une logique basée sur les annotations et les étiquettes PVC pour déterminer s'il faut traiter la requête directement ou la rediriger vers Shift

Kit d'outils de migration pour la virtualisation (MTV 2.12 ou version ultérieure)

  • Orchestre les plans de migration de machines virtuelles

  • Émet des requêtes PVC nécessaires à l’approvisionnement du stockage lors de la migration de machines virtuelles

  • Ajoute des annotations pour guider le traitement en aval

Avant de commencer

Vérifiez que votre OpenShift environnement dispose des composants requis installés et configurés avant de déployer l'opérateur Shift.

  • Migration Toolkit for Virtualization Operator exécute la version 2.12 ou ultérieure

  • Trident est installé via OpenShift OperatorHub - "Guide d'installation Trident"

  • NetApp Shift est déployé sous forme de conteneur avec le point de terminaison Shift accessible à NetApp Trident

  • Une classe de stockage est créée et annotée spécifiquement pour l'utilisation de l'outil Shift toolkit

  • Les annotations identifient Shift toolkit comme le gestionnaire prévu et spécifient le backend Trident cible

  • MTV inclut l'annotation suivante sur les PVC : forklift.konveyor.io/netapp-shift: "true"

Étape 1 : Téléchargez et extrayez le programme d’installation de Shift

Le package d'installation de Shift contient tout le nécessaire pour déployer l'opérateur Shift et installer Shift.

Remarque Si votre cluster n'a pas accès à quay.io, ignorez cette étape et suivez plutôt la procédure Installation hors ligne (clusters isolés). Revenez à l'étape 2 une fois l'importation de l'image hors ligne terminée.
Étapes
  1. Téléchargez la dernière version du programme d'installation de Shift depuis "Boîte à outils du site de support NetApp".

    Page de téléchargement du programme d'installation de Shift
  2. Extrayez le package d'installation :

    tar -xf Shift-installer-1.0.0.tar.gz
  3. Accédez au répertoire d'installation :

    cd shift-installer

Étape 2 : Créez l’espace de noms Shift et les identifiants API

Configurez un espace de noms dédié à l'opérateur Shift et créez les identifiants nécessaires pour un accès API sécurisé.

Étapes
  1. Créez l'espace de noms Shift :

    oc create ns shift
  2. Créez le secret d'accès à l'API Shift dans l'espace de noms Shift. Remplacez les valeurs d'exemple par un nom d'utilisateur unique et un mot de passe robuste adaptés à votre environnement :

    oc create secret generic shift-credentials -n shift \
      --from-literal=username='admin' \
      --from-literal=password='admin'
Remarque Remplacez le mot de passe par une valeur de votre choix.

Étape 3 : Créez le certificat TLS ConfigMaps

Créez les ConfigMaps qui fournissent le certificat TLS et la clé privée que le service Shift utilise pour servir le trafic HTTPS.

Le certificat doit être émis avec le CN/SAN défini sur shift-toolkit-service.shift.svc.cluster.local. Les fichiers de certificat et de clé doivent être nommés server.cert et server.key, respectivement.

Étapes
  1. Créez le ConfigMap pour le certificat TLS :

    oc create configmap shift-toolkit-service-server-crt -n shift \
      --from-file=server.cert=server.cert
  2. Créez la ConfigMap pour la clé privée TLS :

    oc create configmap shift-toolkit-service-server-key -n shift \
      --from-file=server.key=server.key
Remarque Si HTTPS n'est pas utilisé, définissez INSECURE_TLS=true dans bundle.yaml. Les ConfigMaps requis doivent tout de même être créés comme décrit ci-dessus, même lorsque HTTPS est désactivé et que les certificats TLS ne sont pas activement utilisés.

Étape 4 : Créez le bundle CA ConfigMap

Créez l'ConfigMap qui fournit le bundle CA que l'écouteur PVC utilise pour vérifier le certificat TLS du service Shift.

Étapes
  1. Pointez --from-file`sur le `server.cert fichier PEM.

    La clé dans le ConfigMap doit être ca.crt. Avec ce ConfigMap en place, l’écouteur s’exécute avec INSECURE_TLS=false et vérifie le certificat Shift par rapport à ce bundle à l’aide de SHIFT_CA_CERT_FILE.

  2. Créez le ConfigMap pour le bundle CA :

    oc create configmap shift-toolkit-service-ca -n shift \
      --from-file=ca.crt=ca.cert

Étape 5 : Créez des revendications de volume persistant

Créez les PVC nécessaires pour le fichier Shift filedb (base de données) et les journaux avant de déployer le bundle.

Étapes
  1. Avant d'appliquer les définitions PVC, mettez à jour deploy/filedb-pvc.yaml et deploy/logs-pvc.yaml pour spécifier le storageClassName approprié pour votre cluster (par exemple, ontap-storageclass).

    Remarque Ces PVC doivent être créés et disponibles avant le déploiement du bundle à l'étape 6 : Déployer l'opérateur Shift.
  2. Appliquez le manifeste PVC filedb :

    oc apply -f deploy/filedb-pvc.yaml
  3. Appliquez le manifeste PVC des journaux :

    oc apply -f deploy/logs-pvc.yaml

Étape 6 : Déployer l’opérateur Shift

Appliquez la configuration de l'opérateur Shift à votre OpenShift cluster et vérifiez que les pods requis fonctionnent correctement.

Étapes
  1. Depuis le répertoire shift-installer, exécutez la commande deploy :

    oc apply -f deploy/shift-bundle.yaml
  2. Vérifiez l'installation à l'aide de l'état de création du pod :

    oc get pods -n shift

    Exemple de sortie :

    NAME                                     READY   STATUS    RESTARTS   AGE
    shift-68ccd597c-dtsj7                    1/1     Running   0          18s
    shift-pvc-listener-57d546f6b8-r9mgc      1/1     Running   0          18s
Remarque Pour annuler le déploiement, exécutez oc delete -f deploy/bundle.yaml --ignore-not-found. Cette commande supprime les ressources déployées par bundle.yaml tout en préservant le namespace et le secret.

Étape 7 : Configurer la classe de stockage pour l’intégration de Shift

Créez une nouvelle classe de stockage ou mettez à jour une classe de stockage existante avec les annotations requises pour l'intégration de Shift.

À propos de cette tâche

La classe de stockage doit inclure les annotations suivantes :

  • shift.netapp.io/storage-class-type

  • shift.netapp.io/trident-backend-uuid

Étapes
  1. Appliquez les annotations requises à la classe de stockage :

    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"
          }
        }
      }'

    Exemple de sortie :

    storageclass.storage.k8s.io/nimnas1172 patched
    Remarque L'UUID du backend peut être récupéré en exécutant oc get tbc -n trident
  2. Vérifiez les classes de stockage existantes :

    oc get sc

    Exemple de sortie :

    nimnas1172 (default)   csi.trident.netapp.io   Delete          Immediate         true

Étape 8 : Créez et déclenchez le plan MTV

Une fois le déploiement de l'opérateur Shift et la configuration de la classe de stockage terminés, vous pouvez créer et déclencher le plan MTV.

Plan de migration MTV

Pour obtenir des informations détaillées sur la création du plan MTV, veuillez vous référer au "Documentation du Migration Toolkit for Virtualization".

La capture d'écran suivante illustre la séquence d'étapes exécutées lorsque le plan de migration est déclenché.

Étapes d'exécution du plan de migration

La capture d'écran suivante montre les PVC convertis à l'aide de l'outil Shift et ensuite importés par NetApp Trident.

PVCs importés par NetApp Trident
Plan de migration mené à bien avec succès

Plan de migration exécuté avec succès — 5 machines virtuelles et environ 5 To de données migrées en environ 6 minutes.

Et ensuite

Une fois la migration terminée, chaque volume cloné doit être détaché. La méthode de détachement dépend de la version d'ONTAP : utilisez la fonctionnalité « clone split » pour ONTAP 9.17.1 et versions ultérieures, ou « vol move » pour les versions antérieures.

Le fractionnement des clones et le déplacement des volumes sont des opérations d'arrière-plan qui n'ont aucun impact sur les charges de travail de production pendant leur exécution. Un script permettant de lancer le processus de détachement est disponible dans le widget Post Migrate Detach du NetApp Console Automation Catalog.

Installation hors ligne (clusters isolés)

Cette section décrit une méthode d'installation alternative pour les clusters n'ayant pas accès à quay.io. Si votre cluster peut accéder à quay.io, suivez les étapes 1–8 à la place.

Pour les clusters n'ayant pas accès à quay.io, importez les archives tar des images dans le registre interne OpenShift avant de déployer le bundle.

Aucune route de registre externe n'est requise. Les opérations de transfert d’images et les références aux images groupées utilisent image-registry.openshift-image-registry.svc:5000, qui est accessible via le réseau du cluster et sécurisé par l’autorité de certification (CA) du cluster.

Avant de commencer
  • `oc`CLI connectée avec les privilèges de cluster-admin

  • `skopeo`installé

  • Archives d'images disponibles sur l'hôte :

    • shift-toolkit-1.0.0-image.tar

    • shift-toolkit-listener-1.0.0-image.tar

Étapes
  1. Activer le registre interne (étape unique ; ignorez si déjà configuré) :

    oc patch configs.imageregistry.operator.openshift.io cluster \
      --type=merge -p '{"spec":{"defaultRoute":true}}'
    oc get route default-route -n openshift-image-registry
  2. Générez des informations d'identification de registre à l'aide de la session oc active :

    N’utilisez pas un jeton de compte de service brut, car il peut échouer lors du chargement d’objets blob. Utilisez oc registry login pour créer un fichier d’authentification compatible avec le flux de redirection du registre.

    REGISTRY=image-registry.openshift-image-registry.svc:5000
    oc registry login --skip-check \
      --registry=$REGISTRY \
      --to=/tmp/registry-auth.json
  3. Transférez l'image du kit d'outils Shift vers le registre interne :

    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
  4. Transférez l'image du listener du kit d'outils Shift vers le registre interne :

    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
  5. Mettez à jour les références d’images dans deploy/bundle.yaml pour utiliser le registre interne :

    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
  6. Déployez le bundle :

    oc apply -f deploy/bundle.yaml