Kf Cloud Service Broker 是一个 Service Broker 软件包,其中包含开源 Cloud Service Broker 和 Google Cloud Brokerpak。它作为公共 Docker 映像提供,可直接在 Kubernetes 集群中部署为 Kubernetes 服务。在集群中部署 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 代理。
- 访问 Google Cloud 服务(例如 Cloud SQL for MySQL 或 Memorystore)的请求通过 Workload Identity 进行身份验证。
替换 Brokerpak 默认值
Brokerpaks 实质上是一个 Terraform 计划和 Docker 文件中的相关依赖项。您可以检查 Terraform 计划以查看默认值,然后可以在创建新服务时指示 Kf Cloud Service Broker 替换它们。
例如,适用于 Cloud SQL for MySQL 的 Terraform 配置包含一个名为 authorized_network
的变量。如果未被替换,则使用 default
VPC。如果您想要替换默认设置,可以在创建服务期间传递替换值。示例如下:
替换计算
region
。kf create-service csb-google-postgres small spring-music-postgres-db -c '{"region":"YOUR_COMPUTE_REGION"}'
替换
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 Cloud Service Broker 架构展示了实例的创建方式。
- Kf Cloud Service Broker (CSB) 安装在其自己的命名空间中。
- 安装时,必须提供 Cloud SQL for MySQL 实例,以保存 Kf Cloud Service Broker 使用的业务逻辑。请求通过 Cloud SQL for MySQL Auth 代理从 Kf Cloud Service Broker pod 安全地发送到 Cloud SQL for MySQL 实例。
- 预配服务时会创建一个 Kf Service 自定义资源。Kf Service 的协调器使用 Open Service Broker API 来预配 Google Cloud 支持性服务。
- 收到预配/取消预配支持性资源的请求时,Kf Cloud Service Broker 向相应的 Google Cloud 服务发送资源创建/删除请求,这些请求通过 Workload Identity 进行身份验证。它还会将业务逻辑(例如 Kf 服务到支持性服务、服务绑定的映射)保存到 Cloud SQL for MySQL 实例中。
- 支持性服务创建成功后,会通过 VCAP_SERVICES 绑定到应用。