移行後のイメージの更新
このページでは、移行したワークロードのメンテナンス オペレーションを行う方法について説明します。
生成するコンテナ アーティファクトは、移行するワークロードをターゲット クラスタにデプロイするためだけのものではありません。アプリケーション ソフトウェア アップデート、ユーザーモード OS ソフトウェア アップデート、セキュリティ パッチの適用や、埋め込み構成の編集、ファイルの追加や置換などの Day 2 のメンテナンス オペレーションのほか、Migrate to Containers ランタイム ソフトウェアの更新にも必要です。
生成されたイメージの Dockerfile を確認する
メンテナンス オペレーションでは、生成された Dockerfile とキャプチャされたシステム イメージレイヤが使用されます。Migrate to Containers ランタイム レイヤと組み合わせることで、これらのファイルを、実行可能なコンテナ イメージに組み込むことができます。
生成されたコンテナ アーティファクトは、次の図に示すように、CI / CD パイプラインのビルドフェーズ統合を考慮して作成されています。
Dockerfile はマルチステージ ビルドとして構成されているため、イメージの拡張を抑えながらメンテナンスや操作が容易に行えます。
生成された 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/"]
Cloud Build を使用したコンテナ イメージのビルドの詳細については、コンテナ イメージのビルドをご覧ください。
移行済みワークロード コンポーネント レイヤを更新する
移行したワークロード イメージ レイヤを更新、変更する場合は、ENTRYPOINT
ディレクティブの前に適用してください。
次の例では、Cloud Build と gcloud CLI を使用して、SUSE Enterprise Linux(SLES)VM から移行されたコンテナ イメージを更新します。また、次の例では、SLES ディストリビューションの openssh
パッケージの更新も行います。
更新された 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/"]
次に、更新されたイメージをクラスタにデプロイします。
Migrate to Containers レイヤのバージョンを更新する
Migrate to Containers ソフトウェアの新しいバージョンがリリースされると、デプロイ済みのワークロード イメージでそのソフトウェアのバージョンを更新できます。更新には、新しい機能、追加機能、バグ修正などがあります。
Migrate to Containers ソフトウェア レイヤを更新するには、Dockerfile を編集して、バージョンタグを、適用する更新バージョンに変更します。
先ほどの例を使って、FROM
ディレクティブを以下のように編集することで、1.0.3 から架空のバージョン 1.0.4 に更新できます。
FROM us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/service-manager-runtime:1.0.4 as service-manager-runtime
Dockerfile を更新した後、新しいワークロード コンテナ イメージのバージョンをビルドし、既存のデプロイメントに適用して更新します。
次のステップ
- 移行したワークロードのモニタリング方法を確認する。