Nuovo runtime migliorato
Il gestore del servizio Linux originale per Migrate to Containers faceva affidamento
su sysv init
e systemd
. Il Service Manager semplificato di Linux
lo sostituisce con un'alternativa semplificata e adatta ai container.
Questo gestore di servizi Linux semplificato aggiunge funzionalità che ti consentono di eseguire il deployment dei carichi di lavoro dei container di cui è stata eseguita la migrazione a:
Cluster GKE Autopilot
Cloud Run
Il gestore del servizio Linux semplificato risolve anche i problemi di compatibilità con i plug-in di Kubernetes.
Ad esempio, il gestore del servizio Linux semplificato rimuove il requisito di definire un hostpath
per /sys/fs/cgroup
nel file deployment_spec.yaml
e la necessità di creare
di container con privilegi.
Prima di iniziare
- Migrate to Containers fornisce uno strumento che esegui su un carico di lavoro VM per determinare l'idoneità del carico di lavoro per la migrazione a un container. Per ulteriori informazioni, consulta Utilizzare lo strumento di valutazione di idoneità.
Informazioni sui cluster GKE Autopilot
Autopilot è una modalità operativa in Google Kubernetes Engine (GKE). Autopilot è progettato ridurre i costi operativi di gestione dei cluster, ottimizzare i cluster per la produzione e offre una maggiore disponibilità dei carichi di lavoro. In modalità Autopilot, GKE esegue il provisioning e gestisce l'infrastruttura sottostante del cluster, inclusi nodi pool di nodi, per offrirti un cluster ottimizzato con un'esperienza automatizzata.
Per ulteriori dettagli, consulta la panoramica di Autopilot.
Informazioni su Cloud Run
Cloud Run è una piattaforma di computing gestita che consente di Esecuzione di container stateless richiamabili da richieste web o eventi Pub/Sub. Il gestore del servizio Linux semplificato ti consente di eseguire il deployment su Cloud Run dei carichi di lavoro dei container di cui hai eseguito la migrazione.
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 migrati in Google Distributed Cloud. A volte potresti utilizzare lo stesso cluster sia del cluster di elaborazione sia di 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.
Devi inoltre assicurarti che tutti i servizi siano stati avviati come parte siano configurate correttamente per Workload Identity. I passaggi da eseguire dipendono il gestore del servizio per il cluster. Consulta Deployment di un carico di lavoro Linux in un cluster di destinazione per i passaggi di configurazione.
Modifiche rispetto al runtime esistente
Per usare il gestore di servizi Linux semplificato, tieni presente quanto segue modifiche e limitazioni del runtime esistente.
Nuovo file di artefatto services-config.yaml aggiunto
Se abiliti il gestore di servizi Linux semplificato, Migrate to Containers crea un nuovo file degli artefatti,
services-config.yaml
, quando generi gli artefatti di migrazione. Utilizza questo file per controllare
su un container di cui è stato eseguito il deployment. Vedi Utilizzo di services-config.yaml
per ulteriori informazioni.
Probe di idoneità
Quando usi il runtime attuale, Migrate to Containers aggiunge un probe di idoneità
il file deployment_spec.yaml
. Quando abiliti il gestore di servizi Linux semplificato,
non è stato aggiunto alcun probe di idoneità.
Se vuoi aggiungere un probe di idoneità, ti consigliamo di usare un probe di idoneità HTTP. Vedi Definire i probe di idoneità per ulteriori informazioni.
readinessProbe:
exec:
command:
- /.m4a/gamma status
Tuttavia, questo probe potrebbe restituire un risultato di falso negativo.
supporto syslog
Il gestore di servizi Linux semplificato crea un socket Unix in /dev/log
per supportare syslog.
Il gestore del servizio 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 le il gestore del servizio Linux.
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 per SAP 7.4 | Red Hat | httpd |
Bitnami | Ubuntu | bitnami |
Immagine Memcached di Compute Engine | Debian 10.9 | bitnami |
Wordpress del Marketplace di Compute Engine | Debian 9.13 | apache2, mysql, php |
Tomcat del Marketplace di Compute Engine | Debian 9.13 | tomcat8 |
Jenkins di Compute Engine Marketplace | Debian 10.9 | apache2, jenkins |
Moodle Marketplace di Compute Engine | Debian 9.13 | apache2, mysql, fpm php7.4, phpsessionclean |
Odoo del Marketplace di Compute Engine | Debian 9.13 | odoo, nginx |
Opencart di Compute Engine Marketplace | Debian 9.13 | apache2, mysql, php7.0 fpm, supervisore, mariadb |
Erpnext di Compute Engine Marketplace | Debian 10.9 | nginx, redis-server, supervisor, mariadb |
Wildfly Marketplace di Compute Engine | Debian 10.10 | Wildfly, cron |
limitazioni di sistema
Se utilizzi systemd
come sistema di inizializzazione, tieni presente le seguenti limitazioni:
systemd
tipi di servizio disimple
,exec
enotify
vengono trattati come servizioexec
. Ciò significa viene considerato avviato quandoexec
ha esito positivo.I socket di notifica sono supportati
sd_notify()
solo per i messaggiREADY=1
.Se necessario, puoi fornire altri controlli di idoneità. Ad esempio, controllo HTTP o altri tipi di controlli.
I file delle 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 di servizi Linux semplificato per la versione 1.9.0 contiene i seguenti aggiornamenti:
Il gestore del servizio Linux è stato rilasciato per disponibilità generale e non è più in Anteprima pubblica.
La procedura per convertire i carichi di lavoro dei container esistenti per supportare Autopilot è stata modificata. Ora devi modificare sia il Dockerfile che
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 del servizio Linux semplificato è stato originariamente rilasciato in Anteprima pubblica come parte di Migrate to Containers versione 1.8. Il gestore del servizio Linux semplificato per la versione 1.8.1 contiene i seguenti aggiornamenti:
Non imposterai più un'annotazione nel piano di migrazione per abilitare le il gestore del servizio Linux. Ora puoi impostare
v2kServiceManager
. Consulta Eseguire il deployment dei container nei cluster Autopilot per saperne di più.La variabile di ambiente
HC_GAMMA_RUNTIME
è stata rinominata inHC_V2K_SERVICE_MANAGER
.Ora le voci
prestart
epoststart
nel fileservices-config.yaml
vengono compilate automaticamente. Vedi Utilizzo di services-config.yaml per saperne di più.Aggiunto il supporto al file
services-config.yaml
che consente di specificare le variabili di ambiente a livello globale o di applicazione. Vedi Utilizzo di services-config.yaml per saperne di più.Aggiunto il supporto per il logging che consente di personalizzare i dati dei log scritti in Cloud Logging. Consulta Personalizzare i dati dei log scritti in Cloud Logging per saperne di più.
Passaggi successivi
- Scopri come eseguire la migrazione delle applicazioni ed eseguirne il deployment nei cluster GKE Autopilot.