Migra una organización a otro clúster

En esta página, se describe cómo migrar una organización de Apigee Hybrid de un clúster de Kubernetes a otro. Estos son algunos casos en los que es posible que debas migrar una organización a otro clúster:

  • El centro de datos que aloja el clúster existente no tiene más capacidad o se retira de servicio.
  • El clúster ejecuta una infraestructura antigua o una versión anterior de Kubernetes, y quieres migrar a un clúster con una infraestructura más nueva.
  • Quieres mover organizaciones de clústeres multiorganización a clústeres separados.

Ten en cuenta que hay riesgos y limitaciones cuando se migra una organización a otro clúster híbrido. Lee los detalles en la sección Limitaciones antes de realizar una migración.

Limitaciones

Las siguientes limitaciones se aplican cuando se migra una organización híbrida a otro clúster de Kubernetes:

  • Existe un riesgo de pérdida de datos cuando se mueven datos de la organización a un clúster de Kubernetes nuevo. Debes crear una copia de seguridad de los datos de todas las organizaciones en el clúster de Kubernetes mediante las instrucciones de copia de seguridad híbrida antes de migrar una organización.
  • El tamaño máximo de datos admitido para la migración de organizaciones es de 5 GB en todos los espacios de claves de una organización, sin incluir la caché ni la cuota.
  • No se migrarán los datos de la caché. La implementación híbrida vuelve a compilar los datos de la caché.
  • No se migrarán los datos de las cuotas. La implementación híbrida restablece los datos de la cuota.
  • Solo puedes migrar organizaciones a un clúster de Kubernetes que no contenga una implementación híbrida existente. No se admite la migración a un clúster con una implementación híbrida existente.
  • La organización que se migra solo se puede mover a un clúster nuevo con una implementación de una sola región. Después de que la implementación de una sola región esté en funcionamiento, puedes seguir el proceso de expansión de región, que se describe en Implementación multirregional, para expandir a otras regiones.
  • El clúster de Cassandra debe funcionar en buen estado en todas las regiones.

Migra una organización

Sigue las instrucciones que se indican a continuación para migrar una organización híbrida de un clúster de Kubernetes a otro:

  1. Si aún no están habilitadas, habilita las copias de seguridad en el clúster de Kubernetes que contiene la organización híbrida para migrar. Consulta Descripción general de la copia de seguridad de Cassandra para obtener información sobre las copias de seguridad híbridas.
  2. Inicia un trabajo de copia de seguridad híbrida con el siguiente comando:
    kubectl create job -n APIGEE_NAMESPACE --from=cronjob/apigee-cassandra-backup <backup job name>

    <backup job name> puede ser cualquier nombre de contenedor válido.

  3. Una vez que se haya completado el trabajo de copia de seguridad, usa las instrucciones en las siguientes secciones de Supervisa copias de seguridad para verificar que la copia de seguridad se haya completado de forma correcta:
    • “Verifica el estado del trabajo de copia de seguridad”
    • “Revisa los registros de copia de seguridad”
  4. Después de verificar que la copia de seguridad se realizó correctamente, toma nota del número de ID al final del registro de la copia de seguridad. Por ejemplo, un registro de copia de seguridad correcto debe contener una línea como la que aparece a continuación:
    INFO: completed upload for 20230207004250
    Toma nota del número de varios dígitos al final de la línea. Necesitarás este número más adelante.
  5. Cambia el contexto de Kubernetes al clúster de Kubernetes de destino:
    kubectl config use-context <destination cluster name> # <destination cluster name>

    En el ejemplo anterior, <destination cluster name> es el nombre del clúster de Kubernetes de destino.

  6. Restablece los datos de copia de seguridad en el clúster de Kubernetes de destino mediante las instrucciones que se indican en Restablece en una sola región.
    • Usa el archivo overrides.yaml para la organización que se migra a la implementación híbrida de destino.
    • Recuerda establecer el valor de restore:snapshotTimestamp en el número de varios dígitos que se muestra en el registro de la copia de seguridad en el paso 4. Consulta Restablece en una sola región.
  7. Una vez que se complete el restablecimiento, borra los datos de la organización, excepto los datos de la organización que se migra, del clúster de Kubernetes de destino. Los archivos de copia de seguridad híbrida contienen los datos de todas las organizaciones, incluidas las que no quieres migrar. Después de restablecer la implementación híbrida de destino, debes quitar los datos de la organización adicionales que se hayan copiado en la implementación mediante los siguientes pasos:
    1. Verifica que el contexto actual sea el contexto correcto para el clúster de Kubernetes de destino:
      kubectl config current-context
    2. Ejecuta el pod apigee-cassandra-default-0:
      kubectl exec -it -n APIGEE_NAMESPACE apigee-cassandra-default-0 -- /bin/bash
    3. Ejecuta el siguiente comando:
      find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*<migrated org name>*' -type d -maxdepth 2 -printf "%f\n"

      Consulta Obtén el nombre de la organización migrada para obtener instrucciones para encontrar <migrated org name>.

      Copia la lista de todos los nombres que se muestran en el resultado. Necesitarás esta lista en el paso 7. f.

    4. Sal del Pod apigee-cassandra-default-0.
    5. Crea un Pod de cliente de depuración de Cassandra con las instrucciones que aparecen en Crea un contenedor de cliente para la depuración. Continúa con el siguiente paso después de recibir un mensaje cqlsh.
    6. Ejecuta los siguientes comandos en el mensaje de cqlsh:
      • desc keyspaces;

        Asegúrate de que este comando no muestre errores.

      • Para cada nombre de la lista creada en el paso 7. c., ejecuta el siguiente comando:
        drop keyspace <name>
    7. Sal del Pod de cliente de depuración de Cassandra.
    8. Después de ejecutar los comandos cqlsh, ejecuta los siguientes comandos en todos los Pods de Cassandra en el clúster de Kubernetes de destino:
      • kubectl exec -it -n APIGEE_NAMESPACE  -- /bin/bash
      • find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*<migrated org name>*' -type d -maxdepth 2

        Consulta Obtén el nombre de la organización migrada para obtener instrucciones para encontrar <migrated org name>.

      • find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '**' -type d -maxdepth 2 -exec rm -rf {} +
    9. Sal del Pod de Cassandra.
  8. Cambia el contexto de Kubernetes al clúster de Kubernetes de origen:
    kubectl config use-context <source cluster name>

    En el ejemplo anterior, <source cluster name> es el nombre del clúster de Kubernetes de origen.

  9. Borra la organización migrada del clúster de Kubernetes de origen. Asegúrate de usar el archivo overrides.yaml para la organización en el comando delete:
    1. Verifica que el contexto actual sea el contexto correcto para el clúster de Kubernetes de origen:
      kubectl config current-context

      Si es necesario, configura los contextos de Kubernetes en el clúster y la organización que se deben retirar.

      Enumera tus contextos actuales para ver el nombre de contexto de cada clúster:

      kubectl config get-contexts

      Configura el contexto en el clúster y la región que deseas retirar:

      kubectl config use-context CONTEXT_NAME

      En el ejemplo anterior, CONTEXT_NAME es el nombre del contexto del clúster y la región.

      Por ejemplo:

          kubectl config get-contexts
          CURRENT   NAME                                                   CLUSTER                                                AUTHINFO                                               NAMESPACE
                    gke_example-org-1_us-central1_example-cluster-1        gke_example-org-1_us-central1_example-cluster-1        gke_example-org-1_us-central1_example-cluster-1        apigee
          *         gke_example-org-1_us-central1_example-cluster-2        gke_example-org-1_us-central1_example-cluster-2        gke_example-org-1_us-central1_example-cluster-2        apigee
                    gke_example-org-1_us-west1_example-cluster-2           gke_example-org-1_us-west1_example-cluster-2           gke_example-org-1_us-west1_example-cluster-2           apigee
      
          kubectl config use-context gke_example-org-1_us-west1_example-cluster-2
    2. Borra el host virtual. Repite esto para cada grupo de entorno:
      helm -n APIGEE_NAMESPACE delete ENV_GROUP_NAME
      
    3. Borra los entornos. Repite esto para cada entorno:
      helm -n APIGEE_NAMESPACE delete ENV_NAME
      
    4. Borra la organización de Apigee.
      helm -n APIGEE_NAMESPACE delete ORG_NAME
      
    5. Ejecuta el Pod apigee-cassandra-default-0:
      kubectl exec -it -n APIGEE_NAMESPACE apigee-cassandra-default-0 -- /bin/bash
    6. Ejecuta el siguiente comando:
      find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2 -printf "%f\n"

      Consulta Obtén el nombre de la organización migrada para obtener instrucciones para encontrar <migrated org name>.

      Copia la lista de todos los nombres que se muestran en el resultado. Necesitarás esta lista en el paso 9. j.

    7. Sal del Pod apigee-cassandra-default-0.
    8. Crea un Pod de cliente de depuración de Cassandra mediante las instrucciones que aparecen en Crea un contenedor de cliente para la depuración. Continúa con el siguiente paso después de recibir un mensaje cqlsh.
    9. Ejecuta los siguientes comandos en el mensaje de cqlsh:
      desc keyspaces;

      Asegúrate de que este comando no muestre errores.

    10. Para cada nombre de la lista creada en el paso 10. f., ejecuta el siguiente comando:
      drop keyspace <name>;
    11. Sal del Pod de cliente de depuración de Cassandra.
    12. Después de ejecutar los comandos cqlsh, ejecuta los siguientes comandos en todos los Pods de Cassandra en el clúster de Kubernetes de origen:
      • kubectl exec -it -n APIGEE_NAMESPACE CASSANDRA_POD_NAME -- /bin/bash
      • find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2

        Consulta Obtén el nombre de la organización migrada para obtener instrucciones para encontrar <migrated org name>.

      • find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2 -exec rm -rf {} +
    13. Sal del Pod de Cassandra.

Obtén el nombre de la organización migrada

Varios de los pasos del procedimiento descrito en la sección anterior requieren el nombre de la organización migrada. Para obtener el nombre de la organización migrada, sigue estos pasos:

  1. Obtén el nombre de la organización del archivo overrides.yaml de la organización. Asegúrate de verificar el archivo overrides.yaml de la organización que se migra.
  2. Si el nombre de la organización contiene guiones "-", reemplaza todos los guiones "-" por guiones bajos "_".