This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.5. IBM Power Systems、IBM Z、および LinuxONE でのサービスバインディングの使用
サービスバインディング Operator は、ワークロードおよびバッキングサービスのデータプレーンを管理します。本ガイドでは、データベースインスタンスの作成、アプリケーションのデプロイ、サービスバインディング Operator を使用してアプリケーションとデータベースサービス間のバインディング接続の作成に役立つ例を使用してその手順を説明します。
前提条件
-
cluster-admin
パーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。 -
oc
CLI がインストールされている。 - OperatorHub からサービスバインディング Operator をインストールしている。
5.5.1. PostgreSQL Operator のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
手順
-
my-petclinic
namespace に Dev4Devs PostgreSQL Operator をデプロイするには、シェルで以下のコマンドを実行します。
- 1
- Operator イメージ
-
IBM Power:
quay.io/ibm/operator-registry-ppc64le:release-4.9
-
For IBM Z および LinuxONE:
quay.io/ibm/operator-registry-s390x:release-4.8
-
IBM Power:
検証
Operator のインストール後に、
openshift-operators
namespace の Operator サブスクリプションを一覧表示します。oc get subs -n openshift-operators
$ oc get subs -n openshift-operators
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME PACKAGE SOURCE CHANNEL postgresql-operator-dev4devs-com postgresql-operator-dev4devs-com ibm-multiarch-catalog alpha rh-service-binding-operator rh-service-binding-operator redhat-operators stable
NAME PACKAGE SOURCE CHANNEL postgresql-operator-dev4devs-com postgresql-operator-dev4devs-com ibm-multiarch-catalog alpha rh-service-binding-operator rh-service-binding-operator redhat-operators stable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5.2. PostgreSQL データベースインスタンスの作成 リンクのコピーリンクがクリップボードにコピーされました!
PostgreSQL データベースインスタンスを作成するには、Database
カスタムリソース (CR) を作成し、データベースを設定する必要があります。
手順
シェルで以下のコマンドを実行して、
my-petclinic
namespace にDatabase
CR を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この
Database
CR に追加されたアノテーションは、サービスバインディング接続を有効にし、Operator の調整をトリガーします。この出力では、データベースインスタンスが作成されていることを検証します。
出力例
database.postgresql.dev4devs.com/sampledatabase created
database.postgresql.dev4devs.com/sampledatabase created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow データベースインスタンスを作成したら、
my-petclinic
namespace のすべての Pod が実行されていることを確認します。oc get pods -n my-petclinic
$ oc get pods -n my-petclinic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力 (表示に数分かかる) で、データベースが作成され設定されていることを検証できます。
出力例
NAME READY STATUS RESTARTS AGE sampledatabase-cbc655488-74kss 0/1 Running 0 32s
NAME READY STATUS RESTARTS AGE sampledatabase-cbc655488-74kss 0/1 Running 0 32s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
データベースを設定したら、サンプルアプリケーションをデプロイしてデータベースサービスに接続できます。
5.5.3. Spring PetClinic サンプルアプリケーションのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターに、Spring PetClinic サンプルアプリケーションをデプロイするには、デプロイメント設定を使用し、アプリケーションをテストできるようにローカル環境を設定する必要があります。
手順
シェルで以下のコマンドを実行して、
spring-petclinic
アプリケーションをPostgresCluster
カスタムリソース (CR) でデプロイします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力では、Spring PetClinic サンプルアプリケーションが作成され、デプロイされていることを確認します。
出力例
deployment.apps/spring-petclinic created service/spring-petclinic created
deployment.apps/spring-petclinic created service/spring-petclinic created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Web コンソールの Developer パースペクティブでコンテナーイメージ を使用してアプリケーションをデプロイする場合は、Advanced options の Deployment セクションで以下の環境変数を入力する必要があります。
- Name: SPRING_PROFILES_ACTIVE
- Value: postgres
以下のコマンドを実行して、アプリケーションがまだデータベースサービスに接続されていないことを確認します。
oc get pods -n my-petclinic
$ oc get pods -n my-petclinic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CrashLoopBackOff
ステータスが表示されるまで数分かかります。出力例
NAME READY STATUS RESTARTS AGE spring-petclinic-5b4c7999d4-wzdtz 0/1 CrashLoopBackOff 4 (13s ago) 2m25s
NAME READY STATUS RESTARTS AGE spring-petclinic-5b4c7999d4-wzdtz 0/1 CrashLoopBackOff 4 (13s ago) 2m25s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この段階では、Pod は起動に失敗します。アプリケーションとの対話を試みると、エラーが返されます。
サービスバインディング Operator を使用すると、アプリケーションをデータベースサービスに接続できるようになります。
5.5.4. Spring PetClinic サンプルアプリケーションを PostgreSQL データベースサービスに接続します。 リンクのコピーリンクがクリップボードにコピーされました!
サンプルアプリ ks−本をデータベースサービスに接続するには、サービスバインディング Operator がバインディングデータをアプリケーションにプロジェクションするようにトリガーする ServiceBinding
カスタムリソース (CR) を作成する必要があります。
手順
ServiceBinding
CR を作成し、バインディングデータにパッチを適用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力では、バインディングデータをサンプルアプリケーションにプロジェクションする
ServiceBinding
CR が作成されていることを確認します。出力例
servicebinding.binding.operators.coreos.com/spring-petclinic created
servicebinding.binding.operators.coreos.com/spring-petclinic created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスバインディングのリクエストが正常に完了したことを確認します。
oc get servicebindings -n my-petclinic
$ oc get servicebindings -n my-petclinic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY REASON AGE spring-petclinic-postgresql True ApplicationsBound 47m
NAME READY REASON AGE spring-petclinic-postgresql True ApplicationsBound 47m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、データベースサービスのバインディングデータからの値は、サンプルアプリケーションを実行するワークロードコンテナーにファイルとしてプロジェクションされます。たとえば、Secret リソースからの値はすべて
bindings/spring-petclinic-pgcluster
ディレクトリーに反映されます。これが作成されたら、トポロジーに移動し、接続を視覚的に確認できます。
図5.1 spring-petclinic のサンプルデータベースへの接続
アプリケーションポートからポート転送を設定し、ローカル環境からサンプルアプリケーションにアクセスします。
oc port-forward --address 0.0.0.0 svc/spring-petclinic 8080:80 -n my-petclinic
$ oc port-forward --address 0.0.0.0 svc/spring-petclinic 8080:80 -n my-petclinic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Forwarding from 0.0.0.0:8080 -> 8080 Handling connection for 8080
Forwarding from 0.0.0.0:8080 -> 8080 Handling connection for 8080
Copy to Clipboard Copied! Toggle word wrap Toggle overflow http://localhost:8080 にアクセスします。
localhost:8080 で Spring PetClinic サンプルアプリケーションにリモートでアクセスできるようになり、アプリケーションがデータベースサービスに接続されていることを確認できます。