Novo tempo de execução melhorado
O gestor de serviços Linux original para o Migrate to Containers baseava-se
em sysv init
e systemd
. O gestor de serviços do Linux simplificado
substitui-o por uma alternativa simplificada e compatível com contentores.
Este gestor de serviços do Linux simplificado adiciona funcionalidades que lhe permitem implementar as cargas de trabalho de contentores migradas para:
Clusters do GKE Autopilot
Cloud Run
O gestor de serviços do Linux simplificado também resolve problemas de compatibilidade com plug-ins do Kubernetes.
Por exemplo, o gestor de serviços do Linux simplificado remove o requisito de definir um hostpath
para /sys/fs/cgroup
no ficheiro deployment_spec.yaml
e a necessidade de criar contentores
privilegiados.
Antes de começar
- O Migrate to Containers fornece uma ferramenta que executa numa carga de trabalho de VM para determinar a adequação da carga de trabalho para migração para um contentor. Para mais informações, consulte o artigo Usar a ferramenta de avaliação de adequação.
Acerca dos clusters do GKE Autopilot
O Autopilot é um modo de funcionamento no Google Kubernetes Engine (GKE). O Autopilot foi concebido para reduzir o custo operacional da gestão de clusters, otimizar os seus clusters para produção e gerar uma maior disponibilidade da carga de trabalho. No modo de piloto automático, o GKE aprovisiona e gere a infraestrutura subjacente do cluster, incluindo nós e conjuntos de nós, oferecendo-lhe um cluster otimizado com uma experiência automatizada.
Consulte o artigo Vista geral do piloto automático para mais detalhes.
Acerca do Cloud Run
O Cloud Run é uma plataforma de computação gerida que lhe permite executar contentores sem estado que são invocáveis por pedidos Web ou eventos do Pub/Sub. O gestor de serviços do Linux simplificado permite-lhe implementar as cargas de trabalho de contentores migradas no Cloud Run.
Usar o Workload Identity com o Migrate to Containers e o GKE
O Migrate to Containers e o GKE permitem-lhe implementar as suas cargas de trabalho migradas no Google Distributed Cloud. Por vezes, pode usar o mesmo cluster como cluster de processamento e cluster de implementação. Se ativou o Workload Identity no cluster de implementação, certifique-se de que configura o ambiente de implementação para suportar o Migrate to Containers e o GKE.
Além disso, tem de garantir que todos os serviços iniciados como parte do processo init estão configurados corretamente para a identidade de carga de trabalho. Os passos que executa dependem do gestor de serviços do seu cluster. Consulte o artigo Implementar uma carga de trabalho Linux num cluster de destino para ver os passos de configuração.
Alterações a partir do tempo de execução existente
Para usar o gestor de serviços Linux simplificado, deve ter em atenção as seguintes alterações e limitações em relação ao tempo de execução existente.
Ficheiro de artefacto services-config.yaml adicionado
Se ativar o gestor de serviços do Linux simplificado, o Migrate to Containers cria um novo ficheiro de artefacto,
services-config.yaml
, quando gera os artefactos de migração. Use este ficheiro para controlar a inicialização da aplicação num contentor implementado. Consulte o artigo Usar o ficheiro services-config.yaml
para mais informações.
Sondas de prontidão
Quando usa o motor de execução atual, o Migrate to Containers adiciona uma sondagem de disponibilidade no ficheiro deployment_spec.yaml
. Quando ativa o gestor de serviços Linux simplificado, não é adicionada nenhuma sonda de prontidão.
Se quiser adicionar uma sondagem de prontidão, recomendamos que use uma sondagem de prontidão HTTP. Consulte o artigo Defina sondas de prontidão para mais informações.
readinessProbe:
exec:
command:
- /.m4a/gamma status
No entanto, esta sondagem pode devolver um resultado falso negativo.
Compatibilidade com syslog
O gestor de serviços Linux simplificado cria um socket Unix em /dev/log
para suportar o syslog.
O gestor de serviços Linux simplificado encaminha estas mensagens de registo para stdout
para que sejam registadas pelo Kubernetes como registos de contentores.
Limitações
Deve ter em atenção as seguintes limitações quando usar o gestor de serviços do Linux simplificado.
Limitações de carga de trabalho
O gestor de serviços Linux simplificado funciona melhor com os seguintes tipos de cargas de trabalho:
Imagem | Sistema operativo | Serviços |
---|---|---|
Ubuntu 12.04 do Compute Engine | Ubuntu 12.04 | apache2 |
Ubuntu 14.04 do Compute Engine | Ubuntu 14.04 | redis, mysql, apache2 |
Ubuntu 18.04 do Compute Engine | Ubuntu 18.04 | apache2, mysql, redis-server e tomcat |
RHEL SAP 7.4 | Red Hat | httpd |
Bitnami | Ubuntu | bitnami |
Imagem do 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 |
Compute Engine Marketplace Opencart | Debian 9.13 | apache2, mysql, php7.0 fpm, supervisor, mariadb |
ERPNext do Compute Engine Marketplace | Debian 10.9 | nginx, redis-server, supervisor, mariadb |
Compute Engine Marketplace wildfly | Debian 10.10 | wildfly, cron |
Limitações do systemd
Se estiver a usar o systemd
como sistema de inicialização, tenha em atenção as seguintes limitações:
Os
systemd
tipos de serviçossimple
,exec
enotify
são tratados como serviçoexec
. Isto significa que o serviço é considerado iniciado quandoexec
tem êxito.Os soquetes de notificação são suportados para
sd_notify()
apenas para mensagensREADY=1
.Se necessário, pode fornecer outras verificações de prontidão. Por exemplo, verificação HTTP ou outros tipos de verificação.
Os ficheiros de unidades do tipo de entrada não são suportados. Não são criados sockets nem variáveis de ambiente.
Atualizações para a versão 1.9.0
O gestor de serviços Linux simplificado para a versão 1.9.0 contém as seguintes atualizações:
O gestor de serviços do Linux foi lançado para disponibilidade geral e já não está em pré-visualização pública.
O procedimento para converter cargas de trabalho de contentores existentes para suportar o Autopilot foi alterado. Agora, tem de editar o Dockerfile e o ficheiro
deployment_spec.yaml
para converter uma migração existente.O nome do ficheiro
config.yaml
foi alterado paraservices-config.yaml
.
Atualizações para a versão 1.8.1
O gestor de serviços do Linux simplificado foi lançado originalmente na pré-visualização pública como parte da versão 1.8 da ferramenta Migrate to Containers. O gestor de serviços Linux simplificado para a versão 1.8.1 contém as seguintes atualizações:
Já não define uma anotação no plano de migração para ativar o gestor de serviços Linux simplificado. Em alternativa, agora define
v2kServiceManager
. Para mais informações, consulte o artigo Implemente contentores em clusters do Autopilot.A variável de ambiente
HC_GAMMA_RUNTIME
foi mudada paraHC_V2K_SERVICE_MANAGER
.As entradas
prestart
epoststart
no ficheiroservices-config.yaml
são agora preenchidas automaticamente. Consulte o artigo Usar services-config.yaml para mais informações.Foi adicionado suporte ao ficheiro
services-config.yaml
que lhe permite especificar variáveis de ambiente ao nível global ou ao nível da aplicação. Consulte o artigo Usar services-config.yaml para mais informações.Foi adicionado suporte de registo que lhe permite personalizar os dados de registo escritos no Cloud Logging. Consulte o artigo Personalize os dados de registo escritos no Cloud Logging para mais informações.