第1章 サービスバインディング
次の章では、Red Hat build of Quarkus バージョン 2.7.5 バージョン 2.7.5 で追加され、バージョン 3.8 では テクノロジープレビュー になっているサービスバインディングとワークロードプロジェクションを説明します。
一般的に、OpenShift のアプリケーションとサービスはデプロイ可能なワークロードとも呼ばれ、サービスの URL や認証情報などの追加情報を取得するために、他のサービスに接続する必要があります。
Service Binding Operator は、簡単に必要な情報を取得し、拡張ツール自体の使用に直接影響を与えたり決定したりすることなく、環境変数を通じてアプリケーションや quarkus-kubernetes-service-binding
拡張などのサービスバインディングツールで利用できるようにします。
Quarkus は、サービスをアプリケーションにバインドするための Service binding specification for Kubernetes をサポートします。
具体的には、Quarkus は仕様の ワークロードプロジェクション 部分を実装しているため、アプリケーションはデータベースやブローカーなどのサービスを最小限の設定でバインドできます。
利用可能なエクステンションのサービスバインディングを有効にするには、アプリケーションの依存関係に quarkus-kubernetes-service-binding
エクステンションを含めます。
サービスバインディングとワークロードプロジェクションには、次のエクステンションを使用できます。
-
quarkus-jdbc-mariadb
-
quarkus-jdbc-mssql
-
quarkus-jdbc-mysql
-
quarkus-jdbc-postgresql
-
quarkus-mongo-client
- テクノロジープレビュー -
quarkus-kafka-client
-
quarkus-smallrye-reactive-messaging-kafka
-
quarkus-reactive-mssql-client
- テクノロジープレビュー -
quarkus-reactive-mysql-client
-
quarkus-reactive-pg-client
-
1.1. ワークロードプロジェクション
ワークロードプロジェクションは、Kubernetes クラスターからサービスの設定を取得するプロセスです。この設定は、特定の規則に従うディレクトリー構造の形式をとり、マウントされたボリュームとしてアプリケーションまたはサービスに接続されます。
kubernetes-service-binding
エクステンションは、このディレクトリー構造を使用して設定ソースを作成します。これにより、データベースやメッセージブローカーなどの追加モジュールを設定できるようになります。
アプリケーション開発中にワークロードプロジェクションを使用して、アプリケーションのコードや設定を変更せずに、アプリケーションを開発データベースやローカルで実行される他のサービスに接続できます。
ディレクトリー構造がテストリソースに含まれ、結合テストに渡されるワークロードプロジェクションの例は、Kubernetes Service Binding datasource GitHub リポジトリーを参照してください。
k8s-sb
ディレクトリーは、すべてのサービスバインディングのルートです。この例では、
fruit-db
という名前データベース 1 つのみをバインドします。このバインディングデータベースには、データベースタイプとしてpostgresql
を指定するtype
ファイルがあります。ディレクトリー内の他のファイルは、接続を確立するために必要な情報を提供します。-
Red Hat build of Quarkus プロジェクトが、OpenShift Container Platform によって設定された
SERVICE_BINDING_ROOT
環境変数から情報を取得すると、ファイルシステム内に存在する生成された設定ファイルを見つけ、それを使用して設定ファイルの値を特定のエクステンションのプロパティーにマップできます。