Aggiornamenti immagine post-migrazione

Questa pagina descrive come eseguire operazioni di manutenzione per i carichi di lavoro sottoposti a migrazione.

Gli artefatti del contenitore che generi non sono destinati solo al deployment del workload sottoposto a migrazione nel cluster di destinazione. 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 Migrate to Containers.

Esamina il Dockerfile dell'immagine generata

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

Gli elementi del contenitore generati vengono creati tenendo presente l'integrazione della fase di compilazione della pipeline CI/CD, come descritto nel seguente diagramma:

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 ulteriori informazioni 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

Eventuali aggiornamenti o modifiche da applicare al livello di immagine del carico di lavoro sottoposto a migrazione devono essere applicati prima della direttiva ENTRYPOINT.

Nell'esempio seguente, aggiorniamo un'immagine container di cui è stata eseguita la migrazione da una VM SUSE Enterprise Linux (SLES) come origine utilizzando Cloud Build e la gcloud CLI. L'esempio seguente aggiorna il pacchetto openssh della distribuzione SLES.

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 workload di cui è stato eseguito il deployment. Questi aggiornamenti possono includere nuove funzionalità, miglioramenti o correzioni di bug.

Per aggiornare il livello software di Migrate to Containers, modifica il Dockerfile e cambia il tag della 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 file Dockerfile, dovrai creare una nuova versione dell'immagine del contenitore del workload e applicarla ai deployment esistenti per aggiornarla.

Passaggi successivi