5.9. 開発者パースペクティブを使用したアプリケーションのサービスへの接続
アプリケーション内で複数のコンポーネントをグループ化することに加え、Topology ビューを使用してコンポーネントを相互に接続することもできます。バインディングコネクターまたはビジュアルコネクターのいずれかを使用してコンポーネントを接続できます。
コンポーネント間のバインディング接続は、ターゲットノードが Operator がサポートするサービスである場合にのみ確立できます。これは、矢印をこのようなターゲットノードにドラッグする際に表示される Create a binding connector ツールチップによって示されます。アプリケーションがバインディングコネクターを使用してサービスに接続されると、ServiceBinding
が作成されます。その後、サービスバインディング Operator コントローラーは必要なバインディングデータをアプリケーションデプロイメントにプロジェクションします。要求が正常に行われると、アプリケーションが再デプロイされ、接続されたコンポーネント間の対話が確立されます。
ビジュアルコネクターは、接続先となるコンポーネント間の視覚的な接続のみを表示します。コンポーネント間の対話は確立されません。ターゲットノードが Operator がサポートするサービスではない場合、Create a visual connector ツールチップは矢印をターゲットノードにドラッグすると表示されます。
5.9.1. コンポーネント間のビジュアル接続の作成
ビジュアルコネクターを使用してアプリケーションコンポーネントに接続する意図を示すことができます。
この手順では、PostgreSQL データベースサービスと Spring PetClinic のサンプルアプリケーション間の視覚的な接続の作成例を説明します。
前提条件
- Developer パースペクティブを使用して Spring PetClinic のサンプルアプリケーションを作成し、デプロイしている。
-
Developer パースペクティブを使用して Crunchy PostgreSQL データベースインスタンスを作成し、デプロイしている。このインスタンスには、
hippo-backup
、hippo-instance
、hippo-repo-host
、およびhippo-pgbouncer
の 4 つのコンポーネントがあります。
手順
Spring PetClinic サンプルアプリケーションにカーソルを合わせ、ノード上の矢印を確認します。
図5.2 ビジュアルコネクター
-
矢印をクリックして
hippo-pgbouncer
デプロイメントに向かってドラッグし、Spring PetClinic サンプルアプリケーションを接続します。 -
spring-petclinic
デプロイメントをクリックし、Overview パネルを表示します。Details タブで Annotations セクションの編集アイコンをクリックして、Key =app.openshift.io/connects-to
と Value =[{"apiVersion":"apps/v1","kind":"Deployment","name":"hippo-pgbouncer"}]
アノテーションがデプロイメントに追加されていることを確認します。
他のアプリケーションやコンポーネントを同様に作成し、それらの間の視覚的な接続を確立することができます。
図5.3 複数アプリケーションへの接続
5.9.2. コンポーネント間のバインディング接続の作成
Operator がサポートするコンポーネントとのバインディング接続を確立できます。
この手順では、PostgreSQL データベースサービスと Spring PetClinic のサンプルアプリケーション間のバインディング接続の作成例を説明します。PostgreSQL Database Operator がサポートするサービスでバインディング接続を作成するには、まずサポートする Red Hat 提供の PostgreSQL データベース Operator を OperatorHub に追加し、Operator をインストールする必要があります。次に、PostreSQL Database Operator はシークレット、設定マップ、ステータス、および仕様属性のバインディング情報を公開する Database
リソースを作成し、管理します。
前提条件
- Developer パースペクティブを使用して Spring PetClinic のサンプルアプリケーションを作成し、デプロイしている。
- OperatorHub からサービスバインディング Operator をインストールしている。
-
v5
Update チャネルを使用して、OperatorHub から Crunchy Postgres for Kubernetes Operator をインストールしている。 -
Developer パースペクティブを使用して Crunchy PostgreSQL データベースインスタンスを作成し、デプロイしている。このインスタンスには、
hippo-backup
、hippo-instance
、hippo-repo-host
、およびhippo-pgbouncer
の 4 つのコンポーネントがあります。
手順
-
Developer パースペクティブに切り替え、
my-petclinic
などの適切なプロジェクトにいることを確認します。Topology ビューで、Spring PetClinic サンプルアプリケーションにカーソルを合わせてノードの矢印を確認します。 矢印をクリックして hippo データベース Postgres クラスターに向かってドラッグし、Spring PetClinic サンプルアプリケーションとのバインディング接続を確立します。
または、+Add ビューで、YAML オプションをクリックし、 Import YAML 画面を表示します。YAML エディターを使用して
ServiceBinding
リソースを追加します。apiVersion: binding.operators.coreos.com/v1alpha1 kind: ServiceBinding metadata: name: spring-petclinic-pgcluster namespace: my-petclinic spec: services: - group: postgres-operator.crunchydata.com version: v1beta1 kind: PostgresCluster name: hippo application: name: spring-petclinic group: apps version: v1 resource: deployments
サービスバインディング要求が作成され、サービスバインディングコントローラーは、ボリュームマウントを使用してファイルとして、データベースサービスの接続情報をアプリケーションデプロイメントにプロジェクションします。要求が正常に行われると、アプリケーションが再デプロイされ、接続が確立されます。
図5.4 バインディングコネクター
矢印をドラッグしてコンテキストメニューを使用し、Operator がサポートするサービスへのバインディング接続を追加して作成できます。
図5.5 バインディング接続を作成するためのコンテキストメニュー