Blog de Amazon Web Services (AWS)
Uso de Kubernetes Migration Factory (KMF) para migrar de Google Kubernetes Engine (GKE) a Amazon Elastic Kubernetes Service (Amazon EKS)
KMF es una plataforma de orquestación para la migración a gran escala de cargas de trabajo en contenedores a Amazon EKS. Está diseñado para coordinar y automatizar muchos de los procesos manuales, eliminar los errores humanos y acelerar las fases de migración, que se pueden ejecutar en minutos sin requerir semanas de planificación y recopilación de datos. Con solo unos pocos datos proporcionados a la CLI de KMF, los clientes podrán migrar las cargas de trabajo del clúster de Kubernetes de GKE a Amazon EKS e imágenes de contenedores de GCR a Amazon ECR.
KMF se creó para entender los detalles de implementación de la plataforma fuente y, a continuación, manipular los archivos de manifiesto de recursos obtenidos para que sean válidos y aceptados por la implementación de destino de Kubernetes, Amazon EKS. La solución se ofrece como una herramienta de código abierto.
Prerrequisitos y limitaciones
- Esta herramienta migra los recursos de un clúster de Kubernetes a Amazon EKS, por lo que necesita un clúster de Amazon EKS de destino previamente implementado. Para obtener más información, consulte la documentación para crear un clúster de Amazon EKS.
- En la estación de trabajo en la que se utilizará la herramienta CLI de KMF, configure el acceso al clúster de destino. Para obtener más información sobre cómo autenticarse y acceder a un clúster de Amazon EKS, consulte la documentación de autenticación de clústeres.
- Configure la CLI de Kubernetes (kubectl), a través del archivo KUBECONFIG, para acceder al clúster Amazon EKS y la configuración es suficiente para que KMF tenga acceso. Consulte el archivo de configuración de kubeconfig para obtener documentación sobre el acceso al clúster Amazon EKS.
- Del mismo modo, configure el archivo KUBECONFIG para acceder al clúster de Kubernetes de origen. En el caso de Google Kubernetes Engine (GKE), puedes consultar el acceso al clúster a la documentación de GKE, del mismo modo que configuras el acceso a la herramienta CLI de Kubernetes (kubectl).
- Descargue la CLI de KMF (kmf) para su plataforma aquí. Si su plataforma no está entre las versiones disponibles, puede crear el binario a partir de las fuentes e instalarlo mediante las herramientas de desarrollo de Go y la configuración de un espacio de trabajo. Consulte la documentación de descarga e instalación para obtener más información sobre cómo instalar las herramientas de desarrollo de Go en su estación de trabajo.
- El clúster Amazon EKS utilizado como destino para migrar la carga de trabajo de Kubernetes debe tener acceso al registro de imágenes del contenedor utilizado en el origen. Puedes seguir esta documentación de Kubernetes para aprender a extraer una imagen de un registro privado. Si crea el secreto para el acceso al registro privado en el clúster de Kubernetes de origen y también adjunta todas las especificaciones del contenedor a todos los recursos, KMF también lo migrará.
- La herramienta KMF también ayuda a migrar imágenes de repositorios de terceros, como Google Container Registry (GCR), Docker Hub y el registro privado de GitLab, al Amazon Elastic Container Registry (ECR). En la estación de trabajo en la que se utilizará la CLI de KMF, asegúrese de configurar su inicio de sesión de Docker para Amazon ECR y también añada su inicio de sesión de Docker a la lista de repositorios compatibles (GCR, GitLab, Docker Hub) destinados a la migración antes de ejecutar KMF.
- La herramienta KMF utiliza los privilegios de AWS asignados al identificador de ejecución para crear un Amazon Elastic Container Registry y cargar imágenes en él. La siguiente declaración de política de IAM es el permiso mínimo requerido. Aquí y a lo largo de este artículo, recuerde reemplazar el identificador por <AccountId>el identificador de su propia cuenta de AWS y la palabra <region>para la región de AWS utilizada en el entorno de destino.
Limitaciones
- KMF ayudará a migrar imágenes de contenedores de registro como Google Container Registry (CGR), GitLab y Docker Hub a Amazon Elastic Container Registry (ECR) y actualizará el manifiesto de despliegue con la ubicación de la imagen que apunta a Amazon ECR, pero no enviará el archivo de despliegue a sus repositorios de Git. Los administradores deben hacerlo manualmente.
Arquitectura
Conjunto de tecnologías de entorno de origen
Google Kubernetes Engine: Google Kubernetes Engine (GKE) es un entorno gestionado y listo para la producción para ejecutar aplicaciones en contenedores que ofrece Google Cloud.
Conjunto de tecnologías del entorno objetivo
Amazon Elastic Kubernetes Service: Amazon Elastic Kubernetes Service (Amazon EKS) ofrece la flexibilidad necesaria para lanzar, lanzar y escalar aplicaciones de Kubernetes en AWS o en entornos locales. Amazon EKS lo ayuda a implementar clústeres seguros y de alta disponibilidad y automatiza las tareas clave, como la aplicación de parches, los nodos de aprovisionamiento y las actualizaciones.
Diagrama de arquitectura
Automação e escalabilidade
Flujo de trabajo de herramientas KMF
KMF está escrito en Go y la herramienta de línea de comandos (CLI) se puede usar para migrar cargas de trabajo y ayudar a automatizar las migraciones. El comando se puede incluir en un script de automatización. Como se muestra en el diagrama de flujo de trabajo, la herramienta KMF utiliza el archivo de configuración de la CLI de Kubernetes (KUBECONFIG) configurado para que GKE recopile los manifiestos de los recursos solicitados, que luego se modifican para adaptarlos al clúster de Kubernetes de destino de Amazon EKS antes de implementarlos.
Configuración CLI de KMF
Usando um binário já construído:
Usando un binario ya creado:
Etapas:
- Descarga el binario CLI de KMF para tu sistema operativo desde GitHub a tu estación de trabajo, donde te autenticaste en los clústeres de origen y destino. Hay binarios compilados para Mac OS, Linux y Windows en el directorio bin/ del repositorio.
- Para Mac OS, el binario está disponible en bin/mac/kmf
- Para el sistema operativo Linux, el binario está disponible en bin/linux/kmf
- Para el sistema operativo Windows, el binario está disponible en bin/windows/kmf
- Opcional: añada la herramienta a la ruta de su sistema operativo.
Construyendo el binario a partir de la fuente:
Etapas:
#1 Clona el repositorio aws-kubernetes-migration-factory
.
clon de git https://github.com/awslabs/aws-kubernetes-migration-factory
#2 Cambie el directorio a aws-kubernetes-migration-factory
.
cd aws-kubernetes-migration-factory/
#3 Ejecute este comando para crear el binario CLI de KMF.
go build
El binario CLI de KMF se creará dentro del directorio actual como un archivo denominado containers-migration-factory
. Si quieres que sea un nombre más corto, como kmf
, ejecuta el comando build de la siguiente manera:
go build -o ./bin/kmf
Ejecute la CLI de KMF
Asegúrate de tener un archivo llamado config.ini en el directorio desde el que realizas las llamadas. /bin/kmf y proporcione toda la información necesaria. A continuación se comparte un archivo config.ini de ejemplo y se puede encontrar una explicación detallada de cada parámetro en la documentación de Kubernetes Migration Factory (KMF).
Ejecución paso a paso
Aquí, mostramos los recursos de Kubernetes que se ejecutan en un clúster de Google Kubernetes Engine (GKE) y en un clúster de Amazon Elastic Kubernetes Service (EKS) antes de realizar la migración a través de la fábrica de migración de Kubernetes (KMF). Clúster GKECluster Amazon EKS
Veamos ahora un ejemplo del resultado de ejecución para ver cómo KMF realiza una migración de un clúster de GKE a un clúster de Amazon EKS.
PASO 1 En su estación de trabajo, navegue hasta la ruta en la que se descargó el repositorio de KMF.
PASO 2 Actualice config.ini. En este ejemplo, estamos realizando una migración de todas las funciones compatibles de GKS a Amazon EKS.
PASO 3 Ejecute el binario CLI de KMF. Extraerá los detalles de configuración, como la configuración del clúster de origen, la configuración del clúster de destino, la lista de recursos y el espacio de nombres del archivo config.ini. Etapa 1: Recopila el manifiesto de recursos de Kubernetes del clúster de origen (GKE) La herramienta KMF comienza por conectarse al clúster de GKE mediante elKUBECONFIG
definido en
config.ini
y recopilando el manifiesto de los recursos solicitados. En este caso, seleccionamos todos los recursos que se van a migrar de GKE al clúster Amazon EKS.
Etapa 2: Modifique el archivo de manifiesto para adaptarlo al clúster de Amazon EKS antes de la implementación y, a continuación, impleméntelo.
El KMF comienza a desplegar todos los recursos recopilados en el clúster Amazon EKS. El KMF comienza con la implementación de funciones globales, como MutatingWebHook
, que no son específicas del espacio de nombres. Si el despliegue ya está presente en el clúster de destino, KMF no lo reemplazará.
PASO 4 Verifique el resultado en el clúster Amazon EKS
Se ejecuta como un comando de una línea
La herramienta KMF también acepta parámetros como argumentos de línea de comandos. En este caso, cualquier argumento de la CLI tiene prioridad sobre cualquier definición de config.ini
.
Migración de todos los recursos de todos los espacios de nombres
A continuación se muestra un ejemplo de cómo se pueden migrar todas las funciones de Kubernetes compatibles con KMF desde todos los espacios de nombres.
Migración de despliegues y servicios desde varios espacios de nombres
A continuación se muestra un ejemplo de cómo migrar recursos de Kubernetes seleccionados desde espacios de nombres específicos.
$
Limpieza
Para borrar la instalación de la herramienta KMF, simplemente elimine el directorio aws-kubernetes-migration-factory
de la estación de trabajo en la que se clonó el repositorio. Si desea eliminar los recursos de Kubernetes migrados en el clúster de destino, simplemente elija la acción «Eliminar» en el archivo de configuración de KMF. Esto solo eliminará los recursos migrados en el clúster de Amazon EKS y no eliminará ningún recurso del clúster de GKE.
Recursos relacionados
- Creación de un clúster de Amazon EKS
- Autenticación de clúster Amazon EKS
- Crea un kubeconfig para Amazon EKS
- Acceder a Google Kubernetes Engine
Conclusión
La fábrica de migración de Kubernetes (KMF) se puede usar para migrar rápidamente tus cargas de trabajo de Kubernetes de GKE a un clúster de Amazon EKS. En esta entrada de blog, proporcionamos un ejemplo de cómo se puede utilizar KMF desde una terminal como herramienta de línea de comandos (CLI). El código fuente de KMF está disponible en el repositorio de GitHub y es de código abierto. Cualquier persona de la comunidad interesada en este tema puede contribuir o ponerse en contacto con nosotros a través de los problemas de GitHub.
Este artículo fue traducido del Blog da AWS em Inglés.
Acerca de los autores
Vasanth Jeyaraj es arquitecto de infraestructura de nube en Amazon Web Services (AWS). Ayuda a los clientes corporativos a crear una infraestructura siguiendo las mejores prácticas, centrándose en la automatización y la infraestructura como código, y también se centra en ayudar a los clientes a acelerar su proceso de adopción de tecnologías de nube nativas y modernizar la infraestructura de su plataforma y su arquitectura interna mediante la estrategia de microservicios, la contenerización y DevOps. Fuera del trabajo, le encanta pasar tiempo con su familia y viajar.
Kirankumar Chandrashekar es arquitecto sénior de soluciones de cuentas estratégicas en AWS. Se dedica a los clientes clave en el campo de la arquitectura DevOps y las tecnologías de contenedores, por nombrar algunos. A Kirankumar le apasionan DevOps, la infraestructura como código y la solución de problemas complejos de los clientes. Le gusta la música además de cocinar y viajar.
Mahendra Siddappa es consultor de DevOps en Amazon Web Services. Trabaja con clientes de AWS en ideas de contenedores, kubernetes y DevOps.
Revisor
César Páez Román se encuentra en Chile y es un arquitecto de soluciones AWS especializado en migraciones. César posee vasta experiencia en el campo de migraciones del segmento Enterprise y además con profundo conocimiento y experiencia de SAP, atiende el territorio de América Latina.