1.5. 自動サービスバインディング


quarkus-kubernetes-service-binding エクステンションは、アプリケーションが利用可能なバインド可能な Operator によって提供される外部サービスにアクセスする必要があることを検知した後に、ServiceBinding リソースを自動的に生成できます。

注記

自動サービスバインディングは、限られた数のサービスタイプに対して生成できます。本章では、Kubernetes および Quarkus サービスの確立された用語と一致するように、これらのサービスタイプを種類として説明します。

Expand
表1.1 自動サービスバインディングをサポートする Operator

サービスバインディングのタイプ

Operator

API バージョン

Kind

postgresql

CrunchyData Postgres

postgres-operator.crunchydata.com/v1beta1

PostgresCluster

mysql

Percona XtraDB Cluster

pxc.percona.com/v1-9-0

PerconaXtraDBCluster

mongo

Percona MongoDB

psmdb.percona.com/v1-9-0

PerconaServerMongoDB

重要
  • MongoDB Operator の Red Hat ビルドの Quarkus 2.13 のサポートはテクノロジープレビューとして提供され、クライアントにのみ適用されます。
  • Red Hat ビルドの Quarkus 2.13 でサポートされる Panache エクステンションのリストは、Quarkus application configurator ページを参照してください。

1.5.1. 自動データソースバインディング

従来のデータベースでは、データソースが次のように設定されている場合に自動バインドが開始されます。

quarkus.datasource.db-kind=postgresql
Copy to Clipboard Toggle word wrap

以前の設定は、quarkus-datasourcequarkus-jdbc-postgresqlquarkus-kubernetes、および quarkus-kubernetes-service-binding プロパティーが含まれると、postgresql データベースタイプの ServiceBinding リソースが生成されます。

生成された ServiceBinding リソースは、使用している postgresql Operator と一致する Operator リソースの apiVersion プロパティーと kind プロパティーを使用して、サービスまたはリソースをアプリケーションにバインドします。

データベースサービスの名前を指定しない場合は、db-kind プロパティーの値がデフォルトの名前として使用されます。

 services:
 - apiVersion: postgres-operator.crunchydata.com/v1beta1
   kind: PostgresCluster
   name: postgresql
Copy to Clipboard Toggle word wrap

データソースの名前を次のように指定します。

quarkus.datasource.fruits-db.db-kind=postgresql
Copy to Clipboard Toggle word wrap

生成された ServiceBinding 内の service が、次のように表示されます。

 services:
 - apiVersion: postgres-operator.crunchydata.com/v1beta1
   kind: PostgresCluster
   name: fruits-db
Copy to Clipboard Toggle word wrap

同様に、mysql を使用する場合はデータソースの名前を次のように指定できます。

quarkus.datasource.fruits-db.db-kind=mysql
Copy to Clipboard Toggle word wrap

生成された service には以下が含まれます。

 services:
 - apiVersion: pxc.percona.com/v1-9-0
   kind: PerconaXtraDBCluster
   name: fruits-db
Copy to Clipboard Toggle word wrap

1.5.1.1. 自動サービスバインディングのカスタマイズ

自動サービスバインディング機能は、できるだけ多くの手動設定を排除するために開発されましたが、生成された ServiceBinding リソースを手動で変更する必要がある場合があります。生成プロセスは、アプリケーションから抽出された情報と、サポートされている Operator の知識だけに依存しており、クラスターにデプロイされる内容を反映していない可能性があります。生成されたリソースは、一般的なサービスの種類と、次のような不一致を防ぐために開発された一連の規則に対して、サポートされているバインド可能なオペレーターに関する純粋な知識に基づいています。

  • ターゲットリソース名がデータソース名と一致しない。
  • そのサービスの種類についてデフォルトの Operator ではなく、特定の Operator を使用する必要があります。
  • ユーザーがデフォルトまたは latest 以外のバージョンを使用する必要がある場合に発生するバージョンの競合

表記規則

  • ターゲットリソースの座標は、Operator のタイプとサービスの種類に基づいて決定されます。
  • ターゲットリソース名はデフォルトで、postgresqlmysqlmongo などのサービスの種類と一致するように設定されます。
  • 名前付きデータソースの場合は、データソースの名前が使用されます。
  • 名前付きの mongo クライアントでは、クライアントの名前が使用されます。

例 1: 名前の不一致

生成された ServiceBinding を変更して名前の不一致を修正する必要がある場合は、quarkus.kubernetes-service-binding.services プロパティーを使用して、サービス名をサービスキーとして指定します。

サービスキー は通常、サービスの名前(データソースの名前、mongo クライアントの名前など)です。この値が利用できない場合は、postgresqlmysql mongo などのデータソースタイプが代わりに使用されます。

サービスタイプ間の名前の競合を避けるには、接頭辞として service key の前に特定のデータソースタイプ (postgresql-<person> など) を付けます。

次の例は、PostgresCluster リソースの apiVersion プロパティーをカスタマイズする方法を示しています。

quarkus.datasource.db-kind=postgresql
quarkus.kubernetes-service-binding.services.postgresql.api-version=postgres-operator.crunchydata.com/v1beta2
Copy to Clipboard Toggle word wrap

例 2: データソースのカスタム名の適用

例 1 では、db-kind(postgresql)がサービスキーとして使用されていた。この例では、データソースの名前が規則に従って付けられているため、データソース名(fruits-db)が代わりに使用されます。

次の例は、名前付きデータソースの場合はデータソース名がターゲットリソースの名前として使用されることを示しています。

quarkus.datasource.fruits-db.db-kind=postgresql
Copy to Clipboard Toggle word wrap

これは、次の設定と同じ効果があります。

quarkus.kubernetes-service-binding.services.fruits-db.api-version=postgres-operator.crunchydata.com/v1beta1
quarkus.kubernetes-service-binding.services.fruits-db.kind=PostgresCluster
quarkus.kubernetes-service-binding.services.fruits-db.name=fruits-db
Copy to Clipboard Toggle word wrap

改訂日時: 2024-04-23

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat