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
- O Migrate to Containers inclui uma ferramenta para verificar se uma carga de trabalho da VM é adequada para a migração para um contêiner. Saiba mais em 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 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
systemddesimple,execenotifysão tratados como serviçoexec. Isso significa que o serviço será considerado iniciado seexecfor bem-sucedido.Há suporte a soquetes de notificação apenas para
sd_notify()com mensagensREADY=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.yamlda migração para convertê-la.O arquivo
config.yamlfoi renomeado comoservices-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_RUNTIMEfoi renomeada paraHC_V2K_SERVICE_MANAGER.As entradas
prestartepoststartno arquivoservices-config.yamlagora 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.