移行後のイメージの更新
このページでは、移行されたワークロードのメンテナンス オペレーションを行う方法について説明します。
生成するコンテナ アーティファクトは、移行したワークロードをターゲット クラスタにデプロイするためだけのものではありません。また、アプリケーションやユーザーモードの OS ソフトウェアの更新、セキュリティ パッチの適用、埋め込み構成の編集、ファイルの追加や置き換え、Migrate to Containers ランタイム ソフトウェアの更新など、2 日目のメンテナンス オペレーションにも必要です。
生成されたイメージ 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 を更新した後、新しいワークロード コンテナ イメージのバージョンをビルドし、既存のデプロイメントに適用して更新します。
次のステップ
- 移行したワークロードをモニタリングする方法を確認する。