Implementa manualmente el operador Shift (modo estándar)
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.
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.
|
|
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. |
-
Descarga la última versión del instalador de Shift desde "Caja de herramientas del sitio de soporte de NetApp".
-
Descomprime el paquete de instalación:
tar -xf Shift-installer-1.0.0.tar.gz -
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.
-
Crea el espacio de nombres Shift:
oc create ns shift -
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'
|
|
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.
-
Crea el ConfigMap para el certificado TLS:
oc create configmap shift-toolkit-service-server-crt -n shift \ --from-file=server.cert=server.cert -
Crea el ConfigMap para la clave privada TLS:
oc create configmap shift-toolkit-service-server-key -n shift \ --from-file=server.key=server.key
|
|
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.
-
Dirige
--from-fileal archivoserver.certPEM.La clave en el ConfigMap debe ser
ca.crt. Con este ConfigMap en su lugar, el listener se ejecuta conINSECURE_TLS=falsey verifica el certificado de Shift contra este paquete usandoSHIFT_CA_CERT_FILE. -
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.
-
Antes de aplicar las definiciones de PVC, actualiza
deploy/filedb-pvc.yamlydeploy/logs-pvc.yamlpara especificar elstorageClassNameadecuado para tu clúster (por ejemplo,ontap-storageclass).Estos PVC deben crearse y estar disponibles antes de que se implemente el paquete en el paso 6: implementar el operador Shift. -
Aplica el manifiesto de PVC de filedb:
oc apply -f deploy/filedb-pvc.yaml -
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.
-
Desde el directorio shift-installer, ejecuta el comando deploy:
oc apply -f deploy/shift-bundle.yaml -
Comprueba la instalación mediante el estado de creación del pod:
oc get pods -n shiftEjemplo 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
|
|
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.
La clase de almacenamiento debe incluir las siguientes anotaciones:
-
shift.netapp.io/storage-class-type -
shift.netapp.io/trident-backend-uuid
-
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 patchedEl UUID del backend se puede obtener ejecutando oc get tbc -n trident -
Comprueba las clases de almacenamiento existentes:
oc get scEjemplo 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.
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.
La siguiente captura de pantalla muestra los PVC convertidos con el kit de herramientas Shift y posteriormente importados por NetApp Trident.
Plan de migración completado con éxito — 5 máquinas virtuales y aproximadamente 5 TB de datos migrados en unos 6 minutos.
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.
-
ocCLI con sesión iniciada con privilegios de cluster-admin -
skopeoinstalado -
Archivos tar de imágenes disponibles en el host:
-
shift-toolkit-1.0.0-image.tar -
shift-toolkit-listener-1.0.0-image.tar
-
-
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 -
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 loginpara 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 -
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 -
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 -
Actualiza las referencias a las imágenes en
deploy/bundle.yamlpara 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 -
Implementa el paquete:
oc apply -f deploy/bundle.yaml