Instala el agente del servicio de GCP

Este documento es una versión modificada de la documentación que se encuentra en el repositorio de GitHub sobre el agente del servicio de GCP.

Requisitos previos

  1. Un clúster con Kf instalado.
  2. gcloud: Sigue estas instrucciones para instalar la CLI de gcloud.
  3. kubectl: Una vez que gcloud esté instalado, ejecuta gcloud components install kubectl.
  4. helm: Sigue estas instrucciones para instalar la CLI de helm.
  5. git: Se requiere Git para clonar un repositorio

Configuración

Selecciona un proyecto

Elige el proyecto de Google Cloud que deseas usar para el resto de este instructivo. Debe ser el mismo proyecto que usa el clúster de Kf.

Debes ser propietario del proyecto que elijas. De manera opcional, cambia los siguientes valores para representar tu entorno y, luego, configura estas variables de entorno en tu terminal:

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

Crea una cuenta de servicio para el agente

  1. Crea la cuenta de servicio:

    gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME
  2. Crea credenciales nuevas para permitir que el agente se autentique y descarga la credencial en key.json:

    gcloud iam service-accounts keys create key.json --iam-account $SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
  3. Otorga permisos de propietario del proyecto al agente:

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

Habilita las API necesarias

Ahora debes habilitar las API para permitir que el agente aprovisione los recursos.

Hay algunas API que son necesarias para la ejecución del agente y algunas que son opcionales, pero que deben estar habilitadas para aprovisionar los recursos de un tipo en particular.

Para que el agente se ejecute, se necesitan la API de Cloud Resource Manager y la API de administración de identidades y accesos. Haz lo siguiente para habilitarlos:

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

Habilita las APIs

Para aprovisionar servicios en la nube en tu proyecto, Kf recomienda habilitar, al menos, las siguientes API:

  1. API de Cloud SQL
  2. API de Administrador de Cloud SQL
  3. API de Pub/Sub
  4. API de Redis
  5. API de Storage

El agente del servicio de GCP también admite una variedad de otros servicios para los que puedes agregar compatibilidad si habilitas las API que se enumeran aquí.

Instala el agente del servicio

  1. Clona el agente del servicio de GCP en tu estación de trabajo local y establece la cd a él:

    git clone --depth=1 "https://github.com/GoogleCloudPlatform/gcp-service-broker"
    cd gcp-service-broker/deployments/helm/gcp-service-broker
  2. Actualiza las dependencias del gráfico de Helm:

    helm dependency update
  3. Edita el archivo values.yaml y establece el valor de broker.service_account_json como una string que contenga todo el contenido de key.json.

    Opcional: Lee el resto de las propiedades y cambia las que necesites para que se ajusten a tu entorno.

    # ...
    broker:
      # ...
      service_account_json: "contents of key.json go here"
    # ...
  4. Si ejecutas en un entorno de producción, configura mysql.embedded como falso y proporciona credenciales para una base de datos de MySQL externa que tenga copias de seguridad automáticas y conmutación por error.

  5. Crea un espacio de nombres de Kubernetes para el agente del servicio de GCP:

    kubectl create namespace gcp-service-broker
  6. Instala el agente:

    helm install gcp-service-broker --set svccat.register=false --namespace gcp-service-broker .
  7. Registra el agente con 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"

Confirma la instalación del agente

Ejecuta kf marketplace. Deberías ver un resultado similar a este:

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.

El agente del servicio de GCP está instalado y se puede usar para crear servicios y vincularlos a aplicaciones que implementes con Kf.