Kf Cloud 서비스 브로커는 오픈소스 Cloud 서비스 브로커 및 Google Cloud Brokerpak를 포함하는 서비스 브로커 번들입니다. 공개 Docker 이미지로 제공되며 Kf 클러스터에서 Kubernetes 서비스로 배포하도록 준비되어 있습니다. Kf Cloud 서비스 브로커 서비스를 클러스터에 배포하면 개발자가 Kf Cloud 서비스 브로커 서비스를 통해 Google Cloud 지원 서비스를 프로비저닝하고 지원 서비스를 Kf 앱에 바인딩할 수 있습니다.
요구사항
- MySQL용 Cloud SQL 인스턴스에 액세스하고 Google Cloud 백업 서비스를 프로비저닝하려면 Kf Cloud 서비스 브로커에 MySQL용 Cloud SQL 인스턴스와 서비스 계정이 있어야 합니다. Kf Cloud 서비스 브로커는 Cloud SQL 인증 프록시를 거쳐 MySQL용 Cloud SQL 인스턴스에 연결됩니다.
- Google Cloud 서비스(예: MySQL용 Cloud SQL 또는 Memorystore) 액세스 요청은 워크로드 아이덴티티를 통해 인증됩니다.
Brokerpak 기본값 재정의
Brokerpak은 기본적으로 Docker 파일의 Terraform 계획 및 관련 종속 항목입니다. Terraform 계획을 검사하여 기본값이 무엇인지 확인한 후 새 서비스를 만들 때 기본값을 재정의하도록 Kf Cloud 서비스 브로커를 지정할 수 있습니다.
예를 들어 MySQL용 Cloud SQL의 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 서비스 브로커 아키텍처에서는 인스턴스를 만드는 방법을 보여줍니다.
- Kf Cloud 서비스 브로커(CSB)는 자체 네임스페이스에 설치됩니다.
- Kf Cloud 서비스 브로커에서 사용되는 비즈니스 논리를 유지하려면 설치 시 Cloud SQL for MySQL 인스턴스를 제공해야 합니다. 요청은 MySQL용 Cloud SQL 인증 프록시를 통해 Kf Cloud 서비스 브로커 포드에서 MySQL용 Cloud SQL 인스턴스로 안전하게 전송됩니다.
- 서비스를 프로비저닝할 때 Kf 서비스 커스텀 리소스가 생성됩니다. Kf 서비스의 조정자가 Open Service Broker API를 사용하여 Google Cloud 지원 서비스를 프로비저닝합니다.
- 리소스 지원 프로비저닝/프로비저닝 해제 요청이 수신되면 Kf Cloud 서비스 브로커가 해당 Google Cloud 서비스에 리소스 생성/삭제 요청을 전송하며 이러한 요청은 워크로드 아이덴티티를 통해 인증됩니다. 또한 MySQL용 Cloud SQL 인스턴스에 대한 비즈니스 로직(예: Kf 서비스를 지원 서비스에 매핑, 서비스 결합)을 유지합니다.
- 지원 서비스 생성 시 지원 서비스가 VCAP_SERVICES를 통해 앱에 바운딩됩니다.