フィーチャー ゲートを管理する

フィーチャー ゲートとは何か?なぜフィーチャー ゲートが必要なのか?

一部の Google Distributed Cloud(GDC)エアギャップ アプライアンスのお客様は、一連のコンプライアンス要件を満たすために認定プロセスを完了する必要があります。このようなお客様は、本番環境のワークロードで有効にする前に、サードパーティによる認定審査を受ける必要がある特定の機能を備えている場合があります。

一部の機能は、最終的なリリースまでに複数回リリースする必要がある場合があり、安定して準備が整うまではすべてのお客様に公開すべきではありません。ただし、他のユーザーは、Google と協力して未リリースの機能で概念実証テストを実施したい場合があります。

GDC には、機能が準備できるまで保持するためのいくつかのコンセプトが導入されています。

  • デプロイ機能レベルのしきい値(デプロイしきい値): デバイスで使用する最小レベルを定義します。これはブートストラップ時に設定されます。

  • FeatureGate リソース: 機能ごとのデフォルトの成熟度レベルを追跡する最上位の構成を定義します。このリソースは、オペレーターが追加した機能のオーバーライドも追跡します。

  • 機能レベル: 特定の機能が設定されている成熟度レベルを追跡します。機能は、デプロイしきい値以上の場合に有効になります。

機能レベルの有効な値は、昇順で DEVTESTPREVIEWPRODUCTIONACCREDITED です。

たとえば、デプロイしきい値が PRODUCTION に設定されている場合、機能レベル ACCREDITED または PRODUCTION で設定された機能が有効になります。デプロイのしきい値が ACCREDITED に設定されている場合、レベル ACCREDITED の機能のみが有効になります。

機能ゲートやレベルは、一般消費者向け製品でよく見られる A/B テストとは異なります。フィーチャー ゲートは、GDC デバイス全体でオンまたはオフになります。機能ゲートは、認定審査が完了した後にオンになり、そのままオンになるように設計されています。

認定要件のあるデプロイには、独自の FeatureGate 構成が必要です。この構成は、そのバージョンまたは以前のバージョンで認定されたものと一致している必要があります。

機能レベルの使用状況

フィーチャー ゲートとレベルの構成に関連するカスタム リソース定義は 3 つあります。

  • Stage: クラスタのデプロイしきい値を定義します。デプロイの最小ステージしきい値を保存します。これは、フィーチャー ゲートと比較してフィーチャーの有効化を判断するために使用されます。
  • FeatureGate: 各機能のデフォルト ステージを保存し、オーバーライドを追跡します。
  • SubcomponentOverride: 機能ゲートシステムが機能のデフォルト ステージをオーバーライドして有効にするために使用されます。他のコンテキストで別の場所に表示されます。

ステージ値は、各クラスタに保存されているデプロイの最小しきい値です。これはブートストラップ時にのみ設定する必要があり、ブートストラップ後に変更することはできません。特徴ステージの値が同等以上のすべての特徴が有効になります。機能ゲートのデフォルトのステージをオーバーライドするには、OOPS-P0072 をご覧ください。

フィーチャー ゲートはアップグレードに似ています。イメージやバージョンは変更されませんが、以前のアップグレードで追加された機能を有効にするためのアップグレードの最終ステップとなります。この機能の有効化は、認定に要する時間に応じて、最初のアップグレードから数週間または数か月後に行われることがあります。認定が進行中の間も、修正とパッチを定期的にアップグレードして取り込みます。

機能がオーバーライドされると、GDC は reconciler をトリガーして、その機能に依存するすべての Pod を再起動します。一部の変更ではダウンタイムが必要になるため、この操作はメンテナンスの時間枠内で行う必要があります。

一部の機能には、有効にする必要があるタイミングや、オーバーライドの適用後に確認すべき事項を説明するサービス マニュアルのランブックが付属しています。これは、Pod の再起動以上の処理が必要な場合や、他の機能が有効になった後に実行する必要がある場合に使用します。

これらの機能ランブックは、関連する操作可能なコンポーネントに付属のサービス マニュアルに記載されています。

有効な機能ゲートのリストは、機能のステージのドキュメントで確認できます。