Nuevo entorno de ejecución mejorado
El administrador del servicio original de Linux para Migrate to Containers dependía de sysv init
y systemd
. El administrador de servicios de Linux simplificado lo reemplaza por una alternativa simplificada y fácil de usar para contenedores.
Este administrador de servicios de Linux simplificado agrega la funcionalidad que te permite implementar tus cargas de trabajo de contenedor migradas en:
Clústeres de GKE Autopilot
Cloud Run
El administrador de servicios de Linux simplificado también resuelve problemas de compatibilidad con los complementos de Kubernetes.
Por ejemplo, el administrador de servicios de Linux simplificado quita el requisito de definir una hostpath
para /sys/fs/cgroup
en el archivo deployment_spec.yaml
y la necesidad de crear contenedores privilegiados.
Antes de comenzar
- Migrate to Containers proporciona una herramienta que puedes ejecutar en una carga de trabajo de una VM a fin de determinar el ajuste de la carga de trabajo para la migración a un contenedor. Para obtener más información, consulta Usa la herramienta de evaluación de idoneidad.
Acerca de los clústeres de GKE Autopilot
Autopilot es un modo de operación en Google Kubernetes Engine (GKE). Autopilot está diseñado para reducir el costo operativo de administrar clústeres, optimizar tus clústeres para la producción y producir una mayor disponibilidad de las cargas de trabajo. En el modo Autopilot, GKE aprovisiona y administra la infraestructura subyacente del clúster, incluidos los nodos y los grupos de nodos, lo que te brinda un clúster optimizado con una experiencia automatizada.
Consulta Descripción general de Autopilot para obtener más información.
Acerca de Cloud Run
Cloud Run es una plataforma de procesamiento administrada que te permite ejecutar contenedores sin estado que se pueden invocar a través de solicitudes web o eventos de Cloud Pub/Sub. El administrador de servicios de Linux simplificado te permite implementar tus cargas de trabajo de contenedores migradas en Cloud Run.
Usa Workload Identity con Migrate to Containers and GKE
Migrate to Containers y GKE te permiten implementar tus cargas de trabajo migradas en Google Distributed Cloud. A veces, puedes usar el mismo clúster que el de procesamiento y el de implementación. Si habilitaste Cloud Identity en tu clúster de implementación, asegúrate de configurar tu entorno de implementación para admitir Migrate to Containers y GKE.
Además, debes asegurarte de que los servicios iniciados como parte del proceso init estén configurados de forma correcta para Workload Identity. Los pasos que realizas dependen del administrador de servicios del clúster. Consulta Implementa una carga de trabajo de Linux en el clúster de destino para conocer los pasos de configuración.
Cambios desde el entorno de ejecución existente
Para usar el administrador de servicios de Linux simplificado, debes tener en cuenta los siguientes cambios y limitaciones del entorno de ejecución existente.
Se agregó un archivo nuevo de artefacto services-config.yaml
Si habilitas el administrador de servicios de Linux simplificado, Migrate to Containers creará un archivo de artefacto nuevo, services-config.yaml
, cuando generes los artefactos de migración. Usa este archivo para controlar la inicialización de la aplicación en un contenedor implementado. Consulta Usa services-config.yaml para obtener más información.
Pruebas de disponibilidad
Cuando se usa el entorno de ejecución actual, Migrate to Containers agrega una prueba de disponibilidad en el archivo deployment_spec.yaml
. Cuando habilitas el administrador de servicios de Linux simplificado, no se agrega ningún sondeo de preparación.
Si deseas agregar una prueba de disponibilidad, te recomendamos que uses un sondeo de disponibilidad HTTP. Consulta Define sondeos de preparación para obtener más información.
readinessProbe:
exec:
command:
- /.m4a/gamma status
Sin embargo, este sondeo puede mostrar un resultado falso negativo.
Compatibilidad con syslog
El administrador de servicios de Linux simplificado crea un socket Unix en /dev/log
para admitir syslog.
El administrador de servicios de Linux simplificado reenvía estos mensajes de registro a stdout
para que Kubernetes los registre como registros de contenedores.
Limitaciones
Debes tener en cuenta las siguientes limitaciones cuando uses el administrador de servicios de Linux simplificado.
Limitaciones de las cargas de trabajo
El administrador de servicios de Linux simplificado funciona mejor con los siguientes tipos de cargas de trabajo:
Imagen | Sistema operativo | Servicios |
---|---|---|
Ubuntu 12.04 para Compute Engine | Ubuntu 12.04 | apache2 |
Ubuntu 14.04 para Compute Engine | Ubuntu 14.04 | redis, mysql, apache2 |
Ubuntu 18.04 para Compute Engine | Ubuntu 18.04 | apache2, mysql, redis-server, tomcat |
RHEL SAP 7.4 | Red Hat | httpd |
Bitnami | Ubuntu | bitnami |
Imagen de Memcached de Compute Engine | Debian 10.9 | bitnami |
WordPress de Compute Engine Marketplace | Debian 9.13 | apache2, mysql, php |
Tomcat de Compute Engine Marketplace | Debian 9.13 | tomcat8 |
Jenkins de Compute Engine Marketplace | Debian 10.9 | apache2, jenkins |
Compute Engine Marketplace moodle | Debian 9.13 | apache2, mysql, php7.4 fpm, phpsessionclean |
Odoo de Compute Engine Marketplace | Debian 9.13 | odoo, nginx |
OpenCart de Compute Engine Marketplace | Debian 9.13 | apache2, mysql, php7.0 fpm, supervisor, mariadb |
EptNext de Compute Engine Marketplace | Debian 10.9 | nginx, redis-server, supervisor, mariadb |
Wildfly de Compute Engine Marketplace | Debian 10.10 | wildfly, cron |
Limitaciones de systemd
Si usas systemd
como sistema de inicialización, ten en cuenta las siguientes limitaciones:
Los tipos de servicios
systemd
desimple
,exec
ynotify
se tratan como serviciosexec
. Esto significa que el servicio se considera iniciado siexec
se ejecuta correctamente.Los sockets de notificación son compatibles solo con
sd_notify()
para los mensajesREADY=1
.Si es necesario, puedes proporcionar otras verificaciones de preparación. Por ejemplo, la verificación HTTP o algún otro tipo de verificación.
No se admiten los archivos de la unidad de tipo socket. No se crean sockets ni variables de entorno.
Actualizaciones para la versión 1.9.0
El administrador de servicios de Linux simplificado para la versión 1.9.0 contiene las siguientes actualizaciones:
El administrador de servicios de Linux se lanzó a la etapa de disponibilidad general y ya no se encuentra en la Vista previa pública.
Se cambió el procedimiento para Convertir las cargas de trabajo de contenedores existentes a fin de admitir Autopilot. Ahora debes editar el Dockerfile y el archivo
deployment_spec.yaml
para que una migración existente lo convierta.Se cambió el nombre del archivo
config.yaml
aservices-config.yaml
.
Actualizaciones para la versión 1.8.1
El administrador de servicios de Linux simplificado se lanzó en la Vista previa pública como parte de la versión 1.8 de Migrate to Containers. El administrador de servicios de Linux simplificado para la versión 1.8.1 contiene las siguientes actualizaciones:
Ya no debes configurar una anotación en el plan de migración para habilitar el administrador de servicios de Linux simplificado. En su lugar, ahora configurarás
v2kServiceManager
. Consulta Implementa contenedores en clústeres de Autopilot para obtener más información.Se cambió el nombre de la variable de entorno
HC_GAMMA_RUNTIME
aHC_V2K_SERVICE_MANAGER
.Las entradas
prestart
ypoststart
en el archivoservices-config.yaml
ahora se propagan de forma automática. Consulta Usa services-config.yaml para obtener más información.Se agregó compatibilidad con el archivo
services-config.yaml
que te permite especificar variables de entorno a nivel global o a nivel de la aplicación. Consulta Usa services-config.yaml para obtener más información.Se agregó compatibilidad con los registros que te permite personalizar los datos de registro escritos en Cloud Logging. Consulta Personaliza los datos de registro escritos en Cloud Logging para obtener más información.
¿Qué sigue?
- Obtén más información sobre cómo migrar e implementar aplicaciones en clústeres de Autopilot de GKE.