Nuovo runtime avanzato
Il gestore del servizio Linux originale per Migrate to Containers faceva affidamento su sysv init
e systemd
. Il gestore di servizi Linux semplificato
lo sostituisce con un'alternativa semplificata e ottimizzata per i container.
Questo gestore di servizi Linux semplificato aggiunge funzionalità che consentono di eseguire il deployment dei carichi di lavoro dei container migrati in:
Cluster GKE Autopilot
Cloud Run
Il gestore dei servizi Linux semplificato risolve anche i problemi di compatibilità con i plug-in Kubernetes.
Ad esempio, il gestore dei servizi Linux semplificato rimuove il requisito di definizione di hostpath
per /sys/fs/cgroup
nel file deployment_spec.yaml
e la necessità di creare container con privilegi.
Prima di iniziare
- Migrate to Containers fornisce uno strumento da eseguire su un carico di lavoro VM per determinare l'idoneità del carico di lavoro per la migrazione a un container. Per ulteriori informazioni, consulta l'articolo Utilizzare lo strumento di valutazione di idoneità.
Informazioni sui cluster GKE Autopilot
Autopilot è una modalità operativa di Google Kubernetes Engine (GKE). Autopilot è progettato per ridurre i costi operativi di gestione dei cluster, ottimizzarli per la produzione e aumentare la disponibilità dei carichi di lavoro. In modalità Autopilot, GKE esegue il provisioning e la gestione dell'infrastruttura sottostante del cluster, inclusi nodi e pool di nodi, offrendoti un cluster ottimizzato con un'esperienza automatizzata.
Per ulteriori dettagli, vedi Panoramica di Autopilot.
Informazioni su Cloud Run
Cloud Run è una piattaforma di computing gestita che consente di eseguire container stateless richiamabili tramite richieste web o eventi Pub/Sub. Il gestore dei servizi Linux semplificato consente di eseguire il deployment dei carichi di lavoro dei container di cui è stata eseguita la migrazione su Cloud Run.
Utilizzo di Workload Identity con Migrate to Containers e GKE
Migrate to Containers e GKE ti consente di eseguire il deployment dei carichi di lavoro migrati in Google Distributed Cloud Virtual for Bare Metal. A volte potresti utilizzare lo stesso cluster sia per il cluster di elaborazione sia per quello di deployment. Se hai abilitato Workload Identity sul cluster di deployment, assicurati di configurare l'ambiente di deployment in modo da supportare Migrate to Containers e GKE.
Inoltre, devi assicurarti che tutti i servizi avviati come parte del processo di inizializzazione siano configurati correttamente per Workload Identity. I passaggi da eseguire dipendono dal gestore del servizio del cluster. Per la procedura di configurazione, consulta Deployment di un carico di lavoro Linux in un cluster di destinazione.
Modifiche dal runtime esistente
Per utilizzare il gestore dei servizi Linux semplificato, è necessario che tu conosca le modifiche e le limitazioni che seguono relative al runtime esistente.
Nuovo file artefatto services-config.yaml aggiunto
Se abiliti il gestore dei servizi Linux semplificato, Migrate to Containers crea un nuovo file dell'artefatto, services-config.yaml
, quando generi gli artefatti di migrazione. Utilizza questo file per controllare
l'inizializzazione dell'applicazione in un container di cui è stato eseguito il deployment. Per ulteriori informazioni, consulta Utilizzo di services-config.yaml.
probe di idoneità
Quando utilizzi il runtime attuale, Migrate to Containers aggiunge un probe di idoneità nel
file deployment_spec.yaml
. Quando abiliti il gestore dei servizi Linux semplificato, non viene aggiunto alcun probe di idoneità.
Se vuoi aggiungere un probe di idoneità, ti consigliamo di utilizzare un probe di idoneità HTTP. Per ulteriori informazioni, consulta Definire i probe di idoneità.
readinessProbe:
exec:
command:
- /.m4a/gamma status
Tuttavia, questo probe potrebbe restituire un risultato falso negativo.
supporto syslog
Il gestore dei servizi Linux semplificato crea un socket Unix in /dev/log
per supportare il syslog.
Il gestore di servizi Linux semplificato inoltra questi messaggi di log a stdout
in modo che vengano registrati da Kubernetes come log dei container.
Limitazioni
Quando utilizzi il gestore di servizi Linux semplificato, devi tenere conto delle limitazioni che seguono.
Limitazioni del carico di lavoro
Il gestore di servizi Linux semplificato funziona al meglio con i seguenti tipi di carichi di lavoro:
Immagine | Sistema operativo | Servizi |
---|---|---|
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 |
Immagine Memcached Compute Engine | Debian 10.9 | bitnami |
Wordpress del Marketplace di Compute Engine | Debian 9.13 | apache2, mysql, php |
Tomcat Marketplace di Compute Engine | Debian 9.13 | tomcat8 |
Elementi del Marketplace di Compute Engine | Debian 10.9 | apache2, jenkins |
Moodle Marketplace di Compute Engine | Debian 9.13 | apache2, mysql, php7.4 fpm, phpsessionclean |
Odoo Marketplace Compute Engine | Debian 9.13 | odoo, nginx |
Opencart Marketplace Compute Engine | Debian 9.13 | apache2, mysql, php7.0 fpm, supervisore, mariadb |
Marketplace di Compute Engine Erpnext | Debian 10.9 | nginx, redis-server, supervisore, mariadb |
Marketplace di Compute Engine Wildfly | Debian 10.10 | Wildfly, cron |
limitazioni systemd
Se utilizzi systemd
come sistema di inizializzazione, tieni presente le seguenti limitazioni:
I tipi di servizi
systemd
disimple
,exec
enotify
vengono trattati come servizioexec
. Ciò significa che il servizio viene considerato avviato quandoexec
ha esito positivo.I socket di notifica sono supportati solo per
sd_notify()
per i messaggiREADY=1
.Se necessario, puoi fornire altri controlli di idoneità. Ad esempio, il controllo HTTP o altri tipi di controlli.
I file di unità di tipo socket non sono supportati. I socket non vengono creati e non vengono create variabili di ambiente.
Aggiornamenti per la versione 1.9.0
Il gestore dei servizi Linux semplificato per la versione 1.9.0 contiene i seguenti aggiornamenti:
Il gestore di servizi Linux è stato rilasciato per la disponibilità generale e non è più in Anteprima pubblica.
La procedura per convertire i carichi di lavoro dei container esistenti per supportare la modalità Autopilot è stata modificata. Ora devi modificare sia il Dockerfile sia il file
deployment_spec.yaml
affinché una migrazione esistente possa convertirlo.Il file
config.yaml
è stato rinominato comeservices-config.yaml
.
Aggiornamenti per la versione 1.8.1
Il gestore di servizi Linux semplificato è stato originariamente rilasciato in Anteprima pubblica come parte della versione 1.8 di Migrate to Containers. Il gestore dei servizi Linux semplificato per la versione 1.8.1 contiene i seguenti aggiornamenti:
Non dovrai più impostare un'annotazione nel piano di migrazione per abilitare il gestore di servizi Linux semplificato. Ora invece hai impostato
v2kServiceManager
. Per saperne di più, consulta Eseguire il deployment dei container nei cluster Autopilot.La variabile di ambiente
HC_GAMMA_RUNTIME
è stata rinominata inHC_V2K_SERVICE_MANAGER
.Le voci
prestart
epoststart
nel fileservices-config.yaml
vengono ora compilate automaticamente. Per ulteriori informazioni, consulta Utilizzo di services-config.yaml.Aggiunto il supporto al file
services-config.yaml
che consente di specificare variabili di ambiente a livello globale o a livello di applicazione. Per ulteriori informazioni, consulta Utilizzo di services-config.yaml.Aggiunto il supporto del logging che consente di personalizzare i dati di log scritti in Cloud Logging. Per ulteriori informazioni, consulta Personalizzare i dati di log scritti in Cloud Logging.