5.2. サービスバインディング Operator
アプリケーション開発者は、ワークロードをビルドして接続するバッキングサービスへのアクセスが必要です。ワークロードをバッキングサービスに接続するのは、提案するシークレットにアクセスしてワークロードで消費する方法がサービスプロバイダーごとに異なるので、困難です。さらにワークロードのバインドおよびサービスのバッキングを手動で設定して保守する場合には、プロセスが煩雑で効率が悪く、エラーが発生しやすくなります。
サービスバインディング Operator を使用すると、アプリケーション開発者は、手作業でバインディング接続を設定する手順なしに、オペレーターが管理するバッキングサービスとワークロードを簡単にバインドできます。
5.2.1. サービスバインディングの用語
このセクションでは、サービスバインディングで使用される基本用語の概要を説明します。
サービスバインディング | サービスに関する情報をワークロードに提供するアクションの表現。たとえば、Java アプリケーションと必要なデータベース間で認証情報の交換を確立することなどです。 |
バッキングサービス | アプリケーションが通常の操作の一部としてネットワーク経由で使用するサービスまたはソフトウェア。たとえば、データベース、メッセージ、REST エンドポイント、イベントストリーム、アプリケーション、アプリケーションパフォーマンスモニター (APM)、またはハードウェアセキュリティーモジュール (HSM) が含まれます。 |
ワークロード (アプリケーション) | コンテナー内で実行されているプロセス。たとえば、Sprsh Boot アプリケーション、NodeJS Express アプリケーション、Ruby on Rails アプリケーションなどが含まれます。 |
バインディングデータ | クラスター内で他のリソースの動作を設定するのに使用するサービスに関する情報。たとえば、認証情報、接続の詳細、ボリュームマウント、またはシークレットが含まれます。 |
バインディング接続 | バインド可能なバッキングサービスとそのバッキングサービスを必要とするアプリケーションなど、接続されたコンポーネント間の相互作用を確立する接続。 |
5.2.2. サービスバインディング Operator
サービスバインディング Operator は、サービスバインディングのコントローラーおよび付随のカスタムリソース定義 (CRD) で設定されます。サービスバインディング Operator は、ワークロードおよびバッキングサービスのデータプレーンを管理します。サービスバインディングコントローラーは、バッキングサービスのコントロールプレーン提供のデータを読み取ります。次に、ServiceBinding
リソースで指定されるルールに従って、このデータをワークロードに追加します。
これにより、サービスバインディング Operator は、ワークロードとのバインディングデータを自動的に収集して共有することで、サービスはバッキングサービスまたは外部サービスを使用できます。このプロセスには、バッキングサービスをバインド可能にして、ワークロードとサービスをバインドすることが含まれます。
5.2.2.1. Operator の管理するサービスをバインド可能にする
サービスをバインド可能にするには、Operator プロバイダーは、ワークロードに必要なバインドデータを公開して Operator が提供するサービスとバインドする必要があります。バインディングデータは、バッキングサービスを管理する Operator の CRD で、アノテーションか、記述子として指定できます。
5.2.2.2. ワークロードをバッキングサービスとバインドする
サービスバインディング Operator を使用して、アプリケーション開発者はバインディング接続を確立する意思を宣言する必要があります。バッキングサービスを参照する S サービスバインディング
CR を作成する必要があります。このアクションにより、サービスバインディング Operator がトリガーされ、公開されたバインディングデータがワークロードにプロジェクションされます。サービスバインディング Operator は、宣言された意図を受けとり、バッキングサービスとワークロードをバインドします。
サービスバインディング Operator の CRD は以下の API をサポートします。
-
Service Binding:
binding.operators.coreos.com
API グループ Service Binding (Spec API テクノロジープレビュー):
servicebinding.io
API グループ重要servicebinding.io
API グループを備えた Service Binding (Spec API テクノロジープレビュー) は、テクノロジープレビュー機能のみでの提供です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
サービスバインディング Operator を使用すると、以下を行うことができます。
- ワークロードを Operator 管理のバッキングサービスとバインドします。
- バインディングデータの設定を自動化します。
- サービスオペレーターは簡単にサービスへのアクセスのプロビジョニングや管理が行えます。
- クラスター環境の不一致をなくす一貫性がある宣言型サービスバインディングメソッドを使用し、開発ライフサイクルを充実させます。
5.2.3. 主な特長
サービスからのバインディングデータの公開
- CRD、カスタムリソース (CR)、またはリソースに存在するアノテーションをベースにする。
- Operator Lifecycle Manager(OLM) 記述子にある記述子をベースにする。
ワークロードのプロジェクション
- ボリュームマウントを使用してバインディングデータをファイルとしてプロジェクションする。
- バインディングデータを環境変数としてプロジェクションする。
サービスバインディングオプション
- ワークロード namespace とは異なる namespace でバッキングサービスをバインドする。
- バインディングデータを特定のコンテナーワークロードにプロジェクションする。
- バッキングサービス CR が所有するリソースからバインディングデータを自動的に検出する。
- 公開されるバインディングデータからカスタムバインディングデータを作成する。
-
PodSpec
以外のワークロードリソースをサポートする。
セキュリティー
- ロールベースアクセス制御 (RBAC) をサポートする。