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 de simple, exec y notify se tratan como servicio exec. Esto significa que el servicio se considera iniciado cuando exec se completa correctamente.

  • Los sockets de notificación se admiten en sd_notify() solo para mensajes READY=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 a services-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 a HC_V2K_SERVICE_MANAGER.

  • Las entradas prestart y poststart del archivo services-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.

Siguientes pasos