新しい拡張ランタイム

Migrate to Containers の元の Linux サービス マネージャーは、sysv initsystemd を使用していました。簡素化された Linux サービス マネージャーは、簡素化されたコンテナに適した代替手段に置き換えられます。

この簡素化された Linux サービス マネージャーでは、移行されたコンテナ ワークロードを次の場所にデプロイできる機能が追加されます。

  • GKE Autopilot クラスタ

  • Cloud Run

簡素化された Linux サービス マネージャーでは、Kubernetes プラグインとの互換性の問題も解決されます。たとえば、簡略化された Linux サービス マネージャーでは、deployment_spec.yaml ファイルで /sys/fs/cgrouphostpath を定義したり、特権コンテナを作成する必要がなくなります。

始める前に

  • Migrate to Containers には、コンテナに移行する VM ワークロードの適合性を判定するために、VM ワークロード上で実行するツールが用意されています。詳細については、適合性評価ツールの使用をご覧ください。

GKE Autopilot クラスタについて

Autopilot は、Google Kubernetes Engine(GKE)における運用モードです。Autopilot は、クラスタ管理の運用コストを削減し、本番環境用にクラスタを最適化して、ワークロードの可用性を高めるように設計されています。Autopilot モードでは、GKE がノードやノードプールなどのクラスタの基盤となるインフラストラクチャをプロビジョニングして管理します。これにより、自動化された環境で最適化されたクラスタを使用できます。

詳細については、Autopilot の概要をご覧ください。

Cloud Run について

Cloud Run はマネージド型のコンピューティング プラットフォームで、ウェブ リクエストまたは Pub/Sub イベント経由で呼び出し可能なステートレス コンテナを実行できます。簡素化された Linux サービス マネージャーを使用すると、移行したコンテナ ワークロードを Cloud Run にデプロイできます。

Migrate to Containers と GKE での Workload Identity の使用

Migrate to Containers と GKE を使用すると、移行したワークロードをベアメタル版 Google Distributed Cloud Virtual にデプロイできます。処理クラスタとデプロイ クラスタの両方に同じクラスタを使用する場合があります。デプロイ クラスタで Workload Identity を有効にしている場合は、Migrate to Containers と GKE をサポートするようにデプロイ環境を構成する必要があります。

また、init プロセスの一部として開始されたサービスが、Workload Identity 用に正しく構成されていることを確認する必要があります。実行する手順は、クラスタのサービス マネージャーによって異なります。構成手順については、Linux ワークロードをターゲット クラスタにデプロイするをご覧ください。

既存のランタイムからの変更

簡素化された Linux サービス マネージャーを使用するには、既存のランタイムから次の変更事項と制限事項に注意してください。

新しく追加された services-config.yaml アーティファクト ファイル

簡略化された Linux サービス マネージャーを有効にすると、移行アーティファクトを生成するときに、Migrate to Containers によって新しいアーティファクト ファイル services-config.yaml が作成されます。このファイルを使用して、デプロイされたコンテナでのアプリケーションの初期化を制御します。詳細については、services-config.yaml の使用をご覧ください。

readiness プローブ

現在のランタイムを使用する場合、Migrate to Containers は deployment_spec.yaml ファイルに readiness プローブを追加します。簡略化された Linux サービス マネージャーを有効にすると、readiness プローブは追加されません。

readiness プローブを追加する場合は、HTTP readiness プローブを使用することをおすすめします。詳細については、readiness プローブを定義するをご覧ください。

        readinessProbe:
          exec:
            command:
            - /.m4a/gamma status

ただし、このプローブでは偽陰性の結果が返されることがあります。

Syslog のサポート

簡略化された Linux サービス マネージャーでは、/dev/log に Unix ソケットが作成されて、Syslog がサポートされます。簡略化された Linux サービス マネージャーでは、Kubernetes によってコンテナログとして記録されるように、これらのログメッセージが stdout に転送されます。

制限事項

簡易化された Linux サービス マネージャーを使用する場合は、次の制限事項に注意してください。

ワークロードの制限事項

簡素化された Linux サービス マネージャーは、次のタイプのワークロードで最適に動作します。

画像 OS サービス
Compute Engine Ubuntu 12.04 Ubuntu 12.04 apache2
Compute Engine Ubuntu 14.04 Ubuntu 14.04 redis、mysql、apache2
Compute Engine Ubuntu 18.04 Ubuntu 18.04 apache2、mysql、redis-server、tomcat
RHEL SAP 7.4 Red Hat httpd
Bitnami Ubuntu bitnami
Compute Engine Memcached のイメージ Debian 10.9 bitnami
Compute Engine Marketplace の Wordpress Debian 9.13 apache2、mysql、php
Compute Engine Marketplace の Tomcat Debian 9.13 tomcat8
Compute Engine Marketplace の Jenkins Debian 10.9 apache2、jenkins
Compute Engine Marketplace の moodle Debian 9.13 apache2、mysql、php7.4 fpm、phpsessionclean
Compute Engine Marketplace の Odoo Debian 9.13 odoo、nginx
Compute Engine Marketplace の Opencart Debian 9.13 apache2、mysql、php7.0 fpm、supervisor、mariadb
Compute Engine Marketplace の Erpnext Debian 10.9 nginx、redis-server、supervisor、mariadb
Compute Engine Marketplace の wildfly Debian 10.10 wildfly、cron

systemd の制限事項

systemd を init システムとして使用する場合は、次の制限事項に注意してください。

  • simpleexecnotifysystemd サービスタイプは、exec サービスとして扱われます。つまり、exec が成功した場合、サービスは開始されたとみなされます。

  • 通知ソケットは sd_notify()READY=1 メッセージでのみサポートされます。

    必要に応じて、他の準備チェックを用意することもできます。たとえば、HTTP チェックや他のタイプのチェックを行います。

  • ソケットタイプのユニット ファイルはサポートされていません。ソケットは作成されず、環境変数も作成されません。

バージョン 1.9.0 の更新

バージョン 1.9.0 の簡素化された Linux サービス マネージャーには、以下の更新が含まれています。

  • Linux サービス マネージャーは、一般提供でリリースされており、公開プレビューではもうリリースされていません。

  • Autopilot をサポートする既存のコンテナ ワークロードを変換する手順が変更されました。既存の移行用に Dockerfile と deployment_spec.yaml ファイルの両方を編集して変換する必要があります。

  • config.yaml ファイルの名前が services-config.yaml に変更されました。

バージョン 1.8.1 の更新

簡略化された Linux サービス マネージャーは、当初、Migrate to Containers 1.8 の一部として公開プレビューでリリースされました。バージョン 1.8.1 の簡素化された Linux サービス マネージャーには、以下の更新が含まれています。

  • 簡素化された Linux サービス マネージャーを有効にするために、移行計画にアノテーションを設定する必要がなくなりました。代わりに、v2kServiceManager を設定します。詳細については、Autopilot クラスタにコンテナをデプロイするをご覧ください。

  • 環境変数 HC_GAMMA_RUNTIME の名前が HC_V2K_SERVICE_MANAGER に変更されました。

  • services-config.yaml ファイルの prestart エントリと poststart エントリが自動入力されるようになりました。詳細については、services-config.yaml の使用をご覧ください。

  • グローバル レベルまたはアプリケーション レベルで環境変数を指定できるサポートが services-config.yaml ファイルに追加されました。詳細については、services-config.yaml の使用をご覧ください。

  • Cloud Logging に書き込まれるログデータをカスタマイズできるようにロギング サポートが追加されました。詳細については、Cloud Logging に書き込まれるログデータのカスタマイズをご覧ください。

次のステップ