Image-Updates nach der Migration
Auf dieser Seite wird beschrieben, wie Sie Wartungstätigkeiten für Ihre migrierten Arbeitslasten ausführen.
Die Containerartefakte, die Sie generieren, sind nicht nur für die Bereitstellung der migrierten Arbeitslast im Zielcluster gedacht. Sie benötigen sie auch für nachgeordnete Wartungstätigkeiten. Dazu gehören Softwareupdates 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.
Generiertes Image-Dockerfile prüfen
Wartungstätigkeiten nutzen das generierte Dockerfile und die erfasste Systemimage-Ebene. In Kombination mit der Laufzeitebene von Migrate to Containers können diese Dateien in ein ausführbares Container-Image eingefügt 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/"]
Stellen Sie dann das aktualisierte Image im Cluster bereit.
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. Diese Updates können neue Funktionen, 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 Ebene der Migrate to Containers-Software zu aktualisieren.
Mithilfe des vorstehenden Beispiels können Sie die Version von 1.0.3 auf die hypothetische Version 1.0.4 aktualisieren. Ändern Sie dazu die FROM
-Anweisung so:
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 diese zu aktualisieren.