Installer GCP Service Broker

Ce document est une version modifiée de la documentation disponible sur le dépôt GitHub pour GCP Service Broker.

Prérequis

  1. Un cluster avec Kf installé.
  2. gcloud : Suivez ces instructions pour installer gcloud CLI.
  3. kubectl : Une fois gcloud installé, exécutez la commande gcloud components install kubectl.
  4. helm : Suivez ces instructions pour installer la CLI helm.
  5. git : Git est nécessaire pour cloner un dépôt.

Configuration

Sélectionnez un projet

Choisissez le projet Google Cloud que vous souhaitez utiliser pour la suite de ce tutoriel. Il doit s'agir du même projet que celui utilisé par votre cluster Kf.

Vous devez être propriétaire du projet que vous choisissez. Modifiez éventuellement les valeurs ci-dessous afin de refléter votre environnement, puis définissez ces variables d'environnement dans votre terminal :

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

Créer un compte de service pour l'agent

  1. Créez le compte de service :

    gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME
    
  2. Créez des identifiants pour permettre à l'agent de s'authentifier, puis téléchargez-les dans key.json :

    gcloud iam service-accounts keys create key.json --iam-account $SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
    
  3. Accordez les autorisations de propriétaire de projet à l'agent :

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

Activer les API requises

Vous devez maintenant activer des API pour permettre à l'agent de provisionner des ressources.

L'agent dispose de quelques API requises pour s'exécuter et comporte également d'autres API, facultatives, mais devant être activées pour provisionner des ressources d'un type particulier.

Les API Cloud Resource Manager et Identity and Access Management sont nécessaires pour que l'agent s'exécute. Pour les activer, procédez comme suit :

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

Activer des API

Pour provisionner des services cloud sur votre projet, Kf recommande d'activer au moins les API suivantes :

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

GCP Service Broker est également compatible avec divers autres services pour lesquels vous pouvez ajouter une assistance en activant les API répertoriées ici.

Installer l'agent de service

  1. Clonez le service GCP Service Broker sur votre poste de travail local et remplacez le répertoire avec la commande cd :

    git clone --depth=1 "https://github.com/GoogleCloudPlatform/gcp-service-broker"
    cd gcp-service-broker/deployments/helm/gcp-service-broker
    
  2. Mettez à jour les dépendances du chart Helm :

    helm dependency update
    
  3. Modifiez le fichier values.yaml et définissez la valeur de broker.service_account_json pour qu'elle corresponde à une chaîne contenant l'intégralité du contenu de key.json.

    Facultatif : consultez les autres propriétés et modifiez-les si besoin pour les adapter à votre environnement.

    # ...
    broker:
      # ...
      service_account_json: "contents of key.json go here"
    # ...
    
  4. En cas d'exécution dans un environnement de production, définissez mysql.embedded sur "false" et fournissez les identifiants d'une base de données MySQL externe avec sauvegardes automatiques et basculement.

  5. Créez un espace de noms Kubernetes pour GCP Service Broker :

    kubectl create namespace gcp-service-broker
    
  6. Installez l'agent :

    helm install gcp-service-broker --set svccat.register=false --namespace gcp-service-broker .
    
  7. Enregistrez l'agent avec 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"
    

Confirmer l'installation de l'agent

Exécutez kf marketplace. Un résultat semblable à celui-ci s'affiche :

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 est installé et peut être utilisé pour créer des services et les lier aux applications que vous déployez avec Kf.