新しい拡張ランタイム
Migrate to Containers の元の Linux サービス マネージャーは、sysv init
と systemd
を使用していました。簡素化された Linux サービス マネージャーは、簡素化されたコンテナに適した代替手段に置き換えられます。
この簡素化された Linux サービス マネージャーでは、移行されたコンテナ ワークロードを次の場所にデプロイできる機能が追加されます。
GKE Autopilot クラスタ
Cloud Run
簡素化された Linux サービス マネージャーでは、Kubernetes プラグインとの互換性の問題も解決されます。たとえば、簡略化された Linux サービス マネージャーでは、deployment_spec.yaml
ファイルで /sys/fs/cgroup
の hostpath
を定義したり、特権コンテナを作成する必要がなくなります。
始める前に
- 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 にデプロイできます。処理クラスタとデプロイ クラスタの両方に同じクラスタを使用する場合があります。デプロイ クラスタで 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 サービス マネージャーは、次のタイプのワークロードで最適に動作します。
画像 | オペレーティング システム | サービス |
---|---|---|
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 システムとして使用する場合は、次の制限事項に注意してください。
simple
、exec
、notify
のsystemd
サービスタイプは、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 に書き込まれるログデータのカスタマイズをご覧ください。