Skip to main content
NetApp virtualization solutions
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Implementa manualmente el operador Shift (modo estándar)

Colaboradores netapp-jsnyder

Implementa manualmente el toolkit de NetApp Shift como un servicio en contenedor con NetApp Trident CSI y Migration Toolkit for Virtualization (MTV). Este proceso permite el aprovisionamiento automatizado de almacenamiento y la migración de discos de máquinas virtuales, aprovechando anotaciones y etiquetas para enrutar las solicitudes de forma adecuada entre los componentes.

Componentes arquitectónicos

Entiende cómo NetApp Shift toolkit, Trident CSI y Migration Toolkit for Virtualization trabajan juntos para habilitar el aprovisionamiento automatizado de almacenamiento y la migración de discos de máquinas virtuales en tu entorno de OpenShift.

Diagrama de la arquitectura del operador Shift

toolkit NetApp Shift

  • Implementado como un servicio en contenedores a través de un registro de imágenes

  • Expone un punto final que escucha las solicitudes de reclamación de volumen persistente (PVC) procedentes de MTV con una anotación específica

  • Se encarga de procesar las tareas de migración de discos de máquinas virtuales, incluidas las conversiones de formato

NetApp Trident CSI (versión 26.06 o posterior)

  • Actúa como el aprovisionador de Container Storage Interface (CSI)

  • Recibe solicitudes de importación de PVC procedentes del kit de herramientas Shift

  • Aplica lógica basada en las anotaciones y etiquetas de PVC para determinar si procesar la solicitud directamente o redirigirla a Shift

Kit de herramientas de migración para virtualización (MTV 2.12 o posterior)

  • Orquesta los planes de migración de máquinas virtuales

  • Genera las solicitudes de PVC necesarias para el aprovisionamiento de almacenamiento durante la migración de máquinas virtuales

  • Agrega anotaciones para guiar el procesamiento posterior

Antes de empezar

Comprueba que tu entorno de OpenShift tenga instalados y configurados los componentes necesarios antes de implementar el operador Shift.

  • Migration Toolkit for Virtualization Operator se está ejecutando en la versión 2.12 o posterior

  • Trident se instala a través de OpenShift OperatorHub - "Guía de instalación de Trident"

  • NetApp Shift se implementa como un contenedor con el punto final de Shift accesible para NetApp Trident

  • Se crea una clase de almacenamiento y se le añade una anotación específicamente para su uso con Shift toolkit

  • Las anotaciones identifican el kit de herramientas Shift como el gestor previsto y especifican el backend Trident de destino

  • MTV incluye la siguiente anotación en las PVC: forklift.konveyor.io/netapp-shift: "true"

Paso 1: Descarga y descomprime el instalador de Shift

El paquete de instalación de Shift contiene todo lo necesario para implementar el operador de Shift e instalar Shift.

Nota Si tu clúster no tiene acceso a quay.io, omite este paso y sigue el procedimiento de Instalación sin conexión (clústeres air-gapped) en su lugar. Vuelve al paso 2 una vez que hayas completado la importación de la imagen sin conexión.
Pasos
  1. Descarga la última versión del instalador de Shift desde "Caja de herramientas del sitio de soporte de NetApp".

    Página de descarga del instalador de Shift
  2. Descomprime el paquete de instalación:

    tar -xf Shift-installer-1.0.0.tar.gz
  3. Cambia al directorio del instalador:

    cd shift-installer

Paso 2: crea el espacio de nombres de Shift y las credenciales de la API

Configura un espacio de nombres dedicado para el operador Shift y crea las credenciales necesarias para el acceso seguro a la API.

Pasos
  1. Crea el espacio de nombres Shift:

    oc create ns shift
  2. Crea la clave secreta para acceder a la API de Shift dentro del espacio de nombres de Shift. Sustituye los valores de ejemplo por un nombre de usuario único y una contraseña segura para tu entorno:

    oc create secret generic shift-credentials -n shift \
      --from-literal=username='admin' \
      --from-literal=password='admin'
Nota Sustituye la contraseña por la que prefieras.

Paso 3: Crea el certificado TLS ConfigMaps

Crea los ConfigMaps que proporcionan el certificado TLS y la clave privada que usa el servicio Shift para servir tráfico HTTPS.

El certificado debe emitirse con el CN/SAN establecido en shift-toolkit-service.shift.svc.cluster.local. Los archivos del certificado y de la clave deben denominarse server.cert y server.key, respectivamente.

Pasos
  1. Crea el ConfigMap para el certificado TLS:

    oc create configmap shift-toolkit-service-server-crt -n shift \
      --from-file=server.cert=server.cert
  2. Crea el ConfigMap para la clave privada TLS:

    oc create configmap shift-toolkit-service-server-key -n shift \
      --from-file=server.key=server.key
Nota Si no se utiliza HTTPS, configura INSECURE_TLS=true en bundle.yaml. Los ConfigMaps necesarios deben crearse como se describió arriba, incluso cuando HTTPS esté desactivado y los certificados TLS no se usen activamente.

Paso 4: Crea el paquete de CA ConfigMap

Crea el ConfigMap que proporciona el paquete de certificados de la autoridad de certificación (CA) que utiliza el listener del PVC para verificar el certificado TLS del servicio Shift.

Pasos
  1. Dirige --from-file al archivo server.cert PEM.

    La clave en el ConfigMap debe ser ca.crt. Con este ConfigMap en su lugar, el listener se ejecuta con INSECURE_TLS=false y verifica el certificado de Shift contra este paquete usando SHIFT_CA_CERT_FILE.

  2. Crea el ConfigMap para el paquete de CA:

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

Paso 5: Crear reclamaciones de volumen persistente

Crea los PVC necesarios para la base de datos Shift filedb y los registros antes de implementar el paquete.

Pasos
  1. Antes de aplicar las definiciones de PVC, actualiza deploy/filedb-pvc.yaml y deploy/logs-pvc.yaml para especificar el storageClassName adecuado para tu clúster (por ejemplo, ontap-storageclass).

    Nota Estos PVC deben crearse y estar disponibles antes de que se implemente el paquete en el paso 6: implementar el operador Shift.
  2. Aplica el manifiesto de PVC de filedb:

    oc apply -f deploy/filedb-pvc.yaml
  3. Aplica el manifiesto de PVC de los logs:

    oc apply -f deploy/logs-pvc.yaml

Paso 6: Implementa el operador Shift

Aplica la configuración del operador Shift a tu clúster de OpenShift y verifica que los pods necesarios estén ejecutándose correctamente.

Pasos
  1. Desde el directorio shift-installer, ejecuta el comando deploy:

    oc apply -f deploy/shift-bundle.yaml
  2. Comprueba la instalación mediante el estado de creación del pod:

    oc get pods -n shift

    Ejemplo de salida:

    NAME                                     READY   STATUS    RESTARTS   AGE
    shift-68ccd597c-dtsj7                    1/1     Running   0          18s
    shift-pvc-listener-57d546f6b8-r9mgc      1/1     Running   0          18s
Nota Para desimplementar, ejecuta oc delete -f deploy/bundle.yaml --ignore-not-found. Este comando elimina los recursos implementados por bundle.yaml mientras conserva el espacio de nombres y el secreto.

Paso 7: Configura la clase de almacenamiento para la integración con Shift

Crea una nueva Storage Class o actualiza una Storage Class existente con las anotaciones necesarias para la integración con Shift.

Acerca de esta tarea

La clase de almacenamiento debe incluir las siguientes anotaciones:

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

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

Pasos
  1. Actualiza la clase de almacenamiento con las anotaciones requeridas:

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

    Ejemplo de salida:

    storageclass.storage.k8s.io/nimnas1172 patched
    Nota El UUID del backend se puede obtener ejecutando oc get tbc -n trident
  2. Comprueba las clases de almacenamiento existentes:

    oc get sc

    Ejemplo de salida:

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

Paso 8: crea y pon en marcha el plan MTV

Después de completar la implementación del operador Shift y la configuración de la clase de almacenamiento, puedes crear y activar el plan MTV.

Plan de migración de MTV

Para obtener información detallada sobre cómo crear el plan MTV, consulta la "Documentación del Migration Toolkit for Virtualization".

La siguiente captura de pantalla muestra la secuencia de pasos que se ejecutan cuando se activa el plan de migración.

Pasos para la ejecución del plan de migración

La siguiente captura de pantalla muestra los PVC convertidos con el kit de herramientas Shift y posteriormente importados por NetApp Trident.

PVCs importados por NetApp Trident
Plan de migración completado con éxito

Plan de migración completado con éxito — 5 máquinas virtuales y aproximadamente 5 TB de datos migrados en unos 6 minutos.

Qué sigue

Una vez completada la migración, hay que desconectar cada volumen clonado. El método de desconexión depende de la versión de ONTAP: usa división de clones para ONTAP 9.17.1 y versiones posteriores, o vol move para versiones anteriores.

Tanto la división de clones como el traslado de volúmenes son operaciones en segundo plano y no afectan a las cargas de trabajo de producción mientras se están ejecutando. Hay un script disponible para iniciar el proceso de desvinculación en el widget Post Migrate Detach dentro del Catálogo de Automatización de la NetApp Console.

Instalación sin conexión (clústeres air-gapped)

En esta sección se describe una ruta de instalación alternativa para los clústeres que no tienen acceso a quay.io. Si tu clúster puede acceder a quay.io, sigue los pasos 1–8.

Para los clústeres que no tengan acceso a quay.io, importa los archivos tar de las imágenes en el registro interno de OpenShift antes de implementar el paquete.

No se requiere ninguna ruta de registro externa. Tanto las operaciones de envío de imágenes como las referencias a imágenes agrupadas usan image-registry.openshift-image-registry.svc:5000, que es accesible a través de la red del clúster y está protegida por la CA del clúster.

Antes de empezar
  • oc CLI con sesión iniciada con privilegios de cluster-admin

  • skopeo instalado

  • Archivos tar de imágenes disponibles en el host:

    • shift-toolkit-1.0.0-image.tar

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

Pasos
  1. Activa el registro interno (paso que solo hay que realizar una vez; omítelo si ya está configurado):

    oc patch configs.imageregistry.operator.openshift.io cluster \
      --type=merge -p '{"spec":{"defaultRoute":true}}'
    oc get route default-route -n openshift-image-registry
  2. Genera credenciales de registro utilizando la sesión activa de oc:

    No utilices un token de cuenta de servicio sin procesar, ya que puede fallar durante la carga de blobs. Utiliza oc registry login para crear un archivo de autenticación compatible con el flujo de redireccionamiento del registro.

    REGISTRY=image-registry.openshift-image-registry.svc:5000
    oc registry login --skip-check \
      --registry=$REGISTRY \
      --to=/tmp/registry-auth.json
  3. Sube la imagen del kit de herramientas Shift toolkit al 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
  4. Sube la imagen del listener del toolkit de Shift al 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
  5. Actualiza las referencias a las imágenes en deploy/bundle.yaml para usar el 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
  6. Implementa el paquete:

    oc apply -f deploy/bundle.yaml