Kf Cloud Service Broker

Kf Cloud Service Broker は、オープンソースの Cloud Service BrokerGCP 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 は Docker ファイルに含まれる Terraform のプランとそれに関連する依存関係です。Terraform のプランを調べてデフォルト値を確認し、新しいサービスの作成時に Kf Cloud Service Broker によってこれらの値をオーバーライドさせることができます。

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

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

     kf create-service csb-google-postgres small spring-music-postgres-db -c '{"region":"YOUR_COMPUTE_REGION"}'
  2. authorized_network をオーバーライドして region を計算します。

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

アーキテクチャ

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

Kf Kf Cloud Service Broker のアーキテクチャ
  • Kf Kf Cloud Service Broker(CSB)は固有の名前空間にインストールされます。
  • インストール時に、Kf Kf Cloud Service Broker で使用されるビジネス ロジックを保持するため、Cloud SQL for MySQL インスタンスを指定する必要があります。リクエストは、Kf 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 Kf Cloud Service Broker は対応する Google Cloud サービスにリソースの作成または削除リクエストを送信します。これらのリクエストは Workload Identity で認証されます。また、ビジネス ロジック(Kf サービスとバッキング サービスのマッピング、サービス バインディングなど)も Cloud SQL for MySQL インスタンスに保持されます。
  • バッキング サービスの作成に成功すると、バッキング サービスは VCAP_SERVICES を介してアプリにバインドされます。

次のステップ