Cloud Foundry Enterprise Environment では、Helm チャート ibm-osb-database を提供します。 クラスター・サービス・ブローカーとしてデプロイされる ibm-osb-database を IBM Cloud Private にインストールすることができます。 クラスター・サービス・ブローカーは、Open Service Broker (OSB) API 仕様に従って構築されます。
このサービス・ブローカーは、IBM Cloud Private データベースの Helm チャートをサービスとして提供します。 Cloud Foundry Enterprise Environment でサービス・ブローカーを登録して、サービス・インスタンスのプロビジョンおよびプロビジョン解除と、 アプリケーションへのサービス・インスタンスのバインドを行えます。
クラスター・サービス・ブローカーのセットアップを容易にする Cloud Foundry Enterprise Environment 拡張機能については、『Open Service Broker インストーラー拡張機能』を参照してください。
ibm-osb-database Helm チャートがエクスポートされるためです。Cloud Foundry Enterprise Environment をインストールすると、IBM Cloud Private インストーラーを実行したシステムの <data_directory>/IBMCloudPrivate ディレクトリーに、チャート・アーカイブがあります。 <data_directory> は、launch.sh スクリプトに -c オプションで指定したディレクトリーです。
チャート・アーカイブの名前は ibm-osb-database-1.0.0-archive.tgz で、Helm チャートと必要なイメージの両方がそれに含まれます。 (前提条件のセクションで説明した) CLI を別のシステムにインストールして構成した場合は、そのシステムにアーカイブをコピーします。 IBM Cloud Private クラスターにログイン済みであること、および Docker CLI がクラスターのプライベート・イメージ・レジストリーにログインしていることを確認します。
次に、以下のコマンドを実行します。
cloudctl catalog load-archive --archive ibm-osb-database-1.0.0-archive.tgz
デフォルトで、このコマンドは Helm リポジトリー local-charts にチャートをロードし、現行ターゲット名前空間にインストールされたチャートのみがアクセスできるプライベート・イメージ・レジストリーにイメージをロードします。 CLI のカタログ・コマンドについては、IBM Cloud Private CLI のカタログ・コマンドを参照してください。
イメージの管理については、イメージの管理を参照してください。
サービス・ブローカー Helm チャートがインストールされた名前空間内にサービス・ブローカーの認証ユーザー名およびパスワードを含んでいる Kubernetes 秘密を作成する必要があります。 例えば、以下の内容を含んでいる、cf-osb-broker-secret.yaml という名前の YAML ファイルを作成します。 service broker user name と service broker password を、base-64 エンコードのユーザー名とパスワードに置き換えてください。
apiVersion: v1
kind: Secret
metadata:
name: cf-osb-broker-secret
type: Opaque
data:
username: service broker user name
password: service broker password
ストリングを base-64 エンコードするには、例えば以下のコマンドを使用できます。
$ echo -n 'stringToEncode' | openssl base64
次に、以下のコマンドを実行して Kubernetes 秘密を作成します。
$ kubectl create -f cf-osb-broker-secret.yaml
サービス・ブローカー Helm チャートがインストールされた名前空間内に IBM Cloud Private のログイン・ユーザー名およびパスワードを含んでいる別の Kubernetes 秘密を作成する必要があります。 この資格情報は、サービス・インスタンスをプロビジョンするためにサービス・ブローカーによって使用されます。 例えば、以下の内容を含んでいる、cf-osb-icp-secret.yaml という名前の YAML ファイルを作成します。 IBM Cloud
Private user name と IBM Cloud Private password を、base-64 エンコードのユーザー名とパスワードに置き換えてください。 Helm チャートの表示およびインストールを実行するために、このユーザー名とパスワードを使用して IBM Cloud Private にログインできる必要があります。
apiVersion: v1
kind: Secret
metadata:
name: cf-osb-icp-secret
type: Opaque
data:
username: IBM Cloud Private user name
password: IBM Cloud Private password
ストリングを base-64 エンコードするには、例えば以下のコマンドを使用できます。
$ echo -n 'stringToEncode' | openssl base64
次に、以下のコマンドを実行して Kubernetes 秘密を作成します。
$ kubectl create -f cf-osb-icp-secret.yaml
カタログで ibm-osb-database チャートを見つけ、それをクリックします。 概要に、すべてのチャート構成パラメーターに関する詳細情報が含まれています。 チャートを構成するには、以下のステップを実行します。
「構成」タブに切り替えるか、「構成」をクリックします。「Helm リリース名」に固有の名前を入力します。同意します。「インストール」をクリックして構成を完了します。Helm CLI を使用する場合、Helm CLI のインストールに関する手順については Helm CLI (helm) のインストールを参照してください。 cloudctl を使用してログインすると、Helm が自動的に構成されます。
以下のコマンドを実行して、チャートをインストールします。
helm install local-charts/ibm-osb-database-1.0.0.tgz --name <release_name> --namespace <namespace> --tls
以下のいずれかのオプションを使用して、フィールドに値を設定します。
--set オプションを使用してこれらの値を設定します。 例えば、以下のようにします。
--set brokerconfig.userToken="YWRtaW4=",brokerconfig.password="YWRtaW4="--values オプションでその YAML ファイルを指定します。以下のフィールドに必要な値を指定します。
brokerconfig.servicebrokersecret="<Kubernetes secret object name that contains the service broker's user name and password. Defaults to 'cf-osb-broker-secret'>"
brokerconfig.icpsecret="<Kubernetes secret object name that contains the user name and password for IBM Cloud Private. Defaults to 'cf-osb-icp-secret'.>"
brokerconfig.externalClusterIp=""
brokerconfig.namespace=""
外部アクセスのためにサービス・ブローカーを公開するには、以下のステップを実行します。
サービス・ブローカーの内部サービス名をリストします。
$ kubectl get services
クラスター外部でブローカーを公開するための NodePort を作成します。
kubectl expose deployment <helm_release_name>-ibm-osb-database --name <helm_release_name>-ibm-osb-database-external --type=NodePort --port=80 --target-port=8080
注: デフォルトでは、TLS は無効になっています。 TLS を有効にした場合は、代わりに次のコマンドを実行します。
kubectl expose deployment <helm_release_name>-ibm-osb-database --name <helm_release_name>-ibm-osb-database-external --type=NodePort --port=443 --target-port=8443
公開されたポートを確認し、ポート番号を入手します。
$ kubectl get services
出力は、以下のコードのようになります。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dbservicebroker1-ibm-osb-database ClusterIP 10.0.0.248 <none> 443/TCP 3m
dbservicebroker1-ibm-osb-database-external NodePort 10.0.0.196 <none> 443:32055/TCP
5s
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 47d
この場合、外部ノード・ポート番号は 32055 です。 Cloud Foundry Enterprise Environment でサービス・ブローカーを登録するために、このポート番号が必要になります。