フィーチャー ゲートとは何か?なぜフィーチャー ゲートが必要なのか?
Google Distributed Cloud(GDC)エアギャップのお客様は、一連のコンプライアンス要件を満たすために認定プロセスを完了する必要があります。このようなお客様は、本番環境のワークロードで有効にする前に、サードパーティによる認定審査を受ける必要がある特定の機能を備えている場合があります。
一部の機能は、最終的なリリースまでに複数回リリースする必要がある場合があり、安定して準備が整うまではすべてのお客様に公開すべきではありません。ただし、他のユーザーは、Google と協力して未リリースの機能で概念実証テストを実施したい場合があります。
GDC には、機能が準備できるまで保持するためのいくつかのコンセプトが導入されています。
デプロイ機能レベルのしきい値(デプロイしきい値): ユニバースで使用する最小レベルを定義します。これはブートストラップ時に設定されます。
FeatureGateリソース: 機能ごとのデフォルトの成熟度レベルを追跡する最上位の構成を定義します。このリソースは、オペレーターが追加した機能のオーバーライドも追跡します。機能レベル: 特定の機能が設定されている成熟度レベルを追跡します。機能は、デプロイしきい値以上の場合に有効になります。
機能レベルの有効な値は、昇順で DEV、TEST、PREVIEW、PRODUCTION、ACCREDITED です。
たとえば、デプロイしきい値が PRODUCTION に設定されている場合、機能レベル ACCREDITED または PRODUCTION で設定された機能が有効になります。デプロイのしきい値が ACCREDITED に設定されている場合、レベル ACCREDITED の機能のみが有効になります。
機能ゲートやレベルは、一般消費者向け製品でよく見られる A/B テストとは異なります。フィーチャー ゲートは、GDC ユニバース全体でオンまたはオフになります。機能ゲートは、認定審査が完了した後にオンになり、そのままオンになるように設計されています。これは、GDC ゾーンをカスタマイズするための構成ではありません。
認定要件のあるデプロイでは、組織ごとに独自の FeatureGate 構成が必要です。これは、そのバージョンまたは以前のバージョンで認定されたものと一致している必要があります。
機能レベルの使用状況
フィーチャー ゲートとレベルの構成に関連するカスタム リソース定義は 3 つあります。
Stage: クラスタのデプロイしきい値を定義します。デプロイの最小ステージしきい値を保存します。これは、フィーチャー ゲートと比較してフィーチャーの有効化を判断するために使用されます。FeatureGate: 各機能のデフォルト ステージを保存し、オーバーライドを追跡します。SubcomponentOverride: 機能ゲートシステムで使用され、機能のデフォルトのステージをオーバーライドして、ゾーンで機能を有効にします。他のコンテキストで別の場所に表示されます。
ステージ値は、各クラスタに保存されているデプロイの最小しきい値です。これはブートストラップ時にのみ設定する必要があり、ブートストラップ後に変更することはできません。特徴ステージの値が同等以上のすべての特徴が有効になります。オペレーターが機能を有効または無効にする主な方法はいくつかあります。すべての機能ゲートに適用できるわけではありません。
- ブートストラップ時にステージを設定する: 詳細については、デプロイ全体の機能ステージのしきい値を設定する手順をご覧ください。
- ルート管理者クラスタで Infrastructure as Code(IaC)を使用して機能ステージを変更する: ワークフローとディレクトリ構造の詳細については、IAC-R0004 をご覧ください。操作可能なコンポーネントのディレクトリ内のファイルを変更します。たとえば、
dbs操作可能なコンポーネントの機能であるPGMigration機能を変更するには、infrastructure/zonal/zones/ZONE_NAME/root-admin/components/dbs/dbs-common-override.yamlファイルを更新する必要があります。 - 組織クラスタで IaC を使用して機能ステージを変更する: 組織のタイプに応じて、クラスタはインフラストラクチャ クラスタまたは組織管理クラスタのいずれかになります。ワークフローとディレクトリ構造の詳細については、IAC-R0004 をご覧ください。操作可能なコンポーネントのディレクトリ内のファイルを変更します。たとえば、
dbs操作可能なコンポーネントの機能であるPGMigration機能を変更するには、infrastructure/zonal/zones/ZONE_NAME/ORG_NAME/components/dbs/dbs-sub-override.yamlファイルを更新する必要があります。 - GDC のアップグレード: リリースごとに、新しい成熟度評価に基づいて、機能ごとのデフォルトのステージ値が変更される可能性があります。デフォルト値は、特定の機能に対して IaC で設定されているオーバーライドには影響しません。
フィーチャー ゲートはアップグレードに似ています。イメージやバージョンは変更されませんが、以前のアップグレードで追加された機能を有効にするためのアップグレードの最終ステップとなります。この機能の有効化は、認定に要する時間に応じて、最初のアップグレードから数週間または数か月後に行われることがあります。認定が進行中の間も、修正とパッチを定期的にアップグレードして取り込みます。
IaC プロセスに従うなどして機能がオーバーライドされると、GDC は reconciler をトリガーして、その機能に依存するすべての Pod を再起動します。一部の変更ではダウンタイムが必要になるため、この操作はメンテナンスの時間枠内で行う必要があります。
一部の機能には、有効にする必要があるタイミングや、オーバーライドの適用後に確認すべき事項を説明するサービス マニュアルのランブックが付属しています。これは、Pod の再起動以上の処理が必要な場合や、他の機能が有効になった後に実行する必要がある場合に使用します。
これらの機能ランブックは、関連する操作可能なコンポーネントに付属のサービス マニュアルに記載されています。
有効な機能ゲートのリストは、機能のステージのドキュメントで確認できます。