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 ./
- 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
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>
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
SugerenciaConsulte todos los parámetros disponibles para el comando crane
tunnel-api
introduciendocrane 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>
Ejemplo de salida
NAME READY STATUS RESTARTS AGE <pod_name> 2/2 Running 0 44s
# oc logs -f -n <namespace> <pod_name> -c openvpn
Cuando se resuelve la dirección del equilibrador de carga, aparece el mensaje
Secuencia de inicialización completada
al final del registro.En el servidor OpenVPN, que se encuentra en un nodo de control de destino, verifique que el servicio
openvpn
y el servicioproxied-cluster
se están ejecutando:$ oc get service -n <namespace>
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
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.
Recursos adicionales
- Para obtener información sobre la creación de un manifiesto MigCluster CR para cada clúster remoto, consulte Migración de una aplicación mediante la API MTC.
- Para obtener información sobre cómo añadir un clúster mediante la consola web, consulte Migración de sus aplicaciones mediante la consola web de MTC