GCP サービス ブローカーをインストールする

このドキュメントは、GitHub リポジトリにある GCP サービス ブローカーのドキュメントの修正版です。

前提条件

  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 API と Identity and Access Management API が必要です。有効にするには:

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

API を有効にする

プロジェクトで Cloud サービスをプロビジョニングするために、Kf では少なくとも次の API を有効にすることをおすすめします。

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

このリストの API を有効にすることでサポートを追加できる他のサービスも、GCP サービス ブローカーでサポートされるようになります。

サービス ブローカーをインストールする

  1. GCP サービス ブローカーのクローンをローカルのワークステーションに作成して、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 サービス ブローカーの Kubernetes Namespace を作成します。

    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 サービス ブローカーがインストールされます。このブローカーを使用してサービスを作成し、Kf でデプロイするアプリにバインドできます。