Nuevo entorno de ejecución mejorado
El gestor de servicios de Linux original de Migrate to Containers se basaba en sysv init
y systemd
. El gestor de servicios de Linux simplificado lo sustituye por una alternativa simplificada y compatible con contenedores.
Este gestor de servicios de Linux simplificado añade funciones que te permiten desplegar tus cargas de trabajo de contenedores migradas en:
Clústeres Autopilot de GKE
Cloud Run
El gestor de servicios de Linux simplificado también resuelve problemas de compatibilidad con los complementos de Kubernetes.
Por ejemplo, el gestor de servicios de Linux simplificado elimina el requisito de definir un hostpath
para /sys/fs/cgroup
en el archivo deployment_spec.yaml
y la necesidad de crear contenedores con privilegios.
Antes de empezar
- Migrate to Containers proporciona una herramienta que se ejecuta en una carga de trabajo de una máquina virtual para determinar la idoneidad de la carga de trabajo para migrar a un contenedor. Para obtener más información, consulta Usar la herramienta de evaluación de ajuste.
Acerca de los clústeres de Autopilot de GKE
Autopilot es un modo de funcionamiento de Google Kubernetes Engine (GKE). Autopilot se ha diseñado para reducir el coste operativo de gestionar clústeres, optimizar los clústeres para la producción y aumentar la disponibilidad de las cargas de trabajo. En el modo Autopilot, GKE aprovisiona y gestiona la infraestructura subyacente del clúster, incluidos los nodos y los grupos de nodos, lo que te proporciona un clúster optimizado con una experiencia automatizada.
Consulta más información en la información general sobre Autopilot.
Acerca de Cloud Run
Cloud Run es una plataforma de computación gestionada que te permite ejecutar contenedores sin reconocimiento del estado que se pueden invocar mediante solicitudes web o eventos de Pub/Sub. El gestor de servicios de Linux simplificado te permite desplegar tus cargas de trabajo de contenedores migradas en Cloud Run.
Usar Workload Identity con Migrate to Containers y GKE
Migrate to Containers y GKE te permiten desplegar tus cargas de trabajo migradas en Google Distributed Cloud. En ocasiones, puedes usar el mismo clúster como clúster de procesamiento y de implementación. Si has habilitado la identidad de carga de trabajo en tu clúster de implementación, asegúrate de configurar tu entorno de implementación para que sea compatible con Migrate to Containers y GKE.
Además, debe asegurarse de que los servicios iniciados como parte del proceso init estén configurados correctamente para la identidad de carga de trabajo. Los pasos que sigas dependerán del gestor de servicios de tu clúster. Consulta los pasos de configuración en el artículo Desplegar una carga de trabajo de Linux en un clúster de destino.
Cambios respecto al tiempo de ejecución actual
Para usar el gestor de servicios de Linux simplificado, debes tener en cuenta los siguientes cambios y limitaciones del tiempo de ejecución actual.
Se ha añadido un nuevo archivo de artefacto services-config.yaml
Si habilitas el gestor de servicios de Linux simplificado, Migrate to Containers crea un archivo de artefacto nuevo,
services-config.yaml
, cuando generas los artefactos de migración. Usa este archivo para controlar la inicialización de la aplicación en un contenedor implementado. Para obtener más información, consulta el artículo Usar services-config.yaml.
Comprobaciones de preparación
Cuando se usa el tiempo de ejecución actual, Migrate to Containers añade una sonda de disponibilidad en el archivo deployment_spec.yaml
. Si habilitas el gestor de servicios de Linux simplificado, no se añade ninguna sonda de disponibilidad.
Si quieres añadir una sonda de disponibilidad, te recomendamos que uses una sonda de disponibilidad HTTP. Consulta más información sobre cómo definir sondas de preparación.
readinessProbe:
exec:
command:
- /.m4a/gamma status
Sin embargo, esta sonda podría devolver un resultado falso negativo.
Compatibilidad con syslog
El gestor de servicios de Linux simplificado crea un socket Unix en /dev/log
para admitir syslog.
El gestor de servicios de Linux simplificado reenvía estos mensajes de registro a stdout
para que Kubernetes los registre como registros de contenedor.
Limitaciones
Debes tener en cuenta las siguientes limitaciones al usar el gestor de servicios de Linux simplificado.
Limitaciones de las cargas de trabajo
El gestor de servicios de Linux simplificado funciona mejor con los siguientes tipos de cargas de trabajo:
Imagen | Sistema operativo | Servicios |
---|---|---|
Compute Engine Ubuntu 12.04 | Ubuntu 12.04 | apache2 |
Compute Engine Ubuntu 14.04 | Ubuntu 14.04 | redis, mysql y apache2 |
Compute Engine Ubuntu 18.04 | 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 en 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 |
Moodle de Compute Engine Marketplace | 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 |
Compute Engine Marketplace Erpnext | Debian 10.9 | nginx, redis-server, supervisor y mariadb |
WildFly de Compute Engine Marketplace | Debian 10.10 | wildfly, cron |
Limitaciones de systemd
Si usas systemd
como sistema init, ten en cuenta las siguientes limitaciones:
Los tipos de servicio
systemd
desimple
,exec
ynotify
se tratan como servicioexec
. Esto significa que el servicio se considera iniciado cuandoexec
se completa correctamente.Los sockets de notificación se admiten en
sd_notify()
solo para mensajesREADY=1
.Si es necesario, puedes proporcionar otras comprobaciones de preparación. Por ejemplo, una comprobación HTTP u otros tipos de comprobación.
No se admiten archivos de unidad de tipo de socket. No se crean sockets ni variables de entorno.
Novedades de la versión 1.9.0
El gestor de servicios de Linux simplificado de la versión 1.9.0 incluye las siguientes actualizaciones:
El gestor de servicios de Linux se ha lanzado para disponibilidad general y ya no está en Vista Previa Pública.
Se ha modificado el procedimiento para convertir cargas de trabajo de contenedores para que sean compatibles con Autopilot. Ahora debes editar tanto el archivo Dockerfile como el archivo
deployment_spec.yaml
de una migración para convertirla.Se ha cambiado el nombre del archivo
config.yaml
aservices-config.yaml
.
Actualizaciones de la versión 1.8.1
El gestor de servicios de Linux simplificado se lanzó originalmente en versión preliminar pública como parte de la versión 1.8 de Migrate to Containers. El gestor de servicios de Linux simplificado de la versión 1.8.1 contiene las siguientes actualizaciones:
Ya no se define una anotación en el plan de migración para habilitar el gestor de servicios de Linux simplificado. En su lugar, ahora debes definir
v2kServiceManager
. Consulta más información en Desplegar contenedores en clústeres de Autopilot.Se ha cambiado el nombre de la variable de entorno
HC_GAMMA_RUNTIME
aHC_V2K_SERVICE_MANAGER
.Las entradas
prestart
ypoststart
del archivoservices-config.yaml
ahora se rellenan automáticamente. Para obtener más información, consulta el artículo Usar services-config.yaml.Se ha añadido compatibilidad con el archivo
services-config.yaml
, que te permite especificar variables de entorno a nivel global o de aplicación. Para obtener más información, consulta el artículo Usar services-config.yaml.Se ha añadido compatibilidad con el registro, lo que le permite personalizar los datos de registro escritos en Cloud Logging. Para obtener más información, consulta el artículo sobre cómo personalizar los datos de registro escritos en Cloud Logging.