Novo ambiente de execução aprimorado

O gerenciador de serviços original do Linux para o Migrate to Containers dependia de sysv init e systemd. O gerenciador de serviços simplificado do Linux o substitui por uma alternativa simplificada e otimizada para contêineres.

Esse gerenciador de serviços simplificado do Linux adiciona uma funcionalidade que permite implantar as cargas de trabalho de contêineres migradas para:

  • Clusters do Autopilot do GKE

  • Cloud Run

O gerenciador de serviços simplificado do Linux também resolve problemas de compatibilidade com plug-ins do Kubernetes. Por exemplo, o gerenciador de serviços simplificado do Linux remove o requisito de definir um hostpath para /sys/fs/cgroup no arquivo deployment_spec.yaml e a necessidade de criar contêineres privilegiados.

Antes de começar

  • O Migrate to Containers fornece uma ferramenta executada em uma carga de trabalho da VM para determinar a compatibilidade da carga de trabalho com a migração para um contêiner. Para mais informações, consulte Como usar a ferramenta de avaliação de adequação.

Sobre os clusters do Autopilot do GKE

O Autopilot é um modo de operação no Google Kubernetes Engine (GKE). O Autopilot foi projetado para reduzir o custo operacional de gerenciamento de clusters, otimizar seus clusters para produção e possibilitar maior disponibilidade de cargas de trabalho. No modo Autopilot, o GKE provisiona e gerencia a infraestrutura subjacente do cluster, incluindo nós e pools de nós, oferecendo um cluster otimizado com uma experiência automatizada.

Consulte a visão geral do Autopilot para mais detalhes.

Sobre o Cloud Run

O Cloud Run é uma plataforma de computação gerenciada que permite executar contêineres sem estado que podem ser invocados por meio de solicitações da Web ou eventos do Pub/Sub. O gerenciador de serviços simplificado do Linux permite implantar cargas de trabalho de contêiner migradas no Cloud Run.

Como usar a identidade da carga de trabalho com o Migrate to Containers e o GKE

O Migrate to Containers e o GKE permitem implantar as cargas de trabalho migradas no Google Distributed Cloud. Às vezes, é possível usar o mesmo cluster como cluster de processamento e cluster de implantação. Se você tiver ativado a identidade da carga de trabalho no cluster de implantação, configure o ambiente de implantação para aceitar o Migrate to Containers e o GKE.

Além disso, verifique se todos os serviços iniciados como parte do processo init estão configurados corretamente para a identidade da carga de trabalho. As etapas a serem executadas dependem do gerenciador de serviços do cluster. Para as etapas de configuração, consulte Como implantar uma carga de trabalho do Linux em um cluster de destino.

Alterações do ambiente de execução existente

Para usar o gerenciador de serviços simplificado do Linux, você precisa estar ciente das seguintes alterações e limitações do ambiente de execução existente.

Novo arquivo de artefato services-config.yaml adicionado

Se você ativar o gerenciador de serviços simplificado Linux, o Migrate to Containers criará um novo arquivo de artefato, services-config.yaml, ao gerar os artefatos de migração. Use esse arquivo para controlar a inicialização do aplicativo em um contêiner implantado. Para mais informações, consulte Como usar o services-config.yaml.

Sondagens de prontidão

Ao usar o ambiente de execução atual, o Migrate to Containers adiciona uma sondagem de prontidão ao arquivo deployment_spec.yaml. Quando você ativa o gerenciador de serviços simplificado do Linux, nenhuma sondagem de prontidão é adicionada.

Se você quiser adicionar uma sondagem de prontidão, recomendamos usar uma sondagem de prontidão HTTP. Consulte Definir sondagens de prontidão para mais informações.

        readinessProbe:
          exec:
            command:
            - /.m4a/gamma status

No entanto, essa sondagem pode retornar um resultado falso negativo.

Compatibilidade com syslog

O gerenciador de serviços simplificado do Linux cria um soquete Unix em /dev/log para aceitar o syslog. O gerenciador de serviços simplificado do Linux encaminha essas mensagens de registro para stdout. Dessa forma, elas são registradas pelo Kubernetes como registros de contêiner.

Limitações

Esteja ciente das seguintes limitações ao usar o gerenciador de serviços simplificado do Linux.

Limitações da carga de trabalho

O gerenciador de serviços simplificado do Linux funciona melhor com os seguintes tipos de cargas de trabalho:

Imagem Sistema operacional Serviços
Compute Engine Ubuntu 12.04 Ubuntu 12.04 apache2
Compute Engine Ubuntu 14.04 Ubuntu 14.04 redis, mysql, apache2
Compute Engine Ubuntu 18.04 Ubuntu 18.04 apache2, mysql, redis-server, tomcat
RHEL SAP 7.4 Red Hat httpd
Bitnami Ubuntu bitnami
Imagem do Compute Engine Memcached Debian 10.9 bitnami
Wordpress do Compute Engine Marketplace Debian 9.13 apache2, mysql, php
Tomcat do Compute Engine Marketplace Debian 9.13 tomcat8
Jenkins do Compute Engine Marketplace Debian 10.9 apache2, jenkins
Moodle do Compute Engine Marketplace Debian 9.13 apache2, mysql, php7.4 fpm, phpsessionclean
Odoo do Compute Engine Marketplace Debian 9.13 odoo, nginx
Opencart do Marketplace do Compute Engine Debian 9.13 apache2, mysql, php7.0 fpm, supervisor, mariadb
Compute Engine Marketplace Erpnext Debian 10.9 nginx, redis-server, supervisor, mariadb
Wildfly do Compute Engine Marketplace Debian 10.10 wildfly, cron

Limitações do systemd

Se estiver usando systemd como seu sistema init, esteja ciente das seguintes limitações:

  • Os tipos de serviço systemd de simple, exec e notify são tratados como serviço exec. Isso significa que o serviço será considerado iniciado se exec for bem-sucedido.

  • Os soquetes de notificação são compatíveis apenas com sd_notify() para mensagens READY=1.

    Se necessário, você pode fornecer outras verificações de prontidão. Por exemplo, verificação HTTP ou outro tipo de verificação.

  • Arquivos de unidade do tipo soquete não são compatíveis. Os soquetes não são criados e nenhuma variável de ambiente é criada.

Atualizações para a versão 1.9.0

O gerenciador de serviços simplificado do Linux para a versão 1.9.0 contém as seguintes atualizações:

Atualizações para a versão 1.8.1

O gerenciador de serviços simplificado do Linux foi lançado originalmente na visualização pública como parte do Migrate to Containers versão 1.8. O gerenciador de serviços simplificado do Linux para a versão 1.8.1 contém as seguintes atualizações:

  • Você não define mais uma anotação no plano de migração para ativar o gerenciador de serviços simplificado do Linux. Em vez disso, defina v2kServiceManager. Consulte Implantar contêineres em clusters do Autopilot para mais informações.

  • A variável de ambiente HC_GAMMA_RUNTIME foi renomeada para HC_V2K_SERVICE_MANAGER.

  • As entradas prestart e poststart no arquivo services-config.yaml agora são preenchidas automaticamente. Saiba mais em Como usar o services-config.yaml.

  • Foi adicionada compatibilidade com o arquivo services-config.yaml, que permite especificar variáveis de ambiente no nível global ou no nível do aplicativo. Saiba mais em Como usar o services-config.yaml.

  • Inclusão de suporte de geração de registros que permite personalizar os dados de registro gravados no Cloud Logging. Consulte Como personalizar dados de registro gravados no Cloud Logging para mais informações.

A seguir