Image-Updates nach der Migration
Auf dieser Seite wird beschrieben, wie Sie Wartungsvorgänge für Ihre migrierten Arbeitslasten ausführen.
Die von Ihnen generierten Containerartefakte sind nicht nur für die Bereitstellung der migrierten Arbeitslast im Zielcluster gedacht. Sie sind auch für Wartungsvorgänge am Tag 2 vorgesehen. Das schließt Software-Updates für Anwendungsbetriebssysteme sowie Betriebssysteme im Nutzermodus, Sicherheitspatches, das Bearbeiten von eingebetteten Konfigurationen, das Hinzufügen oder Ersetzen von Dateien und das Aktualisieren der Runtime-Software von Migrate to Containers ein.
Generiertes Image-Dockerfile prüfen
Für Wartungsvorgänge werden das generierte Dockerfile und die erfasste System-Image-Ebene verwendet. In Kombination mit der Laufzeitebene von "Migrate to Containers" können diese Dateien in ein ausführbares Container-Image erstellt werden.
Bei der Erzeugung der Containerartefakte wurde die Einbindung der CI-/CD-Pipelineerstellung berücksichtigt, wie im folgenden Diagramm beschrieben:
Das Dockerfile wird als mehrstufiger Build strukturiert. So werden die Wartung und Bearbeitung erleichtert, ohne das Image zu überlasten.
Beispiel für ein generiertes Dockerfile:
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/"]
Weitere Informationen zum Erstellen von Container-Images mit Cloud Build finden Sie unter Container-Images erstellen.
Ebene der migrierten Arbeitslastkomponenten aktualisieren
Updates oder Änderungen, die Sie auf der Image-Ebene der migrierten Arbeitslast anwenden möchten, sollten vor der ENTRYPOINT
-Anweisung übernommen werden.
Im folgenden Beispiel aktualisieren wir ein Container-Image, das von einer SLES-VM (SUSE Enterprise Linux) als Quelle migriert wurde, mithilfe von Cloud Build und der gcloud CLI. Im folgenden Beispiel wird das SLES-Distributionspaket openssh
aktualisiert.
Aktualisiertes Dockerfile:
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/"]
Bringen Sie das aktualisierte Image dann im Cluster zum Einsatz.
Version der Migrate to Containers-Ebene aktualisieren
Wenn neue Versionen der Migrate to Containers-Software veröffentlicht werden, können Sie die Softwareversion in den bereitgestellten Arbeitslast-Images aktualisieren. Das kann neue Features, Verbesserungen oder Fehlerkorrekturen beinhalten.
Bearbeiten Sie das Dockerfile und ändern Sie das Versions-Tag in die aktualisierte Version, die Sie anwenden möchten, um die Software-Ebene von Migrate to Containers zu aktualisieren.
Mithilfe des vorherigen Beispiels können Sie die Version von 1.0.3 auf die hypothetische Version 1.0.4 aktualisieren, indem Sie die FROM
-Anweisung so ändern:
FROM us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/service-manager-runtime:1.0.4 as service-manager-runtime
Nachdem Sie das Dockerfile aktualisiert haben, müssen Sie eine neue Image-Version des Arbeitslastcontainers erstellen und auf vorhandene Bereitstellungen anwenden, um sie zu aktualisieren.