Usar la página Aplicaciones de GKE en la consola de Google Cloud


En este tutorial se describe cómo usar la página Aplicaciones de Google Kubernetes Engine (GKE) en la consola de Google Cloud .

Cuando adoptas Kubernetes para muchas aplicaciones y recursos, puede ser difícil identificar y monitorizar los distintos componentes relacionados con una aplicación. Cuando implementas varias aplicaciones en cada espacio de nombres, puede ser difícil saber qué recursos están relacionados con qué aplicación. Además, a menudo tienes que buscar en varias ubicaciones documentación y metadatos que describan qué son las aplicaciones, quiénes son sus propietarios y cómo interactuar con los servicios.

GKE ayuda a resolver estos problemas con la página Aplicaciones:

Vista parcial de la página Aplicaciones, que muestra una lista de aplicaciones junto con varias propiedades.

La página Aplicaciones es un recurso independiente de tu arquitectura que describe los metadatos de tu sistema. Puedes usar esta página para organizar visualmente tus recursos sin cambiar la arquitectura. Si defines valores en un archivo YAML, puedes agrupar todos los recursos de tu aplicación e incluir metadatos vitales para tu equipo de operaciones. Crear, modificar y eliminar el archivo YAML no afecta a los recursos que ya tengas, por lo que puedes trabajar con ellos inmediatamente sin poner en riesgo tu sistema.

Para mostrar el contenido de esta página, en este tutorial se explica cómo implementar el recurso de aplicación de Kubernetes en una aplicación y cómo añadir metadatos definidos por el usuario para organizar y simplificar la gestión de la aplicación en GKE.

Este tutorial está dirigido a desarrolladores que crean aplicaciones para que se ejecuten en GKE. Se presupone que conoces los conceptos básicos de Kubernetes y que tienes experiencia escribiendo archivos YAML de recursos de Kubernetes.

Objetivos

  • Presenta el recurso de aplicación de Kubernetes.
  • Añade el recurso de aplicación de Kubernetes a una arquitectura ya creada.
  • Crea y consulta información personalizada sobre una aplicación a través de la consolaGoogle Cloud .

Costes

En este documento, se utilizan los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costes basada en el uso previsto, utiliza la calculadora de precios.

Los usuarios nuevos Google Cloud pueden disfrutar de una prueba gratuita.

Cuando termines las tareas que se describen en este documento, puedes evitar que se te siga facturando eliminando los recursos que has creado. Para obtener más información, consulta la sección Limpiar.

Antes de empezar

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Enable the Compute Engine and Kubernetes Engine APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  4. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    Los comandos de este tutorial se ejecutan en Cloud Shell o en el editor de Cloud Shell.

    Preparar el entorno

    1. En Cloud Shell, define las variables de entorno de tu proyecto:

      export PROJECT_ID=PROJECT_ID
      gcloud config set core/project $PROJECT_ID
      gcloud config set compute/zone us-central1-c

      Sustituye PROJECT_ID por el ID de tu proyecto. Google Cloud

    2. Crea un clúster de GKE:

      gcloud container clusters create sample-cluster
      

      En este tutorial, ejecutarás aplicaciones en un clúster de GKE predeterminado.

    Instalar las aplicaciones de ejemplo

    En este tutorial, simularás varias aplicaciones que se ejecutan en el mismo espacio de nombres mediante una aplicación de ejemplo básica de Nginx y la aplicación de ejemplo Bank of Anthos.

    1. En Cloud Shell, instala la aplicación de ejemplo de Nginx:

      kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/application/web/web.yaml
      

      Este comando crea un recurso StatefulSet llamado web y un servicio llamado nginx. En la Google Cloud consola, puedes ver estos recursos en las páginas de GKE Cargas de trabajo y Servicios y entradas.

    2. Clona el repositorio de GitHub que contiene la aplicación de ejemplo Bank of Anthos:

      git clone https://github.com/GoogleCloudPlatform/bank-of-anthos.git
      cd bank-of-anthos
      
    3. Genera una clave SSH y almacénala como un secreto de Kubernetes:

      openssl genrsa -out jwtRS256.key 4096
      openssl rsa -in jwtRS256.key -outform PEM -pubout -out jwtRS256.key.pub
      kubectl create secret generic jwt-key --from-file=./jwtRS256.key --from-file=./jwtRS256.key.pub
      

      La aplicación de ejemplo Bank of Anthos requiere una clave SSH para ejecutarse.

    4. Despliega la aplicación de ejemplo en tu clúster:

      kubectl apply -f kubernetes-manifests
      

      Al cabo de unos instantes, podrás ver los recursos de la aplicación en las siguientes páginas de la Google Cloud consola:

      Ten en cuenta lo siguiente:

      • Los recursos de las aplicaciones de ejemplo de Nginx y Bank of Anthos están mezclados.
      • Aún no se muestra ningún recurso en la página Aplicaciones. Rellena la página Aplicaciones en los pasos posteriores.

    Preparar GKE

    Los recursos que se muestran en la página Aplicaciones se especifican con el tipo de recurso de aplicación de Kubernetes, una definición de recurso personalizado (CRD) proporcionada por el proyecto de código abierto Kubernetes. De forma predeterminada, el CRD de Application no está habilitado en Kubernetes. Algunos servicios de GKE, como Marketplace y Application Deployment, instalan el CRD Application, pero si no utilizas ninguno de esos servicios, el CRD Application no estará disponible de forma predeterminada.

    Para instalar el CRD de Application, haz lo siguiente:

    1. En Cloud Shell, aplica el CRD de Application una vez en cada clúster:

      kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/application/master/deploy/kube-app-manager-aio.yaml
      
    2. (Opcional) Una vez que se haya completado el comando, consulta el CRD de la aplicación en el clúster:

      kubectl get crd
      

      El siguiente resultado es una lista de CRDs instalados, entre los que se incluyen applications.app.k8s.io:

      NAME                                    CREATED AT
      applications.app.k8s.io                 2020-07-24T19:32:20Z
      backendconfigs.cloud.google.com         2020-07-24T19:28:40Z
      managedcertificates.networking.gke.io   2020-07-24T19:28:57Z
      scalingpolicies.scalingpolicy.kope.io   2020-07-24T19:28:57Z
      updateinfos.nodemanagement.gke.io       2020-07-24T19:28:57Z
      

    Incluir recursos de la aplicación

    Ahora que el CRD de Application está disponible en el clúster, el siguiente paso es crear e implementar una instancia del recurso Application.

    Como el recurso Application es un recurso de Kubernetes, tiene una estructura similar a otros recursos de Kubernetes, incluidos los campos y las opciones de apiVersion, kind, metadata y spec:

    apiVersion: app.k8s.io/v1beta1
    kind: Application
    metadata:
      name: ...
    spec:
       ...
    

    En las siguientes secciones, trabajarás con varios campos y opciones disponibles en el recurso Application.

    Crear el recurso Application base

    Puedes añadir el recurso Application a cualquier conjunto de recursos. En este tutorial, empezarás con un recurso vacío y rellenarás cada sección.

    1. En Cloud Shell, crea y edita un archivo application.yaml en el directorio kubernetes-manifests:

      touch kubernetes-manifests/application.yaml
      edit kubernetes-manifests/application.yaml
      

      Se abre el editor de Cloud Shell y se muestra un archivo en blanco.

    2. Pega las siguientes líneas para definir tu primera aplicación:

      apiVersion: app.k8s.io/v1beta1
      kind: Application
      metadata:
        name: "bank-of-anthos"
      
    3. En la barra de menú de Cloud Shell, haz clic en Abrir terminal.

    4. En Cloud Shell, aplica el recurso:

      kubectl apply -f kubernetes-manifests/application.yaml
      
    5. En la Google Cloud consola, ve a la página Aplicaciones.

      Ve a Aplicaciones.

      En la página Aplicaciones se muestran los recursos que has añadido:

      La aplicación Bank of Anthos se incluye en la lista de aplicaciones.

    Incluir recursos por componente

    En la página Aplicaciones se muestra la aplicación Bank of Anthos. Cuando hagas clic en bank-of-anthos en el campo Nombre, verás información básica sobre la aplicación:

    Los detalles de la aplicación incluyen el clúster, el espacio de nombres y la fecha de creación.

    Puedes añadir varios tipos de componentes para que se muestren en la consolaGoogle Cloud . Por ejemplo, para mostrar Services, Deployments y StatefulSets, edita la sección componentKinds de la definición de application.yaml, como se indica a continuación:

    spec:
      componentKinds:
        - group: v1
          kind: Service
        - group: apps
          kind: Deployment
        - group: v1
          kind: StatefulSet
    

    En los pasos siguientes, añadirás estos componentes a la definición de recursos de Bank of Anthos:

    1. En la barra de menú de Cloud Shell, haz clic en Abrir editor.

    2. En el editor de Cloud Shell, sobrescribe el contenido del archivo kubernetes-manifests/application.yaml pegando lo siguiente:

      apiVersion: app.k8s.io/v1beta1
      kind: Application
      metadata:
        name: "bank-of-anthos"
      spec:
        componentKinds:
          - group: v1
            kind: Service
          - group: apps
            kind: Deployment
          - group: v1
            kind: StatefulSet
      

      Al añadir la sección spec, se añaden Service, Deployment y StatefulSet a la definición de tu aplicación.

    3. En Cloud Shell, aplica el recurso:

      kubectl apply -f kubernetes-manifests/application.yaml
      
    4. En la Google Cloud consola, ve a la página de detalles de la aplicación Bank of Anthos.

      Ir a los detalles de Bank of Anthos

      Se muestran los componentes del tipo seleccionado:

      La lista de detalles incluye tipos de componentes como Servicio y Despliegue.

    Filtrar recursos con selectores

    En este punto del tutorial, la lista de componentes incluye todos los recursos de ambas aplicaciones de ejemplo para el conjunto de componentes definido de todo el espacio de nombres. Por ejemplo, en el siguiente diagrama se muestra el servicio nginx de la aplicación de ejemplo Nginx y el despliegue transactionhistory de la aplicación de ejemplo Bank of Anthos:

    La lista de componentes se genera a partir de todas las aplicaciones del espacio de nombres.

    Para asegurarte de que solo se muestren los recursos de una aplicación (por ejemplo, la aplicación Bank of Anthos), puedes usar selectores para identificar recursos específicos. Para ver cómo funcionan los selectores, añade una etiqueta a tu recurso siguiendo estos pasos:

    1. En Cloud Shell, abre el archivo frontend.yaml:

      edit kubernetes-manifests/frontend.yaml
      
    2. En el editor de Cloud Shell, pega la siguiente entrada label después de la línea 18:

      labels:
          app.kubernetes.io/name: "bank-of-anthos"
      

      La sección metadata tiene el siguiente aspecto:

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: frontend
        labels:
          app.kubernetes.io/name: "bank-of-anthos"
      spec:
      

      El archivo application.yaml completado tendrá este aspecto:

      apiVersion: app.k8s.io/v1beta1
      kind: Application
      metadata:
        name: "bank-of-anthos"
        labels:
          app.kubernetes.io/name: "bank-of-anthos"
      spec:
        selector:
          matchLabels:
           app.kubernetes.io/name: "bank-of-anthos"
        componentKinds:
          - group: v1
            kind: Service
          - group: apps
            kind: Deployment
          - group: v1
            kind: StatefulSet
      
    3. En Cloud Shell, aplica los recursos:

      kubectl apply -f kubernetes-manifests/
      
    4. En la Google Cloud consola, ve a la página de detalles de la aplicación Bank of Anthos.

      Ir a los detalles de Bank of Anthos

      Solo se muestra el recurso que coincide con la etiqueta específica:

      En la lista de componentes se muestra el recurso de implementación.

    Aplicar etiquetas a todos los recursos con kustomize

    Aplicar etiquetas manualmente a todos los recursos de una aplicación puede ser tedioso. En los siguientes pasos se muestra cómo usar kustomize para añadir etiquetas a todos los recursos de forma eficiente:

    1. En Cloud Shell, descarga kustomize:

      curl -s "https://raw.githubusercontent.com/\
      kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash
      
    2. Para crear y editar un archivo kustomization.yaml, sigue estos pasos:

      touch kubernetes-manifests/kustomization.yaml
      edit kubernetes-manifests/kustomization.yaml
      
    3. En el editor de Cloud Shell, añade las siguientes líneas a kustomization.yaml:

      apiVersion: kustomize.config.k8s.io/v1beta1
      kind: Kustomization
      
      resources:
      - accounts-db.yaml
      - application.yaml
      - balance-reader.yaml
      - config.yaml
      - contacts.yaml
      - frontend.yaml
      - ledger-db.yaml
      - ledger-writer.yaml
      - loadgenerator.yaml
      - transaction-history.yaml
      - userservice.yaml
      
      commonLabels:
          app.kubernetes.io/name: "bank-of-anthos"
      

      En esta definición de kustomization.yaml, se especifica a qué recursos se deben aplicar las modificaciones y qué modificaciones se deben hacer. En este caso, especifica que todos los recursos deben tener la etiqueta común app.kubernetes.io/name: "bank-of-anthos".

    4. En Cloud Shell, elimina los recursos antiguos:

      kubectl delete -f kubernetes-manifests/
      

      Es necesario eliminar los recursos antiguos antes de aplicar los nuevos recursos que se especifican en kustomization.yaml.

    5. Aplica los recursos con la marca kustomize en lugar de la marca file:

      ./kustomize build kubernetes-manifests/ | kubectl apply -f -
      
    6. En la Google Cloud consola, ve a la página de detalles de la aplicación Bank of Anthos.

      Ir a los detalles de Bank of Anthos

      En la página de detalles se muestran los recursos de la aplicación de ejemplo Bank of Anthos y no los de la aplicación de ejemplo Nginx:

      Solo se muestran los componentes de Bank of Anthos, como StatefulSet.

    Añadir metadatos útiles en la pantalla

    Puedes mostrar metadatos personalizados de una aplicación en la consolaGoogle Cloud . Puedes incluir qué hace la aplicación, quién es su propietario, dónde encontrar más información sobre ella y cómo iniciar sesión. Este tipo de información es valioso para varios casos prácticos, por ejemplo, si gestionas varias aplicaciones en tu organización.

    En las siguientes secciones se describe parte de los metadatos que puedes añadir.

    Añadir una descripción y documentación

    Puedes añadir una descripción y enlaces que aparecerán en el panel Información de la aplicación. Para acceder a este panel desde la página Detalles, haz clic en Mostrar panel de información.

    Para mostrar información en este panel, debe definir elementos como description y links en la sección descriptor de su archivo application.yaml.

    descriptor:
        description:
        links:
        - description:
          url:
    

    Para actualizar la sección descriptor, sigue estos pasos:

    1. En el editor de Cloud Shell, sobrescribe el contenido del archivo application.yaml pegando lo siguiente:

      apiVersion: app.k8s.io/v1beta1
      kind: Application
      metadata:
        name: "bank-of-anthos"
        labels:
          app.kubernetes.io/name: "bank-of-anthos"
      spec:
        selector:
          matchLabels:
           app.kubernetes.io/name: "bank-of-anthos"
      
        componentKinds:
          - group: v1
            kind: Service
          - group: apps
            kind: Deployment
          - group: v1
            kind: StatefulSet
      
        descriptor:
          description: |-
              This application simulates a bank's payment processing network using
              [Anthos](/anthos/).
              Bank of Anthos allows users to create artificial accounts and
              simulate transactions between accounts. Bank of Anthos was developed
              to create an end-to-end sample demonstrating Anthos best practices.
      
          links:
          - description: 'About Anthos on GCP'
            url: /anthos/
          - description: 'Bank of Anthos GitHub Repository'
            url: https://github.com/GoogleCloudPlatform/bank-of-anthos
      
    2. En Cloud Shell, despliega el recurso Application:

      kubectl apply -f kubernetes-manifests/application.yaml
      
    3. En la Google Cloud consola, ve a la página de detalles de la aplicación Bank of Anthos.

      Ir a los detalles de Bank of Anthos

    4. Para revisar las actualizaciones, haz clic en Mostrar panel de información.

      En el panel Información de la aplicación se muestra una descripción y una lista de documentos:

      Los documentos de la lista tienen formato de hiperenlace.

    Incluye el tipo de software

    La página Aplicaciones incluye un campo (Software) para el tipo de software en la lista de aplicaciones. Puedes personalizar este campo para organizar y categorizar tus aplicaciones según tus necesidades. Por ejemplo, puede indicar si el software es interno o externo. También puedes indicar qué tipo base implementa una aplicación si tienes varias aplicaciones creadas a partir de un tipo base compartido.

    Para añadir una descripción personalizada al tipo de software, usa el campo type de la sección descriptor del archivo application.yaml:

     descriptor:
        type: External App
    

    Puedes mostrar el valor de type como un hiperenlace en la consolaGoogle Cloud . Para especificar la URL del hiperenlace, utilice la primera entrada de la sección links. En los pasos siguientes, actualiza la sección links de la siguiente manera:

        links:
        - description: 'Bank of Anthos GitHub Repository'
          url: https://github.com/GoogleCloudPlatform/bank-of-anthos
    
    1. En el editor de Cloud Shell, sobrescribe el contenido de application.yaml pegando lo siguiente:

      apiVersion: app.k8s.io/v1beta1
      kind: Application
      metadata:
        name: "bank-of-anthos"
        labels:
          app.kubernetes.io/name: "bank-of-anthos"
      spec:
        selector:
          matchLabels:
           app.kubernetes.io/name: "bank-of-anthos"
      
        componentKinds:
          - group: v1
            kind: Service
          - group: apps
            kind: Deployment
          - group: v1
            kind: StatefulSet
      
        descriptor:
          type: External App
      
          description: |-
              This application simulates a bank's payment processing network using [Anthos](/anthos/).
              Bank of Anthos allows users to create artificial accounts and simulate transactions between accounts. Bank of Anthos was developed to create an end-to-end sample demonstrating Anthos best practices.
      
          links:
          - description: 'About Anthos on GCP'
            url: /anthos/
          - description: 'Bank of Anthos GitHub Repository'
            url: https://github.com/GoogleCloudPlatform/bank-of-anthos
      
    2. En Cloud Shell, despliega el recurso Application:

      kubectl apply -f kubernetes-manifests/application.yaml
      
    3. En la Google Cloud consola, ve a la página Aplicaciones.

      Ve a Aplicaciones.

      Aplicación externa se muestra en el campo Software:

      El tipo de software Aplicación externa tiene el formato de un hiperenlace.

    Incluir una versión de la aplicación

    La página principal Aplicaciones incluye un campo para la versión. En la práctica, el valor de este campo se actualiza mediante programación para hacer referencia a la versión implementada.

    Para rellenar el campo de versión, incluye el campo version en descriptor, como en el ejemplo siguiente:

      descriptor:
        type: External App
        version: "2.3.2"
    

    En los pasos siguientes, añadirá un campo para la versión de la aplicación.

    1. En el editor de Cloud Shell, sobrescribe el contenido del archivo application.yaml pegando lo siguiente:

      apiVersion: app.k8s.io/v1beta1
      kind: Application
      metadata:
        name: "bank-of-anthos"
        labels:
          app.kubernetes.io/name: "bank-of-anthos"
      spec:
        selector:
          matchLabels:
           app.kubernetes.io/name: "bank-of-anthos"
      
        componentKinds:
          - group: v1
            kind: Service
          - group: apps
            kind: Deployment
          - group: v1
            kind: StatefulSet
      
        descriptor:
          type: External App
      
          version: "2.3.2"
      
          description: |-
              This application simulates a bank's payment processing network using [Anthos](/anthos/).
              Bank of Anthos allows users to create artificial accounts and simulate transactions between accounts. Bank of Anthos was developed to create an end-to-end sample demonstrating Anthos best practices.
      
          links:
          - description: 'About Anthos on GCP'
            url: /anthos/
          - description: 'Bank of Anthos GitHub Repository'
            url: https://github.com/GoogleCloudPlatform/bank-of-anthos
      
    2. En Cloud Shell, despliega el recurso Application:

      kubectl apply -f kubernetes-manifests/application.yaml
      
    3. En la Google Cloud consola, ve a la página Aplicaciones.

      Ve a Aplicaciones.

      El campo Versión de la aplicación Bank of Anthos se muestra como 2.3.2:

      Los detalles de la aplicación incluyen los campos de tipo de software y versión.

    Añadir detalles del mantenedor

    En este paso, añade texto estático personalizado a la sección principal de la página Aplicaciones. Estos detalles se especifican en la sección info del archivo application.yaml de la siguiente manera:

      info:
      - name: LABEL
        value: STRING

    Para incluir valores estáticos, debe proporcionar los detalles de LABEL y STRING en la sección info. Por ejemplo, puedes escribir Owner para name y John Smith para value.

    1. En el editor de Cloud Shell, sobrescribe el contenido de application.yaml pegando lo siguiente:

      apiVersion: app.k8s.io/v1beta1
      kind: Application
      metadata:
        name: "bank-of-anthos"
        labels:
          app.kubernetes.io/name: "bank-of-anthos"
      spec:
        selector:
          matchLabels:
           app.kubernetes.io/name: "bank-of-anthos"
      
        componentKinds:
          - group: v1
            kind: Service
          - group: apps
            kind: Deployment
          - group: v1
            kind: StatefulSet
      
        descriptor:
          type: External App
      
          version: "2.3.2"
      
          description: |-
              This application simulates a bank's payment processing network using [Anthos](/anthos/).
              Bank of Anthos allows users to create artificial accounts and simulate transactions between accounts. Bank of Anthos was developed to create an end-to-end sample demonstrating Anthos best practices.
      
          links:
          - description: 'About Anthos on GCP'
            url: /anthos/
          - description: 'Bank of Anthos GitHub Repository'
            url: https://github.com/GoogleCloudPlatform/bank-of-anthos
      
        info:
        - name: Owner
          value: John Smith
      
    2. En Cloud Shell, despliega el recurso Application:

      kubectl apply -f kubernetes-manifests/application.yaml
      
    3. En la Google Cloud consola, ve a la página de detalles de la aplicación Bank of Anthos.

      Ir a los detalles de Bank of Anthos

      La página de detalles incluye un propietario para la aplicación Bank of Anthos:

      Juan Pérez aparece como propietario.

    Exponer un endpoint de aplicación

    Además de los valores estáticos, puedes exponer valores dinámicos de la propia implementación. En los siguientes pasos, se muestra la dirección IP del balanceador de carga para que cualquier persona que vea la página de detalles de la aplicación pueda acceder a ella directamente.

    Para mostrar este valor, se usa la especificación serviceRef. Otras especificaciones válidas son configMapKeyRef, ingressRef y secretKeyRef.

    En la especificación serviceRef, se incluyen estos valores dinámicos mediante el tipo Reference. En este tutorial, la especificación de serviceRef es la siguiente:

     info:
      - name: LABEL
        type: Reference
        valueFrom:
          serviceRef:
            name: SERVICE_NAME
            fieldPath: DATA_LOCATION

    Puedes sustituir los siguientes valores:

    • LABEL: etiqueta que describe una instancia de Reference específica; por ejemplo, App Frontend URL
    • SERVICE_NAME: el nombre que identifica el servicio. Por ejemplo, frontend.
    • DATA_LOCATION: la ubicación de los datos en el Servicio. Por ejemplo, status.loadBalancer.ingress[0].ip.

    Las especificaciones serviceRef y ingressRef también admiten el elemento path. Si su URL requiere detalles relacionados con la ruta, debe incluirlos en el campo path:

     info:
      - name: LABEL
        type: Reference
        valueFrom:
          serviceRef:
            name: SERVICE_NAME
            fieldPath: DATA_LOCATION
            path: /wp-admin

    La dirección IP y la ruta del endpoint se concatenan. Por ejemplo, 35.202.90.0/wp-admin.

    También puedes forzar el uso de HTTP o HTTPS mediante el campo protocol, como se indica a continuación:

     info:
      - name: LABEL
        type: Reference
        valueFrom:
          serviceRef:
            name: SERVICE_NAME
            fieldPath: DATA_LOCATION
            path: /wp-admin
            protocol: HTTPS

    Estos detalles generan la siguiente URL:

    https://35.202.90.0/wp-admin
    

    En los siguientes pasos, usarás serviceRef para exponer la dirección IP del balanceador de carga del servicio de la aplicación Bank of Anthos:

    1. En el editor de Cloud Shell, sobrescribe el contenido del archivo application.yaml con lo siguiente:

      apiVersion: app.k8s.io/v1beta1
      kind: Application
      metadata:
        name: "bank-of-anthos"
        labels:
          app.kubernetes.io/name: "bank-of-anthos"
      spec:
        selector:
          matchLabels:
           app.kubernetes.io/name: "bank-of-anthos"
      
        componentKinds:
          - group: v1
            kind: Service
          - group: apps
            kind: Deployment
          - group: v1
            kind: StatefulSet
      
        descriptor:
          type: External App
      
          version: "2.3.2"
      
          description: |-
              This application simulates a bank's payment processing network using [Anthos](/anthos/).
              Bank of Anthos allows users to create artificial accounts and simulate transactions between accounts. Bank of Anthos was developed to create an end-to-end sample demonstrating Anthos best practices.
      
          links:
          - description: 'About Anthos on GCP'
            url: /anthos/
          - description: 'Bank of Anthos GitHub Repository'
            url: https://github.com/GoogleCloudPlatform/bank-of-anthos
      
        info:
        - name: Owner
          value: John Smith
        - name: App Frontend URL
          type: Reference
          valueFrom:
            serviceRef:
              name: frontend
              fieldPath: status.loadBalancer.ingress[0].ip
              protocol: HTTPS
      
    2. En Cloud Shell, despliega el recurso Application:

      kubectl apply -f kubernetes-manifests/application.yaml
      
    3. En la Google Cloud consola, ve a la página de detalles de la aplicación Bank of Anthos.

      Ir a los detalles de Bank of Anthos

      La página de detalles incluye una dirección IP de endpoint para la aplicación Bank of Anthos:

      La dirección IP se etiqueta como URL de frontend de la aplicación.

    Proporcionar credenciales de acceso

    Como se ha mencionado anteriormente, puedes exponer secretos de Kubernetes a través de la consolaGoogle Cloud mediante el elemento secretKeyRef. En este tutorial, proporcionas un nombre de usuario y una contraseña al operador para que pueda iniciar sesión en la aplicación.

    1. En Cloud Shell, crea el secreto:

      kubectl create secret generic boa-access --from-literal=boa-user=testuser --from-literal=boa-pass=password
      
    2. En el editor de Cloud Shell, sobrescribe el contenido del archivo application.yaml pegando lo siguiente. Esta actualización incluye referencias al nombre de usuario y la contraseña en la anotación secretKeyRef.

      apiVersion: app.k8s.io/v1beta1
      kind: Application
      metadata:
        name: "bank-of-anthos"
        labels:
          app.kubernetes.io/name: "bank-of-anthos"
      spec:
        selector:
          matchLabels:
           app.kubernetes.io/name: "bank-of-anthos"
      
        componentKinds:
          - group: v1
            kind: Service
          - group: apps
            kind: Deployment
          - group: v1
            kind: StatefulSet
      
        descriptor:
          type: External App
      
          version: "2.3.2"
      
          description: |-
              This application simulates a bank's payment processing network using [Anthos](/anthos/).
              Bank of Anthos allows users to create artificial accounts and simulate transactions between accounts. Bank of Anthos was developed to create an end-to-end sample demonstrating Anthos best practices.
      
          links:
          - description: 'About Anthos on GCP'
            url: /anthos/
          - description: 'Bank of Anthos GitHub Repository'
            url: https://github.com/GoogleCloudPlatform/bank-of-anthos
      
        info:
        - name: Owner
          value: John Smith
        - name: App Frontend URL
          type: Reference
          valueFrom:
            serviceRef:
              name: frontend
              fieldPath: status.loadBalancer.ingress[0].ip
              protocol: HTTPS
        - name: TestUser username
          type: Reference
          valueFrom:
            secretKeyRef:
              name: boa-access
              key: boa-user
      
        - name: TestUser password
          type: Reference
          valueFrom:
            secretKeyRef:
              name: boa-access
              key: boa-pass
      
    3. En Cloud Shell, despliega el recurso Application:

      kubectl apply -f kubernetes-manifests/application.yaml
      
    4. En la Google Cloud consola, ve a la página de detalles de la aplicación Bank of Anthos.

      Ir a los detalles de Bank of Anthos

    5. Haz clic en Vista previa de datos secretos. Se muestran el nombre de usuario y la contraseña:

      Los detalles de la aplicación incluyen enlaces para acceder a las credenciales.

    La posibilidad de mostrar datos secretos puede ser una función útil para tus equipos de operaciones. Sin embargo, la capacidad de ver estos secretos se rige por los permisos de acceso de Gestión de Identidades y Accesos (IAM) de la página de detalles de GKE. Cualquier persona con permisos para ver clústeres también puede ver secretos, por lo que es importante que pienses detenidamente qué expones.

    Añadir un icono de aplicación

    Para que tu aplicación destaque, puedes incluir un logotipo que se muestre en la lista de aplicaciones y en la página de detalles. Para incluir un logotipo, especifica el URI de datos de la imagen en la anotación kubernetes-engine.cloud.google.com/icon.

    Convertir una imagen en un URI de datos no es el objetivo de este tutorial. Sin embargo, si buscas en Google "convert image to data uri", encontrarás varias utilidades que te ayudarán a generar la cadena de datos a partir de una imagen. Como el URI de datos de la imagen utilizada en esta sección es muy largo, no es práctico incluirlo en el tutorial. El URI de datos completo se puede consultar en el archivo application.yaml completado. La cadena de URI de datos debe empezar así: data:image/png;base64,iVBORw0KGgoAAAANSUhEUg.... y terminar con K5CYII=. Asegúrese de no incluir comillas finales ni caracteres HTML.

    El archivo application.yaml completo está disponible como gist para que lo consultes.

    Para añadir un icono, actualiza la sección metadata de application.yaml:

    1. Copia el siguiente código:

      annotations:
        kubernetes-engine.cloud.google.com/icon: >-
          data:image/png;base64,DATA_URI

      Sustituye DATA_URI por la cadena que se encuentra en el archivo application.yaml completado al que se hace referencia anteriormente.

    2. En el editor de Cloud Shell, pega el código que has copiado después de la sección labels en la sección metadata de application.yaml.

      Esa sección de application.yaml tiene un aspecto similar al siguiente, donde DATA_URI representa el valor del URI de datos.

      apiVersion: app.k8s.io/v1beta1
      kind: Application
      metadata:
        name: "bank-of-anthos"
        labels:
          app.kubernetes.io/name: "bank-of-anthos"
        annotations:
          kubernetes-engine.cloud.google.com/icon: >-
            data:image/png;base64,DATA_URI
      spec:
      
    3. En Cloud Shell, despliega el recurso de aplicación:

      kubectl apply -f kubernetes-manifests/application.yaml
      
    4. En la Google Cloud consola, ve a la página Aplicaciones.

      Ve a Aplicaciones.

      Se muestra un logotipo en la lista de aplicaciones:

      Se muestra un logotipo junto al nombre de la aplicación en la lista de aplicaciones.

    5. En la Google Cloud consola, ve a la página de detalles de la aplicación Bank of Anthos.

      Ir a los detalles de Bank of Anthos

      Se muestra un logotipo en el encabezado de la página de detalles:

      Se muestra un logotipo en la parte superior de la lista de detalles de la aplicación.

    Limpieza

    Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en este tutorial, puedes eliminar el Google Cloud proyecto que has creado para este tutorial.

    Eliminar el proyecto

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    Siguientes pasos