Aggiornamenti immagine post-migrazione

In questa pagina viene descritto come eseguire le operazioni di manutenzione per per i carichi di lavoro migrati.

Gli artefatti del container che generi non sono destinate solo al deployment del carico di lavoro di cui è stata eseguita la migrazione nella destinazione in un cluster Kubernetes. Sono inoltre necessari per le operazioni di manutenzione del giorno 2, tra cui l'applicazione di aggiornamenti software del sistema operativo in modalità utente e delle applicazioni, patch di sicurezza, modifica delle configurazioni incorporate, aggiunta o sostituzione di file e per l'aggiornamento del software di runtime di Migrazione a Containers.

Esamina il Dockerfile dell'immagine generata

Le operazioni di manutenzione usano il Dockerfile generato e livello dell'immagine di sistema. Se combinati con il livello di runtime di Migrate to Containers, questi file possono essere incorporati in un'immagine container eseguibile.

Gli artefatti del container generati vengono creati con la build della pipeline CI/CD per l'integrazione delle fasi, come descritto nel diagramma seguente:

Flusso CI/CD automatizzato per il replatforming delle applicazioni utilizzando Migrate to Containers

Il Dockerfile è strutturato come costruzione a più fasi per semplificare la manutenzione e la manipolazione, evitando al contempo l'inflazione dell'immagine.

Ecco un esempio di Dockerfile generato:

FROM us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/service-manager-runtime:1.0.3 as service-manager-runtime

FROM scratch

# Tar containing data captured from the source VM
ADD vmFiles.tar.gz /

COPY --from=service-manager-runtime / /

ADD blocklist.yaml /.m4a/blocklist.yaml

ADD logs.yaml /code/config/logs/logsArtifact.yaml

ADD services-config.yaml /.m4a/

ADD tempfiles.yaml /.m4a/

# If you want to update parts of the image, add your commands here.
# For example:
# RUN apt-get update
# RUN apt-get install -y \
# package1=version \
# package2=version \
# package3=version
# RUN yum update
# RUN wget http://github.com

ENTRYPOINT ["/ko-app/service-manager-runtime", "start", "-c", "/.m4a/"]

Per saperne di più sulla creazione di immagini container con Cloud Build, consulta Creazione di immagini container.

Aggiorna il livello dei componenti del carico di lavoro sottoposto a migrazione

Per eventuali aggiornamenti o modifiche da applicare al carico di lavoro di cui è stata eseguita la migrazione devi applicarle prima dell'istruzione ENTRYPOINT.

Nell'esempio seguente, aggiorniamo un'immagine container migrata da un SUSE VM Enterprise Linux (SLES) come origine, utilizzando Cloud Build e con gcloud CLI. L'esempio seguente aggiorna la distribuzione SLES openssh pacchetto.

Dockerfile aggiornato:

FROM us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/service-manager-runtime:1.0.3 as service-manager-runtime

FROM scratch

# Tar containing data captured from the source VM
ADD vmFiles.tar.gz /

COPY --from=service-manager-runtime / /

ADD blocklist.yaml /.m4a/blocklist.yaml

ADD logs.yaml /code/config/logs/logsArtifact.yaml

ADD services-config.yaml /.m4a/

ADD tempfiles.yaml  /.m4a/

# If you want to update parts of the image, add your commands here.
# For example:
# RUN apt-get update
# RUN apt-get install -y \
#       package1=version \
#       package2=version \
#       package3=version
# RUN yum update
# RUN wget http://github.com

RUN zypper ref -s && zypper -n in openssh

ENTRYPOINT ["/ko-app/service-manager-runtime", "start", "-c", "/.m4a/"]

Quindi, esegui il deployment dell'immagine aggiornata nel cluster.

Aggiorna la versione del livello Migrate to Containers

Quando vengono rilasciate nuove versioni del software Migrate to Containers, puoi actualizare la versione del software nelle immagini del carico di lavoro di cui è stato eseguito il deployment. Tali aggiornamenti potrebbero includono nuove funzioni, miglioramenti o correzioni di bug.

Per aggiornare il livello software Migrate to Containers, modifica Dockerfile e modificare il tag di versione con la versione aggiornata che vuoi applicare.

Utilizzando l'esempio precedente, puoi aggiornare la versione da 1.0.3 alla versione ipotetica 1.0.4 modificando la direttiva FROM in modo che sia la seguente:

FROM us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/service-manager-runtime:1.0.4 as service-manager-runtime

Dopo aver aggiornato il Dockerfile, dovrai creare un nuovo container del carico di lavoro dell'immagine e applicarla ai deployment esistenti per aggiornarla.

Passaggi successivi