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:
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
- Scopri come monitorare i carichi di lavoro migrati.