Kf Cloud Service Broker

Kf Cloud Service Broker は、オープンソースの Cloud Service BrokerGoogle Cloud Brokerpak を含むサービス ブローカー バンドルです。これは一般公開の Docker イメージとして使用可能で、Kf クラスタに Kubernetes Service としてデプロイできる状態になっています。Kf Cloud Service Broker サービスがクラスタにデプロイされると、Kf Cloud Service Broker サービスを介して Google Cloud のバッキング サービスをプロビジョニングし、それを Kf アプリにバインドできます。

要件

  • Kf Cloud Service Broker を使用するには、Cloud SQL for MySQL インスタンスおよび、その Cloud SQL for MySQL インスタンスとプロビジョニングする Google Cloud バッキング サービスにアクセスするためのサービス アカウントが必要です。Kf Cloud Service Broker から Cloud SQL for MySQL インスタンスへの接続は、Cloud SQL Auth Proxy を経由します。
  • Google Cloud サービス(Cloud SQL for MySQLMemorystore など)へのアクセス リクエストは、Workload Identity を介して認証されます。

Brokerpak のデフォルトをオーバーライドする

基本的には、Brokerpak は tar ファイルに含まれる Terraform のプランとそれに関連する依存関係です。Terraform のプランを調べてデフォルト値を確認し、新しいサービスの作成時に Kf Cloud Service Broker によってこれらの値をオーバーライドさせることができます。

たとえば、Cloud SQL for MySQL の Terraform 構成には authorized_network という変数があります。オーバーライドしない場合は、default VPC が使用されます。デフォルトをオーバーライドする場合は、サービス作成時に値を渡すことができます。次に例を示します。

  1. コンピューティング リージョン config をオーバーライドします。

     kf create-service csb-google-postgres small spring-music-postgres-db -c '{"config":"YOUR_COMPUTE_REGION"}'
  2. authorized_network とコンピューティング リージョン config をオーバーライドします。

     kf create-service csb-google-postgres small spring-music-postgres-db -c '{"config":"YOUR_COMPUTE_REGION","authorized_network":"YOUR_CUSTOM_VPC_NAME"}'

アーキテクチャ

次の Kf Cloud Service Broker アーキテクチャは、インスタンスがどのように作成されるかを示しています。

Kf Cloud Service Broker のアーキテクチャ
  • Kf Cloud Service Broker(CSB)は固有の Namespace にインストールされます。
  • インストール時に、Kf Cloud Service Broker で使用されるビジネス ロジックを保持するために、Cloud SQL for MySQL インスタンスを指定する必要があります。リクエストは、Kf Cloud Service Broker の Pod から Cloud SQL for MySQL Auth Proxy 経由で Cloud SQL for MySQL インスタンスに安全に送信されます。
  • サービスのプロビジョニング時に Kf Service のカスタム リソースが作成されます。Kf Service の Reconciler が Open Service Broker API を使用して Google Cloud バッキング サービスをプロビジョニングします。
  • バッキング リソースのプロビジョニングまたはプロビジョニング解除のリクエストを受信すると、Kf Cloud Service Broker は、対応する Google Cloud サービスにリソースの作成または削除リクエストを送信します。これらのリクエストは Workload Identity で認証されます。また、ビジネス ロジック(バッキング サービスに対する Kf サービスのマッピング、サービス バインディングなど)も Cloud SQL for MySQL インスタンスに保持されます。
  • バッキング サービスの作成に成功すると、バッキング サービスは VCAP_SERVICES を介してアプリにバインドされます。

次のステップ