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 da eseguire su un carico di lavoro VM per determinare la 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 per 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 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 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.

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 i passaggi 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 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. 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, questo probe potrebbe restituire un risultato di 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 le il gestore del servizio Linux.

Limitazioni dei carichi 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
Ubuntu 18.04 di Compute Engine 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 nel marketplace di Compute Engine 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
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:

  • systemd tipi di servizio di simple,exec e notify vengono trattati come servizio exec. Ciò significa che il servizio viene considerato avviato quando exec ha esito positivo.

  • I socket di notifica sono supportati sd_notify() solo per i messaggi READY=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 per supportare Autopilot è stata modificata. Ora devi modificare sia il Dockerfile sia il file deployment_spec.yaml per una migrazione esistente per convertirla.

  • Il file config.yaml è stato rinominato in services-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. Per saperne di più, consulta Eseguire il deployment dei container nei cluster Autopilot.

  • La variabile di ambiente HC_GAMMA_RUNTIME è stata rinominata in HC_V2K_SERVICE_MANAGER.

  • Le voci prestart e poststart nel file services-config.yaml vengono ora compilate automaticamente. Per saperne di più, consulta Utilizzare services-config.yaml.

  • Aggiunto il supporto al 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.

  • Aggiunto il supporto per il 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.

Passaggi successivi