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
desimple
,exec
enotify
são tratados como serviçoexec
. Isso significa que o serviço será considerado iniciado seexec
for bem-sucedido.Os soquetes de notificação são compatíveis apenas com
sd_notify()
para mensagensREADY=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:
O gerenciador de serviços do Linux foi lançado para disponibilidade geral e não está mais na visualização pública.
O procedimento para Converter cargas de trabalho de contêineres atuais para compatibilidade com o Autopilot foi alterado. Agora é preciso editar o Dockerfile e o arquivo
deployment_spec.yaml
de uma migração existente para convertê-la.O arquivo
config.yaml
foi renomeado comoservices-config.yaml
.
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 paraHC_V2K_SERVICE_MANAGER
.As entradas
prestart
epoststart
no arquivoservices-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.