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:
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.
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
-
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 theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, activate Cloud Shell.
Los comandos de este tutorial se ejecutan en Cloud Shell o en el editor de Cloud Shell.
Preparar el entorno
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 CloudCrea 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.
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 llamadonginx
. En la Google Cloud consola, puedes ver estos recursos en las páginas de GKE Cargas de trabajo y Servicios y entradas.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
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.
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:
- La página Cargas de trabajo
- La página Servicios e Ingress
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:
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
(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
yspec
: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.
En Cloud Shell, crea y edita un archivo
application.yaml
en el directoriokubernetes-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.
Pega las siguientes líneas para definir tu primera aplicación:
apiVersion: app.k8s.io/v1beta1 kind: Application metadata: name: "bank-of-anthos"
En la barra de menú de Cloud Shell, haz clic en Abrir terminal.
En Cloud Shell, aplica el recurso:
kubectl apply -f kubernetes-manifests/application.yaml
En la Google Cloud consola, ve a la página Aplicaciones.
En la página Aplicaciones se muestran los recursos que has añadido:
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:
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 deapplication.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:
En la barra de menú de Cloud Shell, haz clic en Abrir editor.
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ñadenService
,Deployment
yStatefulSet
a la definición de tu aplicación.En Cloud Shell, aplica el recurso:
kubectl apply -f kubernetes-manifests/application.yaml
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:
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 desplieguetransactionhistory
de la aplicación de ejemplo Bank of Anthos: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:
En Cloud Shell, abre el archivo
frontend.yaml
:edit kubernetes-manifests/frontend.yaml
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
En Cloud Shell, aplica los recursos:
kubectl apply -f kubernetes-manifests/
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:
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:En Cloud Shell, descarga
kustomize
:curl -s "https://raw.githubusercontent.com/\ kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash
Para crear y editar un archivo
kustomization.yaml
, sigue estos pasos:touch kubernetes-manifests/kustomization.yaml edit kubernetes-manifests/kustomization.yaml
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únapp.kubernetes.io/name: "bank-of-anthos"
.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
.Aplica los recursos con la marca
kustomize
en lugar de la marcafile
:./kustomize build kubernetes-manifests/ | kubectl apply -f -
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:
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
ylinks
en la seccióndescriptor
de su archivoapplication.yaml
.descriptor: description: links: - description: url:
Para actualizar la sección
descriptor
, sigue estos pasos: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
En Cloud Shell, despliega el recurso Application:
kubectl apply -f kubernetes-manifests/application.yaml
En la Google Cloud consola, ve a la página de detalles de la aplicación Bank of Anthos.
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:
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óndescriptor
del archivoapplication.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ónlinks
. En los pasos siguientes, actualiza la secciónlinks
de la siguiente manera:links: - description: 'Bank of Anthos GitHub Repository' url: https://github.com/GoogleCloudPlatform/bank-of-anthos
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
En Cloud Shell, despliega el recurso Application:
kubectl apply -f kubernetes-manifests/application.yaml
En la Google Cloud consola, ve a la página Aplicaciones.
Aplicación externa se muestra en el campo Software:
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
endescriptor
, 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.
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
En Cloud Shell, despliega el recurso Application:
kubectl apply -f kubernetes-manifests/application.yaml
En la Google Cloud consola, ve a la página Aplicaciones.
El campo Versión de la aplicación Bank of Anthos se muestra como 2.3.2:
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 archivoapplication.yaml
de la siguiente manera:info: - name: LABEL value: STRING
Para incluir valores estáticos, debe proporcionar los detalles de
LABEL
ySTRING
en la seccióninfo
. Por ejemplo, puedes escribirOwner
paraname
yJohn Smith
paravalue
.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
En Cloud Shell, despliega el recurso Application:
kubectl apply -f kubernetes-manifests/application.yaml
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:
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 sonconfigMapKeyRef
,ingressRef
ysecretKeyRef
.En la especificación
serviceRef
, se incluyen estos valores dinámicos mediante el tipoReference
. En este tutorial, la especificación deserviceRef
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
yingressRef
también admiten el elementopath
. Si su URL requiere detalles relacionados con la ruta, debe incluirlos en el campopath
: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: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
En Cloud Shell, despliega el recurso Application:
kubectl apply -f kubernetes-manifests/application.yaml
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:
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.En Cloud Shell, crea el secreto:
kubectl create secret generic boa-access --from-literal=boa-user=testuser --from-literal=boa-pass=password
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ónsecretKeyRef
.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
En Cloud Shell, despliega el recurso Application:
kubectl apply -f kubernetes-manifests/application.yaml
En la Google Cloud consola, ve a la página de detalles de la aplicación Bank of Anthos.
Haz clic en Vista previa de datos secretos. Se muestran el nombre de usuario y la contraseña:
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 conK5CYII=
. 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
deapplication.yaml
: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 archivoapplication.yaml
completado al que se hace referencia anteriormente.En el editor de Cloud Shell, pega el código que has copiado después de la sección
labels
en la secciónmetadata
deapplication.yaml
.Esa sección de
application.yaml
tiene un aspecto similar al siguiente, dondeDATA_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:
En Cloud Shell, despliega el recurso de aplicación:
kubectl apply -f kubernetes-manifests/application.yaml
En la Google Cloud consola, ve a la página Aplicaciones.
Se muestra un logotipo en la lista de aplicaciones:
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:
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
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Siguientes pasos
- Consulta otros ejemplos de archivos
application.yaml
en la carpeta Kubernetes delclick-to-deploy
repositorio de GitHub. Busca otros archivosapplication.yaml
enchart/<application>/templates/
de las distintas aplicaciones. Por ejemplo, como se muestra en este archivo. - Usa despliegues de Marketplace para las soluciones de Google Click to Deploy para GKE.
- Consulta arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Centro de arquitectura de Cloud.