Instale o GCP Service Broker

Este documento é uma versão modificada da documentação encontrada no repositório do GitHub para o GCP Service Broker.

Pré-requisitos

  1. Um cluster com o Kf instalado.
  2. gcloud: siga estas instruções para instalar a CLI gcloud.
  3. kubectl: depois de instalar o gcloud, execute o gcloud components install kubectl.
  4. helm: siga estas instruções para instalar a CLI.helm
  5. git: o Git é necessário para clonar um repositório.

Configuração

Selecionar um projeto

Escolha o Google Cloud projeto que quer usar para o resto deste tutorial. Deve ser o mesmo projeto usado pelo seu cluster do Kf.

Tem de ser proprietário do projeto que escolher. Opcionalmente, altere os valores abaixo para refletir o seu ambiente e, em seguida, defina estas variáveis de ambiente no seu terminal:

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

Crie uma conta de serviço para o agente

  1. Crie a conta de serviço:

    gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME
  2. Crie novas credenciais para permitir a autenticação do agente e transfira a credencial para key.json:

    gcloud iam service-accounts keys create key.json --iam-account $SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
  3. Conceda autorizações de proprietário do projeto ao agente:

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

Ative as APIs necessárias

Agora, tem de ativar as APIs para permitir que o agente de processamento aprovisione recursos.

O agente tem algumas APIs necessárias para a sua execução e outras opcionais, mas que têm de ser ativadas para aprovisionar recursos de um tipo específico.

As APIs Cloud Resource Manager e Identity and Access Management são necessárias para a execução do agente. Para os ativar:

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

Ativar APIs

Para aprovisionar serviços na nuvem no seu projeto, o Kf recomenda que ative, pelo menos, as seguintes APIs:

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

O Service Broker da GCP também suporta uma variedade de outros serviços para os quais pode adicionar suporte ativando as APIs indicadas aqui.

Instale o mediador de serviço

  1. Clone o GCP Service Broker para a sua estação de trabalho local e cd para ele:

    git clone --depth=1 "https://github.com/GoogleCloudPlatform/gcp-service-broker"
    cd gcp-service-broker/deployments/helm/gcp-service-broker
  2. Atualize as dependências do gráfico Helm:

    helm dependency update
  3. Edite o ficheiro values.yaml e defina o valor de broker.service_account_json como uma string que contenha todo o conteúdo de key.json.

    Opcional: leia as restantes propriedades e altere as que precisar para se adequarem ao seu ambiente.

    # ...
    broker:
      # ...
      service_account_json: "contents of key.json go here"
    # ...
  4. Se estiver a ser executado num ambiente de produção, defina mysql.embedded como falso e faculte credenciais para uma base de dados MySQL externa com cópias de segurança automáticas e comutação por falha.

  5. Crie um espaço de nomes do Kubernetes para o Service Broker da GCP:

    kubectl create namespace gcp-service-broker
  6. Instale o agente:

    helm install gcp-service-broker --set svccat.register=false --namespace gcp-service-broker .
  7. Registe o agente junto da 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"

Confirme a instalação do agente

Corrida kf marketplace. Deverá ver uma saída semelhante à seguinte:

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.

O Service Broker do GCP está instalado e pode ser usado para criar serviços e associá-los a apps que implementa com o Kf.