Mettre à jour des images post-migration
Cette page explique comment effectuer des opérations de maintenance pour vos charges de travail migrées.
Les artefacts de conteneur que vous générez ne sont pas destinés qu'au déploiement de la charge migrée dans le cluster cible. Vous en avez également besoin pour les opérations de maintenance du jour 2, y compris pour appliquer des mises à jour logicielles d'applications et d'OS de mode utilisateur, des correctifs de sécurité, éditer des configurations intégrées, ajouter ou remplacer des fichiers et mettre à jour le logiciel d'exécution Migrate to Containers.
Vérifier le fichier Dockerfile d'image généré
Les opérations de maintenance utilisent le fichier Dockerfile généré et la couche d'image système capturée. Lorsqu'ils sont associés à la couche d'exécution Migrate to Containers, ces fichiers peuvent être intégrés dans une image de conteneur exécutable.
Les artefacts de conteneur générés sont créés en tenant compte de l'intégration de la phase de conception du pipeline CI/CD, comme indiqué dans le schéma suivant:
Le fichier Dockerfile est structuré sous la forme d'une compilation en plusieurs étapes, afin de faciliter la maintenance et la manipulation, tout en empêchant le gonflement de l'image.
Voici un exemple de fichier Dockerfile généré :
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/"]
Pour en savoir plus sur la création d'images de conteneurs avec Cloud Build, voir Créer des images de conteneurs.
Mettre à jour la couche des composants de charge de travail migrés
Pour toutes les mises à jour ou modifications que vous souhaitez appliquer à la couche d'image de charge de travail migrée, vous devez les appliquer avant la directive ENTRYPOINT
.
Dans l'exemple suivant, nous mettons à jour une image de conteneur migrée depuis une VM SUSE Enterprise Linux (SLES) en tant que source, à l'aide de Cloud Build et de gcloud CLI. L'exemple suivant met à jour le package openssh
de la distribution SLES.
Fichier Dockerfile mis à jour :
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/"]
Déployez ensuite l'image mise à jour sur le cluster.
Mettre à jour la version de la couche Migrate to Containers
Lorsque de nouvelles versions du logiciel Migrate to Containers sont publiées, vous pouvez les mettre à jour dans les images de charge de travail déployées. Ces mises à jour peuvent inclure de nouvelles fonctionnalités, des améliorations ou des corrections de bugs.
Pour mettre à jour la couche logicielle Migrate to Containers, modifiez le fichier Dockerfile et remplacez le tag de version par la version mise à jour que vous souhaitez appliquer.
À l'aide de l'exemple précédent, vous pouvez passer de la version 1.0.3 à la version 1.0.4 hypothétique en modifiant la directive FROM
comme suit:
FROM us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/service-manager-runtime:1.0.4 as service-manager-runtime
Après avoir mis à jour le fichier Dockerfile, vous devez créer une nouvelle version de l'image du conteneur de la charge de travail et l'appliquer aux déploiements existants pour les mettre à jour.
Étape suivante
- Découvrez comment surveiller les charges de travail migrées.