This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.11.2. Migración de una aplicación desde las instalaciones a un clúster basado en la nube
Puede migrar desde un clúster de origen que esté detrás de un cortafuegos a un clúster de destino basado en la nube estableciendo un túnel de red entre los dos clústeres. El comando crane tunnel-api establece un túnel de este tipo creando un túnel VPN en el clúster de origen y luego conectándose a un servidor VPN que se ejecuta en el clúster de destino. El servidor VPN se expone al cliente utilizando una dirección de balanceo de carga en el cluster de destino.
Un servicio creado en el clúster de destino expone la API del clúster de origen a MTC, que se ejecuta en el clúster de destino.
Requisitos previos
- El sistema que crea el túnel VPN debe tener acceso y estar conectado a ambos clusters.
- Debe ser posible crear un equilibrador de carga en el clúster de destino. Consulte a su proveedor de la nube para asegurarse de que esto es posible.
- Tenga nombres preparados para asignar a los espacios de nombres, tanto en el clúster de origen como en el de destino, en los que ejecutar el túnel VPN. Estos espacios de nombres no deben ser creados de antemano. Para obtener información sobre las reglas del espacio de nombres, consulte https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names.
- Cuando se conectan varios clústeres de origen protegidos por cortafuegos al clúster de la nube, cada clúster de origen requiere su propio espacio de nombres.
- El servidor OpenVPN está instalado en el clúster de destino.
- El cliente OpenVPN está instalado en el clúster de origen.
Al configurar el clúster de origen en MTC, la URL de la API toma la forma de
https://proxied-cluster.<namespace>.svc.cluster.local:8443.- Si utiliza la API, consulte Crear un manifiesto MigCluster CR para cada clúster remoto.
- Si utiliza la consola web MTC, consulte Migración de sus aplicaciones mediante la consola web MTC.
- La consola web MTC y el controlador de migración deben estar instalados en el clúster de destino.
Procedimiento
Instala la utilidad de
la grúa:podman cp $(podman create registry.redhat.io/rhmtc/openshift-migration-controller-rhel8:v1.7.0):/crane ./
$ podman cp $(podman create registry.redhat.io/rhmtc/openshift-migration-controller-rhel8:v1.7.0):/crane ./Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Inicie sesión de forma remota en un nodo del clúster de origen y en un nodo del clúster de destino.
Obtenga el contexto del clúster para ambos clústeres después de iniciar la sesión:
oc config view
$ oc config viewCopy to Clipboard Copied! Toggle word wrap Toggle overflow Establezca un túnel introduciendo el siguiente comando en el sistema de comandos:
crane tunnel-api [--namespace <namespace>] \ --destination-context <destination-cluster> \ --source-context <source-cluster>$ crane tunnel-api [--namespace <namespace>] \ --destination-context <destination-cluster> \ --source-context <source-cluster>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si no se especifica un espacio de nombres, el comando utiliza el valor por defecto
openvpn.Por ejemplo:
crane tunnel-api --namespace my_tunnel \ --destination-context openshift-migration/c131-e-us-east-containers-cloud-ibm-com/admin \ --source-context default/192-168-122-171-nip-io:8443/admin$ crane tunnel-api --namespace my_tunnel \ --destination-context openshift-migration/c131-e-us-east-containers-cloud-ibm-com/admin \ --source-context default/192-168-122-171-nip-io:8443/adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow SugerenciaConsulte todos los parámetros disponibles para el comando crane
tunnel-apiintroduciendocrane tunnel-api --help.El comando genera certificados TSL/SSL. Este proceso puede durar varios minutos. Cuando el proceso finaliza, aparece un mensaje.
El servidor OpenVPN se inicia en el clúster de destino y el cliente OpenVPN se inicia en el clúster de origen.
Después de unos minutos, el equilibrador de carga se resuelve en el nodo de origen.
SugerenciaPuede ver el registro de los pods de OpenVPN para comprobar el estado de este proceso introduciendo los siguientes comandos con privilegios de root:
oc get po -n <namespace>
# oc get po -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ejemplo de salida
NAME READY STATUS RESTARTS AGE <pod_name> 2/2 Running 0 44s
NAME READY STATUS RESTARTS AGE <pod_name> 2/2 Running 0 44sCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc logs -f -n <namespace> <pod_name> -c openvpn
# oc logs -f -n <namespace> <pod_name> -c openvpnCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cuando se resuelve la dirección del equilibrador de carga, aparece el mensaje
Secuencia de inicialización completadaal final del registro.En el servidor OpenVPN, que se encuentra en un nodo de control de destino, verifique que el servicio
openvpny el servicioproxied-clusterse están ejecutando:oc get service -n <namespace>
$ oc get service -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow En el nodo de origen, obtenga el token de la cuenta de servicio (SA) para el controlador de migración:
oc sa get-token -n openshift-migration migration-controller
# oc sa get-token -n openshift-migration migration-controllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow Abra la consola web de MTC y añada el clúster de origen, utilizando los siguientes valores:
- Nombre del clúster: El nombre del clúster de origen.
-
URL:
proxied-cluster.<namespace>.svc.cluster.local:8443. Si no ha definido un valor para<namespace>, utiliceopenvpn. - Token de lacuenta de servicio: El token de la cuenta de servicio del controlador de migración.
-
Host de ruta expuesto al registro de imágenes:
proxied-cluster.<namespace>.svc.cluster.local:5000. Si no ha definido un valor para<namespace>, utiliceopenvpn.
Después de que MTC haya validado la conexión con éxito, puede proceder a crear y ejecutar un plan de migración. El espacio de nombres del clúster de origen debería aparecer en la lista de espacios de nombres.