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 para 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, com ele não é preciso definir um hostpath para /sys/fs/cgroup no arquivo deployment_spec.yaml nem criar contêineres privilegiados.

Antes de começar

Sobre os clusters do Autopilot do GKE

O Autopilot é um modo de operação no Google Kubernetes Engine (GKE). O Autopilot reduz o custo operacional de gerenciamento de clusters, otimiza os clusters para produção e aumenta a disponibilidade das 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.

Saiba mais na visão geral do Autopilot.

Sobre o Cloud Run

O Cloud Run é uma plataforma de computação gerenciada para a execução de contêineres sem estado, que podem ser invocados por meio de solicitações da Web ou eventos do Pub/Sub. Com o gerenciador de serviços simplificado do Linux, é possível 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 para processamento e implantação. Se você ativou 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 no 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. Confira as etapas de configuração em Como implantar uma carga de trabalho do Linux em um cluster de destino.

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

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 atual.

Novo arquivo de artefato services-config.yaml adicionado

Se você ativar o gerenciador de serviços simplificado Linux, o Migrate to Containers vai 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. Saiba mais em 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, não há a adição da sondagem de prontidão.

Se você quiser adicionar uma sondagem de prontidão, recomendamos usar uma sondagem de prontidão HTTP. Saiba mais em Definir sondagens de prontidão.

        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 dar suporte ao 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 de Memcached do Compute Engine 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
Erpnext do Compute Engine Marketplace Debian 10.9 nginx, redis-server, supervisor, mariadb
Wildfly do Compute Engine Marketplace Debian 10.10 wildfly, cron

Limitações do systemd

Se você usa systemd como 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.

  • Há suporte a soquetes de notificação apenas para sd_notify() com mensagens READY=1.

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

  • Não há suporte a arquivos de unidade do tipo soquete. Não há criação de soquetes nem de variáveis de ambiente.

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:

  • O gerenciador de serviços do Linux foi lançado para disponibilidade geral e não está mais em pré-lançamento público.

  • O procedimento para Converter cargas de trabalho de contêineres para compatibilidade com o Autopilot foi alterado. Agora é preciso editar o Dockerfile e o arquivo deployment_spec.yaml da migração para convertê-la.

  • O arquivo config.yaml foi renomeado como services-config.yaml.

Atualizações para a versão 1.8.1

O gerenciador de serviços simplificado do Linux foi liberado em pré-lançamento público como parte do Migrate to Containers versão 1.8. 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 adicionado suporte ao arquivo services-config.yaml, para 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 do suporte à geração de registros que permite personalizar os dados de registro gravados no Cloud Logging. Saiba mais em Como personalizar dados de registro gravados no Cloud Logging.

A seguir