6.9. 開発者パースペクティブを使用したアプリケーションのサービスへの接続

アプリケーション内で複数のコンポーネントをグループ化することに加え、Topology ビューを使用してコンポーネントを相互に接続することもできます。バインディングコネクターまたはビジュアルコネクターのいずれかを使用してコンポーネントを接続できます。

コンポーネント間のバインディング接続は、ターゲットノードが Operator がサポートするサービスである場合にのみ確立できます。これは、矢印をこのようなターゲットノードにドラッグする際に表示される Create a binding connector ツールチップによって示されます。アプリケーションがバインディングコネクターを使用してサービスに接続されると、ServiceBinding が作成されます。その後、サービスバインディング Operator コントローラーは必要なバインディングデータをアプリケーションデプロイメントにプロジェクションします。要求が正常に行われると、アプリケーションが再デプロイされ、接続されたコンポーネント間の対話が確立されます。

ビジュアルコネクターは、接続先となるコンポーネント間の視覚的な接続のみを表示します。コンポーネント間の対話は確立されません。ターゲットノードが Operator がサポートするサービスではない場合、Create a visual connector ツールチップは矢印をターゲットノードにドラッグすると表示されます。

6.9.1. Operator が支援するバインド可能なサービスの検出と識別

ユーザーは、バインド可能なサービスを作成する場合は、どのサービスがバインド可能かを知っている必要があります。バインド可能なサービスは、クレデンシャル、接続の詳細、ボリュームマウント、シークレット、およびその他のバインドデータなどのバインドデータを標準的な方法で公開するため、アプリケーションが簡単に使用できるサービスです。Developer パースペクティブは、そのようなバインド可能なサービスを発見して識別するのに役立ちます。

手順

  • Operator が支援するバインド可能なサービスを検出して識別する場合、次の代替アプローチを検討してください。

    • +AddDeveloper CatalogOperator Backed をクリックして、Operator-backed タイルを表示します。サービスバインディング機能をサポートする Operator が支援するサービスの場合、タイルに Bindable バッジが表示されます。
    • Operator Backed ページの左側のペインで、Bindable チェックボックスを選択します。

      ヒント

      Service binding の横にあるヘルプアイコンをクリックして、バインド可能なサービスの詳細を表示します。

    • +AddAdd をクリックして、Operator が支援するサービスを検索します。バインド可能なサービスをクリックすると、右側のサイドパネルに Bindable バッジが表示されます。

6.9.2. コンポーネント間のビジュアル接続の作成

ビジュアルコネクターを使用してアプリケーションコンポーネントに接続する意図を示すことができます。

この手順では、PostgreSQL データベースサービスと Spring PetClinic のサンプルアプリケーション間の視覚的な接続の作成例を説明します。

前提条件

  • Developer パースペクティブを使用して Spring PetClinic のサンプルアプリケーションを作成し、デプロイしている。
  • Developer パースペクティブを使用して Crunchy PostgreSQL データベースインスタンスを作成し、デプロイしている。このインスタンスには、hippo-backuphippo-instancehippo-repo-hosthippo-pgbouncer の 4 つのコンポーネントがあります。

手順

  1. Spring PetClinic サンプルアプリケーションにカーソルを合わせ、ノード上の矢印を確認します。

    図6.2 ビジュアルコネクター

    odc connector
  2. 矢印をクリックして hippo-pgbouncer デプロイメントに向かってドラッグし、Spring PetClinic サンプルアプリケーションを接続します。
  3. spring-petclinic デプロイメントをクリックし、Overview パネルを表示します。Details タブで Annotations セクションの編集アイコンをクリックして、Key = app.openshift.io/connects-toValue = [{"apiVersion":"apps/v1","kind":"Deployment","name":"hippo-pgbouncer"}] アノテーションがデプロイメントに追加されていることを確認します。
  4. オプション: これらの手順を繰り返して、作成した他のアプリケーションとコンポーネントの間に視覚的な接続を確立できます。

    図6.3 複数アプリケーションへの接続

    odc connecting multiple applications

6.9.3. コンポーネント間のバインディング接続の作成

Operator がサポートするコンポーネントとのバインディング接続を確立できます。

この手順では、PostgreSQL データベースサービスと Spring PetClinic のサンプルアプリケーション間のバインディング接続の作成例を説明します。PostgreSQL Database Operator がサポートするサービスでバインディング接続を作成するには、まずサポートする Red Hat 提供の PostgreSQL データベース Operator を OperatorHub に追加し、Operator をインストールする必要があります。次に、PostreSQL Database Operator はシークレット、設定マップ、ステータス、および仕様属性のバインディング情報を公開する Database リソースを作成し、管理します。

前提条件

  • Developer パースペクティブを使用して Spring PetClinic のサンプルアプリケーションを作成し、デプロイしている。
  • OperatorHub から Service Binding Operator をインストールしている。
  • v5 Update チャネルを使用して、OperatorHub から Crunchy Postgres for Kubernetes Operator をインストールしている。
  • Developer パースペクティブを使用して Crunchy PostgreSQL データベースインスタンスを作成し、デプロイしている。このインスタンスには、hippo-backuphippo-instancehippo-repo-hosthippo-pgbouncer の 4 つのコンポーネントがあります。

手順

  1. Developer パースペクティブに切り替え、my-petclinic などの適切なプロジェクトにいることを確認します。
  2. Topology ビューで、Spring PetClinic サンプルアプリケーションにカーソルを合わせてノードの矢印を確認します。
  3. 矢印をクリックして Postgres クラスターの hippo データベースに向かってドラッグし、Spring PetClinic サンプルアプリケーションとのバインディング接続を確立します。

    1. 名前を入力し、Create をクリックします。

      図6.4 Service Binding ダイアログ

      odc sbc モーダル

または、+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

サービスバインディング要求が作成され、サービスバインディングコントローラーは、ボリュームマウントを使用してファイルとして、データベースサービスの接続情報をアプリケーションデプロイメントにプロジェクションします。要求が正常に行われると、アプリケーションが再デプロイされ、接続が確立されます。

図6.5 バインディングコネクター

odc binding connector
注記

矢印をドラッグしてコンテキストメニューを使用し、Operator がサポートするサービスへのバインディング接続を追加して作成できます。

図6.6 バインディング接続を作成するためのコンテキストメニュー

odc context operator

6.9.4. Topology ビューからのサービスバインディングのステータス確認

Developer パースペクティブは、Topology ビューを通じてサービスバインディングのステータスを確認するのに役立ちます。

手順

  1. サービスのバインドが成功したら、バインドコネクターをクリックします。サイドパネルが表示され、Details タブの下に Connected ステータスが表示されます。

    必要に応じて、次のページで Developer パースペクティブから Connected ステータスを表示できます。

    • ServiceBindings ページ。
    • ServiceBinding details ページ。さらに、ページタイトルには Connected バッジが表示されます。
  2. サービスバインディングに失敗した場合、バインディングコネクターの接続の中央に赤い矢印と赤い十字が表示されます。このコネクターをクリックすると、サイドパネルの Details タブに Error ステータスが表示されます。必要に応じて、Error ステータスをクリックして、根本的な問題に関する特定の情報を表示します。

    次のページで、Developer パースペクティブから Error ステータスとツールチップを表示することもできます。

    • ServiceBindings ページ。
    • ServiceBinding details ページ。さらに、ページタイトルには Error バッジが表示されます。
ヒント

ServiceBindings ページで、Filter ドロップダウンを使用して、ステータスに基づいてサービスバインディングをリスト表示します。

6.9.5. 関連情報