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

  • Los sockets de notificación son compatibles solo con sd_notify() para los mensajes READY=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 a services-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 a HC_V2K_SERVICE_MANAGER.

  • Las entradas prestart y poststart en el archivo services-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?