Usa el agente del servicio de Google Cloud Platform (Beta, obsoleto) para acceder a Cloud Pub/Sub

En este instructivo, se muestra cómo usar el catálogo de servicios de Kubernetes y el agente del servicio de Google Cloud Platform (GCP) para conectar una aplicación que se ejecuta en GKE con Cloud Pub/Sub.

¿Por qué es necesario usar el catálogo de servicios?

El catálogo de servicios permite que las aplicaciones que se ejecutan en un clúster descubran y se conecten con facilidad a servicios externos sin tener que importar información de forma manual, como credenciales o extremos. Las dependencias de los servicios externos se modelan como recursos de Kubernetes, que pueden integrarse con facilidad a tus procesos de implementación existentes.

En este instructivo, usaremos las funciones siguientes del catálogo de servicios:

  • Descubrir los servicios de Google Cloud Platform en el agente del servicio a través del catálogo de servicios.
  • Aprovisionar una instancia de servicio para crear un recurso de Cloud.
  • Vinculación de la instancia de servicio que se aprovisionó en la aplicación de Kubernetes para ingresar credenciales en el clúster.
  • Usar la vinculación del servicio en la aplicación para acceder a la instancia de servicio, que apunta al recurso de Cloud.

Para obtener más información sobre el catálogo de servicios, consulta la documentación sobre el catálogo de servicios de Kubernetes.

Objetivos

En este instructivo, se abarcan los pasos siguientes:

  1. Crear un espacio de nombres
  2. Crear una cuenta de servicio de IAM
  3. Crear un tema de Pub/Sub
  4. Crear una suscripción de Pub/Sub al tema
  5. Probar el servicio de Pub/Sub a través de una aplicación de demostración
  6. Realiza una limpieza

Antes de comenzar

Sigue los pasos que se indican a continuación para habilitar la API de Kubernetes Engine:
  1. Consulta la página de Kubernetes Engine en Google Cloud Platform Console.
  2. Crea o selecciona un proyecto.
  3. Espera a que la API y los servicios relacionados se habiliten. Esto puede tardar varios minutos.
  4. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

Instala las siguientes herramientas de línea de comandos de este instructivo:

  • gcloud se usa para crear y borrar clústeres de Kubernetes Engine. gcloud se incluye en el SDK de Google Cloud.
  • kubectl se usa para administrar Kubernetes, el sistema de organización de clústeres que usa Kubernetes Engine. Puedes instalar kubectl con gcloud:
    gcloud components install kubectl

Establece valores predeterminados para la herramienta de línea de comandos de gcloud

Para ahorrar tiempo cuando escribes las opciones del ID del proyecto y de la zona de Compute Engine en la herramienta de línea de comandos de gcloud, puedes establecer los valores predeterminados:
gcloud config set project [PROJECT_ID]
gcloud config set compute/zone [COMPUTE_ENGINE_ZONE]

Configura el catálogo de servicios

  • Instala el catálogo de servicios y el agente del servicio en tu clúster de GKE.
  • Verifica que el catálogo de servicios se ejecute con kubectl en la línea de comandos para mostrar todos los procesos del catálogo de servicios:

    kubectl get deployment -n service-catalog

    Los informes de todas las implementaciones se deben mostrar como AVAILABLE.

  • (Opcional) Instala la herramienta svcat de CLI para mejorar la experiencia del usuario en cuanto al trabajo con los recursos del catálogo de servicios.

Paso 1: crear un espacio de nombres

Utilizar un espacio de nombres es opcional, pero se recomienda a fin de facilitar la limpieza de este instructivo.

Asígnale a tu espacio de nombres un alias de variable del entorno:

NAMESPACE=pubsub-app

Crea el espacio de nombres de la aplicación a través de Cloud Pub/Sub. Ejecuta el siguiente comando:

kubectl create namespace [NAMESPACE]

Como resultado, se debería mostrar el siguiente mensaje:

namespace "pubsub-app" created

Paso 2: crear una cuenta de servicio de IAM

Necesitas una cuenta de servicio de IAM para usar los servicios de GCP en tu aplicación. Para este instructivo, crearemos una con el ID pubsub-sa.

En caso contrario, puedes crear una cuenta de servicio de IAM a través del catálogo de servicios. Esto se puede realizar a través del aprovisionamiento y la vinculación a una instancia de servicio de la clase de servicio cloud-iam-service-account.

Aprovisiona una instancia de la cuenta de servicio de IAM

Usa el comando siguiente para almacenar el nombre de la cuenta de servicio en una variable de entorno:

SERVICE_ACCOUNT_ID=pubsub-sa

svcat

Usa el comando svcat para aprovisionar una instancia de la cuenta de servicio:

svcat provision gcp-iam \
    --class cloud-iam-service-account \
    --plan beta \
    --namespace [NAMESPACE] \
    --param accountId=$SERVICE_ACCOUNT_ID

El resultado del comando debería mostrar el siguiente mensaje:

  Name:        gcp-iam
  Namespace:   pubsub-app
  Status:
  Class:       cloud-iam-service-account
  Plan:        beta

Parameters: accountId: pubsub-sa

Verifica el estado de la instancia del servicio con el siguiente comando:

svcat get instance gcp-iam --namespace [NAMESPACE]

El resultado debería ser similar al ejemplo siguiente:

   NAME     NAMESPACE              CLASS             PLAN   STATUS
+---------+------------+---------------------------+------+--------+
  gcp-iam   pubsub-app   cloud-iam-service-account   beta   Ready

La instancia de servicio se aprovisiona de forma correcta cuando su STATUS (estado) es Ready.

kubectl

Crea un archivo YAML de ServiceInstance llamado iam_instance.yaml con la especificación siguiente. Asegúrate de que el valor del campo serviceAccount sea el mismo que el de echo $SERVICE_ACCOUNT_ID:

apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceInstance
metadata:
  name: gcp-iam
  namespace: pubsub-app
spec:
  # This should match with a SERVICE EXTERNAL NAME
  # in the list of available services.
  clusterServiceClassExternalName: cloud-iam-service-account
  # This should match with a PLAN EXTERNAL NAME
  # in the list of available service plans.
  clusterServicePlanExternalName: beta
  parameters:
    accountId: pubsub-sa

Usa el comando kubectl para aprovisionar la instancia de la cuenta de servicio con el archivo YAML:

kubectl apply -f iam_instance.yaml

El resultado del comando debería mostrar el siguiente mensaje:

serviceinstance "gcp-iam" created

Verifica el estado de la instancia del servicio con el siguiente comando:

kubectl get serviceinstances gcp-iam -n [NAMESPACE] -o 'custom-columns=INSTANCE-NAME:.metadata.name,SERVICE:.spec.clusterServiceClassExternalName,PLAN:.spec.clusterServicePlanExternalName,STATUS:.status.conditions[0].reason'

El resultado debería ser similar al ejemplo siguiente:

INSTANCE-NAME   SERVICE                     PLAN      STATUS
gcp-iam         cloud-iam-service-account   beta      ProvisionedSuccessfully

Una vez que la instancia de servicio se aprovisiona de forma correcta, también puedes verificar la cuenta de servicio de IAM correspondiente pubsub-sa@[PROJECT_ID].iam.gserviceaccount.com en Cloud Console.

Realiza la vinculación a la instancia de la cuenta de servicio de IAM

Realizar la vinculación a la instancia de la cuenta de servicio creará un secreto en el mismo espacio de nombres. El secreto contiene el nombre de la cuenta de servicio y una clave privada a la que tu aplicación puede hacer referencia fácilmente.

Usa el comando siguiente para almacenar el nombre del secreto en una variable de entorno:

SA_SECRET_NAME=pubsub-credentials

svcat

Usa el comando svcat para realizar una vinculación a la instancia de la cuenta de servicio:

svcat bind gcp-iam --namespace [NAMESPACE] --secret-name $SA_SECRET_NAME

El resultado del comando debería mostrar el siguiente mensaje:

  Name:        gcp-iam
  Namespace:   pubsub-app
  Status:
  Instance:    gcp-iam

Parameters: {}

Verifica el estado de la vinculación del servicio a través del comando siguiente:

svcat get binding gcp-iam --namespace [NAMESPACE]

El resultado debería ser similar al ejemplo siguiente:

   NAME     NAMESPACE    INSTANCE   STATUS
+---------+------------+----------+--------+
  gcp-iam   pubsub-app   gcp-iam    Ready

Espera a que el estado de la vinculación del servicio sea Ready antes de continuar. Esto podría tardar un minuto.

kubectl

Crea un archivo YAML de ServiceBinding llamado iam_binding.yaml con la especificación siguiente:

apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceBinding
metadata:
  name: gcp-iam
  namespace: pubsub-app
spec:
  instanceRef:
    name: gcp-iam
  secretName: pubsub-credentials

Ejecuta el comando siguiente para crear la vinculación del servicio:

kubectl apply -f iam_binding.yaml

Ejecuta el comando siguiente para verificar el estado de la vinculación del servicio:

kubectl get servicebindings gcp-iam -n [NAMESPACE] -o 'custom-columns=BINDING-NAME:.metadata.name,SERVICE-INSTANCE:.spec.instanceRef.name,STATUS:.status.conditions[0].reason,OUTPUT-SECRET:.spec.secretName'

El resultado debería ser similar al ejemplo siguiente:

BINDING-NAME      SERVICE-INSTANCE   STATUS               OUTPUT-SECRET
gcp-iam           gcp-iam            InjectedBindResult   gcp-iam

Una vez que la vinculación del servicio se crea de forma correcta, debes confirmar que el secreto existe con el comando kubectl:

kubectl get secrets $SA_SECRET_NAME --namespace [NAMESPACE]

El resultado debería ser similar al ejemplo siguiente:

NAME                 TYPE      DATA      AGE
pubsub-credentials   Opaque    2         1m

También puedes visualizar el secreto que contiene las credenciales de la cuenta de servicio:

kubectl get secrets $SA_SECRET_NAME --namespace [NAMESPACE] -o yaml

Ten en cuenta que el valor privateKeyData está codificado en Base64 y contiene la clave privada de la cuenta de servicio.

Paso 3: crear un tema de Pub/Sub

Aprovisionamiento de una instancia de servicio de Pub/Sub

Ahora, utilizaremos el catálogo de servicios para aprovisionar una instancia de servicio de Pub/Sub. Esto creará un tema de Pub/Sub desde el que tu aplicación realizará publicaciones y lecturas.

svcat

Usa el comando svcat para aprovisionar una instancia de servicio de Pub/Sub:

svcat provision gcp-pubsub \
    --class cloud-pubsub \
    --plan beta \
    --namespace [NAMESPACE] \
    --param topicId=pubsub-app

El resultado del comando debería mostrar el siguiente mensaje:

  Name:        gcp-pubsub
  Namespace:   pubsub-app
  Status:
  Class:       cloud-pubsub
  Plan:        beta

Parameters: topicId: pubsub-app

Verifica el estado de la instancia del servicio con el siguiente comando:

svcat get instance gcp-pubsub --namespace [NAMESPACE]

El resultado debería ser similar al ejemplo siguiente:

     NAME      NAMESPACE       CLASS       PLAN   STATUS
+------------+------------+--------------+------+--------+
  gcp-pubsub   pubsub-app   cloud-pubsub   beta   Ready

La instancia de servicio se aprovisiona de forma correcta cuando su STATUS (estado) es Ready.

kubectl

Crea un archivo YAML de ServiceInstance llamado pubsub_instance.yaml con la especificación siguiente:

apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceInstance
metadata:
  name: gcp-pubsub
  namespace: pubsub-app
spec:
  clusterServiceClassExternalName: cloud-pubsub
  # This should match with a PLAN EXTERNAL NAME
  # in the list of available service plans for Pub/Sub.
  clusterServicePlanExternalName: beta
  parameters:
    topicId: pubsub-app

Aprovisiona una instancia de servicio de Pub/Sub a través del comando siguiente:

kubectl create -f pubsub_instance.yaml

Como resultado, se debería mostrar el siguiente mensaje:

serviceinstance "gcp-pubsub" created

Verifica el estado de la instancia de servicio de Pub/Sub a través del siguiente comando:

kubectl get serviceinstances gcp-pubsub -n [NAMESPACE] -o 'custom-columns=INSTANCE-NAME:.metadata.name,SERVICE:.spec.clusterServiceClassExternalName,PLAN:.spec.clusterServicePlanExternalName,STATUS:.status.conditions[0].reason'

Se debería mostrar un mensaje de estado similar al ejemplo siguiente:

INSTANCE-NAME   SERVICE        PLAN      STATUS
gcp-pubsub      cloud-pubsub   beta      ProvisionedSuccessfully

Una vez que la instancia del servicio Pub/Sub se aprovisiona de forma correcta, también puedes verificar el tema Pub/Sub correspondiente projects/[PROJECT_ID]/topics/pubsub-app en Cloud Console .

Realiza la vinculación a la instancia de servicio de Pub/Sub

La vinculación a la instancia de servicio de Pub/Sub causa las acciones siguientes:

  • Otorga los permisos apropiados para que la cuenta de servicio de IAM especificada acceda al servicio de Pub/Sub.
  • Permite que la información de acceso a la instancia del servicio esté disponible para la aplicación de Kubernetes, en el formato de un secreto de Kubernetes.
  • De forma opcional, crea una suscripción al tema de Pub/Sub.

La aplicación de demostración necesita que estas tareas se lleven a cabo, ya que necesitará los permisos para acceder al servicio, ejecutarse como la identidad adquirida de la cuenta de servicio, y desde allí publicar mensajes en un tema de Pub/Sub.

En la clase del servicio de Pub/Sub existen varios tipos de vinculaciones del servicio. Primero, crearemos una vinculación del servicio del tipo publisher, que contiene dos funciones: roles/pubsub.publisher y roles/pubsub.viewer. La vinculación permitirá que nuestra cuenta de servicio publique en este tema y visualice los mensajes.

Sugerencia: Para obtener más información sobre las funciones y permisos de IAM de Cloud Pub/Sub, consulta la [documentación del control de acceso] de Cloud Pub/Sub (/pubsub/docs/access-control#tbl_roles).

svcat

Usa el comando svcat para vincularte al tema de Pub/Sub como publisher:

svcat bind gcp-pubsub --namespace [NAMESPACE] --params-json '{
  "serviceAccount": "'${SERVICE_ACCOUNT_ID}'",
  "roles": [
    "roles/pubsub.publisher",
    "roles/pubsub.viewer"
  ]
}'

El resultado del comando debería mostrar el mensaje siguiente (el valor serviceAccount puede ser el nombre de la cuenta de servicio que creaste antes):

  Name:        gcp-pubsub
  Namespace:   pubsub-app
  Status:
  Instance:    gcp-pubsub

Parameters: roles:

  • roles/pubsub.publisher
  • roles/pubsub.viewer serviceAccount: pubsub-sa

Verifica el estado de la vinculación del servicio a través del comando siguiente:

svcat get binding gcp-pubsub --namespace [NAMESPACE]

El resultado debería ser similar al ejemplo siguiente:

     NAME      NAMESPACE     INSTANCE    STATUS
+------------+------------+------------+--------+
  gcp-pubsub   pubsub-app   gcp-pubsub   Ready

Espera a que el estado de la vinculación del servicio sea Ready antes de continuar. Esto podría tardar un minuto.

kubectl

Crea un archivo YAML de ServiceBinding llamado pubsub_binding.yaml con la especificación siguiente para realizar la vinculación al tema Pub/Sub como publisher. Asegúrate de que el valor del campo serviceAccount sea el mismo que el de echo $SERVICE_ACCOUNT_ID:

apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceBinding
metadata:
  name: gcp-pubsub
  namespace: pubsub-app
spec:
  instanceRef:
    name: gcp-pubsub
  parameters:
    serviceAccount: pubsub-sa
    roles:
    - roles/pubsub.publisher
    - roles/pubsub.viewer

Realiza la vinculación a la instancia de servicio de Cloud Pub/Sub:

kubectl create -f pubsub_binding.yaml

Ejecuta el comando siguiente para verificar el estado de la vinculación del servicio:

kubectl get servicebindings gcp-pubsub -n [NAMESPACE] -o 'custom-columns=BINDING-NAME:.metadata.name,SERVICE-INSTANCE:.spec.instanceRef.name,STATUS:.status.conditions[0].reason,OUTPUT-SECRET:.spec.secretName'

Debería mostrar un estado InjectedBindResult.

El secreto gcp-pubsub que se creó como resultado de la vinculación contiene el proyecto (projectId), la cuenta de servicio (serviceAccount) y el ID del tema (topicId). Puedes verificar el secreto si ejecutas el comando siguiente:

kubectl get secrets gcp-pubsub --namespace [NAMESPACE] -o yaml

Paso 4: crear una suscripción de Pub/Sub al tema

Además de requerir la vinculación a la instancia de servicio de Pub/Sub para publicar en el tema, la aplicación de demostración también necesita una vinculación del servicio con la que pueda suscribirse y leer mensajes en el tema.

Ahora crearemos otra vinculación del servicio para la instancia de servicio Pub/Sub, esta vez de tipo subscriber, que contiene una suscripción y dos funciones: roles/pubsub.subscriber y roles/pubsub.viewer. Esto creará una suscripción de Pub/Sub a este tema y permitirá que nuestra cuenta de servicio obtenga y visualice mensajes desde esta suscripción.

svcat

Usa el comando svcat para vincularte al tema de Pub/Sub como subscriber:

svcat bind gcp-pubsub \
    --name gcp-pubsub-subscription \
    --namespace [NAMESPACE] \
    --params-json '{
      "serviceAccount": "'${SERVICE_ACCOUNT_ID}'",
      "roles": [
        "roles/pubsub.subscriber",
        "roles/pubsub.viewer"
      ],
      "subscription": {
        "subscriptionId": "pubsub-app"
      }
    }'

El resultado del comando debería mostrar el mensaje siguiente (el valor serviceAccount puede ser el nombre de la cuenta de servicio que creaste antes):

  Name:        gcp-pubsub-subscription
  Namespace:   pubsub-app
  Status:
  Instance:    gcp-pubsub

Parameters: roles:

  • roles/pubsub.subscriber
  • roles/pubsub.viewer serviceAccount: pubsub-sa subscription: subscriptionId: pubsub-app

Verifica el estado de la vinculación del servicio a través del comando siguiente:

svcat get binding gcp-pubsub-subscription --namespace [NAMESPACE]

El resultado debería ser similar al ejemplo siguiente:

           NAME             NAMESPACE     INSTANCE    STATUS
+-------------------------+------------+------------+--------+
  gcp-pubsub-subscription   pubsub-app   gcp-pubsub   Ready

Espera a que el estado de la vinculación del servicio sea Ready antes de continuar. Esto podría tardar un minuto.

kubectl

Crea un archivo YAML de ServiceBinding llamado pubsub_subscription_binding.yaml para vincularte al tema de Pub/Sub como subscriber. Asegúrate de que el valor del campo serviceAccount sea el mismo que el de echo $SERVICE_ACCOUNT_ID:

apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceBinding
metadata:
  name: gcp-pubsub-subscription
  namespace: pubsub-app
spec:
  instanceRef:
    name: gcp-pubsub
  parameters:
    serviceAccount: pubsub-sa
    roles:
    - roles/pubsub.subscriber
    - roles/pubsub.viewer
    subscription:
      subscriptionId: pubsub-app

Realiza la vinculación a la instancia de servicio de Cloud Pub/Sub:

kubectl create -f pubsub_subscription_binding.yaml

Ejecuta el comando siguiente para verificar el estado de la vinculación del servicio:

kubectl get servicebindings gcp-pubsub-subscription -n [NAMESPACE] -o 'custom-columns=BINDING-NAME:.metadata.name,SERVICE-INSTANCE:.spec.instanceRef.name,STATUS:.status.conditions[0].reason,OUTPUT-SECRET:.spec.secretName'

Debería mostrar un estado InjectedBindResult.

La suscripción nueva projects/[PROJECT_ID]/subscriptions/pubsub-app se puede encontrar en Cloud Console . El secreto gcp-pubsub-subscription que se creó como resultado de la vinculación contiene el proyecto (projectId), la cuenta de servicio(serviceAccount), el ID de tema (topicId) y el ID de suscripción (subscriptionId). Puedes verificar el secreto si ejecutas el comando siguiente:

kubectl get secrets gcp-pubsub-subscription --namespace [NAMESPACE] -o yaml

Paso 5: probar el servicio de Pub/Sub con una app de demostración

Ejecuta la app de demostración en tu clúster de GKE para probar la conexión con el servicio de Cloud Pub/Sub.

Crea un archivo de trabajo de Kubernetes llamado hello_pubsub_world.yaml con la especificación siguiente (reemplaza el valor de secretName por [SA_SECRET_NAME] si creaste de forma manual el secreto para almacenar la clave privada de la cuenta de servicio):

apiVersion: batch/v1
kind: Job
metadata:
  name: hello-pubsub-world
  namespace: pubsub-app
spec:
  template:
    spec:
      volumes:
        # Make the 'pubsub-credentials' secret available as volume
        # 'google-cloud-key'.
        - name: google-cloud-key
          secret:
            secretName: pubsub-credentials
      restartPolicy: OnFailure
      containers:
        - name: hello-pubsub-world
          image: gcr.io/gcp-services/samples/hello-pubsub-world
          volumeMounts:
            # Mount the 'google-cloud-key' volume into the container file
            # system.
            - name: google-cloud-key
              mountPath: /var/secrets/google
          env:
            # Pass the path to the private key JSON file from the mounted volume
            # to the environment variable.
            - name: "GOOGLE_APPLICATION_CREDENTIALS"
              value: /var/secrets/google/privateKeyData

            # The two environment variables below come from the 'gcp-pubsub'
            # secret and, together, point at the Cloud Pub/Sub topic to use.
            - name: "GOOGLE_CLOUD_PROJECT_ID"
              valueFrom:
                secretKeyRef:
                  # Use the projectId value from the 'gcp-pubsub' secret created
                  # as a result of binding to the Pub/Sub service instance.
                  name: gcp-pubsub
                  key: projectId
            - name: "GOOGLE_CLOUD_PUBSUB_TOPIC"
              valueFrom:
                secretKeyRef:
                  # Use the topicId value from the 'gcp-pubsub' secret created
                  # as a result of binding to the Pub/Sub service instance.
                  name: gcp-pubsub
                  key: topicId

            # The environment variable below come from the
            # 'gcp-pubsub-subscription' secret and, together with the
            # GOOGLE_CLOUD_PROJECT_ID above, point at the Cloud Pub/Sub
            # subscription to use.
            - name: "GOOGLE_CLOUD_PUBSUB_SUBSCRIPTION"
              valueFrom:
                secretKeyRef:
                  # Use the subscriptionId value from the
                  # 'gcp-pubsub-subscription' secret created as a result of the
                  # subscription binding to the Pub/Sub service instance.
                  name: gcp-pubsub-subscription
                  key: subscriptionId

Observa cómo usa valores de [SA_SECRET_NAME] (debería ser pubsub-credentials si creaste una cuenta de servicio de IAM nueva), secretos gcp-pubsub y gcp-pubsub-subscription, que se crearon a partir de las vinculaciones a la cuenta de servicio de IAM y a las instancias de servicio de Pub/Sub.

Crea un trabajo:

kubectl apply -f hello_pubsub_world.yaml

El resultado del comando debería mostrar el siguiente mensaje:

job "hello-pubsub-world" created

Visualiza la lista de pods:

kubectl get pods --namespace [NAMESPACE] --show-all

Debería mostrar los detalles del pod que se ejecuta en ese espacio de nombres, que debería ser similar al ejemplo siguiente:

NAME                       READY     STATUS      RESTARTS   AGE
hello-pubsub-world-zh8hm   0/1       Completed   0          1m

Espera a que el pod tenga el estado de Completed y, luego, verifica los registros de ese pod con el comando siguiente:

kubectl -n [NAMESPACE] logs [POD_NAME]

Deberías ver líneas que contengan entradas similares a las que se muestran a continuación:

Publishing 10 messages.
Publishing done.
Subscribing 10 messages.
Got message: "hello world #9"
Got message: "hello world #0"
Got message: "hello world #1"
Got message: "hello world #2"
Got message: "hello world #3"
Got message: "hello world #4"
Got message: "hello world #5"
Got message: "hello world #6"
Got message: "hello world #7"
Got message: "hello world #8"
Subscription done.

Realiza una limpieza

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud Platform por los recursos que usaste en este instructivo:

  1. Borra el espacio de nombres de demostración, que borrará la app, las vinculaciones del servicio y las instancias de servicio:

    kubectl delete namespace [NAMESPACE]
  2. Para obtener más información sobre cómo limpiar el catálogo de servicios, consulta esta guía

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Kubernetes Engine