GCP Service Broker 설치

이 문서는 GCP Service Broker의 GitHub 저장소에 있는 문서를 수정한 버전입니다.

기본 요건

  1. Kf가 설치된 클러스터.
  2. gcloud: 이 안내에 따라 gcloud CLI를 설치합니다.
  3. kubectl: gcloud가 설치되면 gcloud components install kubectl을 실행합니다.
  4. helm: 이 안내에 따라 helm CLI를 설치합니다.
  5. git: 저장소를 클론하려면 Git이 필요합니다.

구성

프로젝트 선택

이 가이드의 나머지 부분에 사용할 Google Cloud 프로젝트를 선택합니다. Kf 클러스터에서 사용하는 프로젝트와 동일해야 합니다.

선택한 프로젝트의 소유자여야 합니다. 필요에 따라 환경에 맞게 아래 값을 변경한 후 터미널에서 환경 변수를 설정합니다.

export PROJECT_ID=$(gcloud config get-value project)
export SERVICE_ACCOUNT_NAME=kf-gcp-broker

브로커의 서비스 계정 만들기

  1. 서비스 계정을 만듭니다.

    gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME
  2. 브로커가 인증할 수 있도록 새 사용자 인증 정보를 만들고 key.json에 사용자 인증 정보를 다운로드합니다.

    gcloud iam service-accounts keys create key.json --iam-account $SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
  3. 브로커에 프로젝트 소유자 권한을 부여합니다.

    gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com --role "roles/owner"

필요한 API 사용 설정

이제 브로커가 리소스를 프로비저닝할 수 있도록 API를 사용 설정해야 합니다.

브로커에는 실행에 필요한 몇 가지 API와 선택 사항으로 특정 유형의 리소스를 프로비저닝하기 위해 사용 설정해야 하는 API가 있습니다.

브로커가 작동하려면 Cloud Resource Manager 및 Identity and Access Management API가 필요합니다. 사용 설정하려면 다음 안내를 따르세요.

gcloud services enable cloudresourcemanager.googleapis.com iam.googleapis.com --project $PROJECT_ID

API 사용 설정

프로젝트에서 클라우드 서비스를 프로비저닝하려면 Kf에서 최소한 다음 API를 사용 설정하는 것이 좋습니다.

  1. CloudSQL API
  2. CloudSQL Admin API
  3. Pub/Sub API
  4. Redis API
  5. Storage API

또한 GCP Service Broker는 여기 나열된 API를 통해 지원을 추가할 수 있는 다양한 서비스를 지원합니다.

서비스 브로커 설치

  1. GCP Service Broker를 로컬 워크스테이션에 복제하고 cd를 사용하여 로컬 워크스테이션으로 이동합니다.

    git clone --depth=1 "https://github.com/GoogleCloudPlatform/gcp-service-broker"
    cd gcp-service-broker/deployments/helm/gcp-service-broker
  2. Helm 차트의 종속 항목을 업데이트합니다.

    helm dependency update
  3. values.yaml 파일을 수정하고 broker.service_account_json의 값을 key.json의 전체 콘텐츠가 포함된 문자열로 설정합니다.

    선택사항: 나머지 속성을 읽어보고 환경에 맞게 필요한 것을 변경합니다.

    # ...
    broker:
      # ...
      service_account_json: "contents of key.json go here"
    # ...
  4. 프로덕션 환경에서 실행하는 경우 mysql.embedded를 false로 설정하고 자동 백업 및 장애 조치가 있는 외부 MySQL 데이터베이스의 사용자 인증 정보를 제공합니다.

  5. GCP Service Broker의 Kubernetes 네임스페이스를 만듭니다.

    kubectl create namespace gcp-service-broker
  6. 브로커를 설치합니다.

    helm install gcp-service-broker --set svccat.register=false --namespace gcp-service-broker .
  7. Kf에 브로커를 등록합니다.

    kf create-service-broker gcp-service-broker \
      "$(kubectl get secret gcp-service-broker-auth -n gcp-service-broker -o jsonpath='{.data.username}' | base64 --decode)" \
      "$(kubectl get secret gcp-service-broker-auth -n gcp-service-broker -o jsonpath='{.data.password}' | base64 --decode)" \
      "http://gcp-service-broker.gcp-service-broker.svc.cluster.local"

브로커 설치 확인

kf marketplace를 실행합니다. 다음과 비슷한 출력이 표시됩니다.

Broker              Name                          Space       Status  Description
gcp-service-broker  google-stackdriver-profiler               Active  Continuous CPU and heap profiling to improve performance and reduce costs.
gcp-service-broker  google-stackdriver-monitoring             Active  Stackdriver Monitoring provides visibility into the performance, uptime, and overall health of cloud
gcp-service-broker  google-dataflow                           Active  A managed service for executing a wide variety of data processing patterns built on Apache Beam.
gcp-service-broker  google-cloudsql-mysql                     Active  Google CloudSQL for MySQL is a fully-managed MySQL database service.
gcp-service-broker  google-spanner                            Active  The first horizontally scalable, globally consistent, relational database service.
gcp-service-broker  google-ml-apis                            Active  Machine Learning APIs including Vision, Translate, Speech, and Natural Language.
gcp-service-broker  google-pubsub                             Active  A global service for real-time and reliable messaging and streaming data.
gcp-service-broker  google-datastore                          Active  Google Cloud Datastore is a NoSQL document database service.
gcp-service-broker  google-stackdriver-debugger               Active  Stackdriver Debugger is a feature of the Google Cloud Platform that lets you inspect the state of an
gcp-service-broker  google-firestore                          Active  Cloud Firestore is a fast, fully managed, serverless, cloud-native NoSQL document database that simp
gcp-service-broker  google-bigtable                           Active  A high performance NoSQL database service for large analytical and operational workloads.
gcp-service-broker  google-storage                            Active  Unified object storage for developers and enterprises. Cloud Storage allows world-wide storage and r
gcp-service-broker  google-stackdriver-trace                  Active  Stackdriver Trace is a distributed tracing system that collects latency data from your applications
gcp-service-broker  google-cloudsql-postgres                  Active  Google CloudSQL for PostgreSQL is a fully-managed PostgreSQL database service.
gcp-service-broker  google-dialogflow                         Active  Dialogflow is an end-to-end, build-once deploy-everywhere development suite for creating conversatio
gcp-service-broker  google-bigquery                           Active  A fast, economical and fully managed data warehouse for large-scale data analytics.

GCP Service Broker가 설치되었으며, 서비스를 만들어 Kf로 배포하는 앱에 바인딩하는 데 GCP Service Broker를 사용할 수 있습니다.