Nuovo runtime migliorato
Il gestore dei servizi Linux originale per Migrate to Containers si basava su sysv init
e systemd
. Il gestore dei servizi Linux semplificato lo sostituisce con un'alternativa semplificata e compatibile con i container.
Questo gestore dei servizi Linux semplificato aggiunge funzionalità che ti consentono di eseguire il deployment dei carichi di lavoro dei container di cui è stata eseguita la migrazione su:
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 definire un hostpath
per /sys/fs/cgroup
nel file deployment_spec.yaml
e la necessità di creare
contenuti privilegiati.
Prima di iniziare
- Migrate to Containers fornisce uno strumento che viene eseguito su un workload VM per determinare la idoneità del workload per la migrazione a un container. Per ulteriori informazioni, consulta Utilizzo dello strumento di valutazione di idoneità.
Informazioni sui cluster GKE Autopilot
Autopilot è una modalità operativa in Google Kubernetes Engine (GKE). Autopilot è progettato per ridurre i costi operativi della gestione dei cluster, ottimizzare i cluster 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 i nodi e i pool di nodi, offrendoti un cluster ottimizzato con un'esperienza automatizzata.
Per ulteriori dettagli, consulta la panoramica di Autopilot.
Informazioni su Cloud Run
Cloud Run è una piattaforma di calcolo gestita che consente di eseguire container stateless richiamabili tramite richieste web o eventi Pub/Sub. Il gestore dei servizi Linux semplificato ti 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 consentono di eseguire il deployment dei carichi di lavoro sottoposti a migrazione in Google Distributed Cloud. A volte, puoi utilizzare lo stesso cluster sia come cluster di elaborazione sia come cluster di deployment. Se hai attivato l'identità per i carichi di lavoro nel cluster di deployment, assicurati di configurare l'ambiente di deployment in modo che supporti Migrate to Containers e GKE.
Inoltre, devi assicurarti che tutti i servizi avviati nell'ambito del processo di inizializzazione siano configurati correttamente per l'identità per i carichi di lavoro. I passaggi da eseguire dipendono dal gestore del servizio del cluster. Per la procedura di configurazione, consulta Eseguire il deployment di un carico di lavoro Linux in un cluster di destinazione.
Modifiche rispetto al runtime esistente
Per utilizzare il gestore dei servizi Linux semplificato, devi essere a conoscenza delle seguenti modifiche e limitazioni rispetto al runtime esistente.
È stato aggiunto un nuovo file dell'elemento services-config.yaml
Se attivi il gestore dei servizi Linux semplificato, Migrate to Containers crea un nuovo file di elementi
services-config.yaml
quando generi gli elementi di migrazione. Utilizza questo file per controllare
l'inizializzazione dell'applicazione in un container di cui è stato eseguito il deployment. Per ulteriori informazioni, consulta Utilizzare services-config.yaml.
Probe di idoneità
Quando utilizzi il runtime corrente, Migrate to Containers aggiunge un controllo di idoneità nel
file deployment_spec.yaml
. Quando attivi il gestore dei servizi Linux semplificato,
non viene aggiunto alcun controllo di idoneità.
Se vuoi aggiungere un controllo di idoneità, ti consigliamo di utilizzare un controllo di idoneità HTTP. Per ulteriori informazioni, consulta Definire i controlli di idoneità.
readinessProbe:
exec:
command:
- /.m4a/gamma status
Tuttavia, questa sonda potrebbe restituire un falso negativo.
Supporto syslog
Il gestore dei servizi Linux semplificato crea una socket Unix in /dev/log
per supportare syslog.
Il gestore dei servizi Linux semplificato inoltra questi messaggi di log a stdout
in modo che vengano registrati da Kubernetes come log dei container.
Limitazioni
Tieni presente le seguenti limitazioni quando utilizzi il gestore dei servizi Linux semplificato.
Limitazioni dei carichi di lavoro
Il gestore dei servizi Linux semplificato funziona al meglio con i seguenti tipi di carichi di lavoro:
Immagine | Sistema operativo | Servizi |
---|---|---|
Ubuntu 12.04 di Compute Engine | Ubuntu 12.04 | apache2 |
Ubuntu 14.04 di Compute Engine | Ubuntu 14.04 | redis, mysql, apache2 |
Ubuntu 18.04 di Compute Engine | Ubuntu 18.04 | apache2, mysql, redis-server, tomcat |
RHEL SAP 7.4 | Red Hat | httpd |
Bitnami | Ubuntu | bitnami |
Immagine Memcached di Compute Engine | Debian 10.9 | bitnami |
WordPress nel marketplace di Compute Engine | Debian 9.13 | apache2, mysql, php |
Tomcat del marketplace Compute Engine | Debian 9.13 | tomcat8 |
Jenkins nel marketplace di Compute Engine | Debian 10.9 | apache2, jenkins |
Modulo Marketplace di Compute Engine | Debian 9.13 | apache2, mysql, php7.4 fpm, phpsessionclean |
Odoo di Compute Engine Marketplace | Debian 9.13 | odoo, nginx |
Opencart nel marketplace Compute Engine | Debian 9.13 | apache2, mysql, php7.0 fpm, supervisor, mariadb |
Marketplace Compute Engine Erpnext | Debian 10.9 | nginx, redis-server, supervisor, mariadb |
Wildfly nel marketplace di Compute Engine | Debian 10.10 | wildfly, cron |
Limitazioni di 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.Le socket di notifica sono supportate solo per
sd_notify()
per i messaggiREADY=1
.Se necessario, puoi fornire altri controlli di idoneità. Ad esempio, controllo HTTP o altri tipi di controllo.
I file delle unità di tipo di presa non sono supportati. Non vengono creati socket 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 dei 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 in modo da supportare Autopilot è stata modificata. Ora devi modificare sia il Dockerfile sia il file
deployment_spec.yaml
per una migrazione esistente per convertirlo.Il file
config.yaml
è stato rinominato inservices-config.yaml
.
Aggiornamenti per la versione 1.8.1
Il gestore dei servizi Linux semplificato è stato inizialmente rilasciato in Anteprima pubblica nell'ambito 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 è più necessario impostare un'annotazione nel piano di migrazione per attivare il gestore dei servizi Linux semplificato. Ora devi impostare
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 saperne di più, consulta Utilizzare services-config.yaml.È stato aggiunto il supporto per il file
services-config.yaml
che consente di specificare le variabili di ambiente a livello globale o di applicazione. Per saperne di più, consulta Utilizzare services-config.yaml.È stato aggiunto il supporto di logging che consente di personalizzare i dati dei log scritti in Cloud Logging. Per saperne di più, consulta Personalizzare i dati dei log scritti in Cloud Logging.