Este documento es una versión modificada de la documentación que se encuentra en el repositorio de GitHub de GCP Service Broker.
Requisitos previos
- Un clúster con Kf instalado.
gcloud
: Sigue estas instrucciones para instalar gcloud CLI.kubectl
: una vez que se haya instaladogcloud
, ejecutagcloud components install kubectl
.helm
: sigue estas instrucciones para instalar la CLIhelm
.git
: se necesita Git para clonar un repositorio.
Configuración
Selecciona un proyecto
Elige el Google Cloud proyecto que quieras usar en el resto de este tutorial. Debe ser el mismo proyecto que usa tu clúster de Kf.
Debes ser el propietario del proyecto que elijas. Si quieres, cambia los valores que se indican a continuación para que reflejen tu entorno y, a continuación, define estas variables de entorno en tu terminal:
export PROJECT_ID=$(gcloud config get-value project)
export SERVICE_ACCOUNT_NAME=kf-gcp-broker
Crear una cuenta de servicio para el intermediario
Crea la cuenta de servicio:
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME
Crea credenciales para que el intermediario se autentique y descárgalas en
key.json
:gcloud iam service-accounts keys create key.json --iam-account $SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
Concede permisos de propietario del proyecto al intermediario:
gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com --role "roles/owner"
Habilitar las APIs necesarias
Ahora debes habilitar las APIs para permitir que el intermediario aprovisione recursos.
El broker tiene algunas APIs que son obligatorias para que se ejecute y otras que son opcionales, pero que deben habilitarse para aprovisionar recursos de un tipo concreto.
Las APIs Cloud Resource Manager y Gestión de Identidades y Accesos son necesarias para que se ejecute el intermediario. Para habilitarlas, sigue estos pasos:
gcloud services enable cloudresourcemanager.googleapis.com iam.googleapis.com --project $PROJECT_ID
Habilitar APIs
Para aprovisionar servicios de Cloud en tu proyecto, Kf recomienda habilitar al menos las siguientes APIs:
El Service Broker de GCP también admite otros servicios a los que puedes añadir compatibilidad habilitando las APIs que se indican aquí.
Instalar el agente de servicio
Clona el agente de servicio de GCP en tu estación de trabajo local y
cd
a él:git clone --depth=1 "https://github.com/GoogleCloudPlatform/gcp-service-broker"
cd gcp-service-broker/deployments/helm/gcp-service-broker
Actualiza las dependencias del gráfico de Helm:
helm dependency update
Edita el archivo
values.yaml
y asigna abroker.service_account_json
una cadena que contenga todo el contenido dekey.json
.Opcional: lee el resto de las propiedades y cambia las que necesites para adaptarlas a tu entorno.
# ... broker: # ... service_account_json: "contents of key.json go here" # ...
Si se ejecuta en un entorno de producción, asigna el valor false a
mysql.embedded
y proporciona las credenciales de una base de datos MySQL externa que tenga copias de seguridad automáticas y conmutación por error.Crea un espacio de nombres de Kubernetes para el Service Broker de GCP:
kubectl create namespace gcp-service-broker
Instala el broker:
helm install gcp-service-broker --set svccat.register=false --namespace gcp-service-broker .
Registra el intermediario 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"
Confirmar la instalación del intermediario
Ejecuta kf marketplace
. El resultado que verás debe parecerse al siguiente:
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 de servicio de GCP está instalado y se puede usar para crear servicios y enlazarlos a las aplicaciones que despliegues con Kf.