En este instructivo, 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 hacer un seguimiento de los diversos 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 debes buscar en varias ubicaciones la documentación y los metadatos que describen cuáles son las aplicaciones, quiénes son los propietarios y cómo interactuar con los servicios.
GKE ayuda a resolver estos desafíos con la página Aplicaciones:
La página Aplicaciones es un recurso independiente dentro de tu arquitectura que describe los metadatos sobre tu sistema. Puedes usar esta página para organizar tus recursos visualmente sin cambiar la arquitectura. Mediante la definición de valores en un archivo YAML, puedes agrupar todos los recursos de la aplicación y, también, incluir metadatos vitales para el equipo de operaciones. Crear, modificar y borrar el archivo YAML no afecta los recursos existentes, por lo que puedes trabajar de inmediato con los recursos sin riesgos para tu sistema.
Para demostrar esta página, en este instructivo se muestra cómo implementar el recurso Application de Kubernetes en una aplicación y agregar metadatos definidos por el usuario para organizar y simplificar la administración de la aplicación en GKE.
Este instructivo está dirigido a desarrolladores que crean aplicaciones para ejecutarlas en GKE. Suponemos que estás familiarizado con los conceptos básicos de Kubernetes y que tienes experiencia en la escritura de archivos YAML de recursos de Kubernetes.
Objetivos
- Presentar el recurso Application de Kubernetes.
- Agregar el recurso Application de Kubernetes a una arquitectura existente.
- Crear y visualizar información personalizada sobre una aplicación a través de la consola deGoogle Cloud .
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Para obtener una estimación de costos en función del uso previsto,
usa la calculadora de precios.
Cuando completes las tareas que se describen en este documento, podrás borrar los recursos que creaste para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.
Antes de comenzar
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. 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.enablepermission. Learn how to grant roles. -
In the Google Cloud console, activate Cloud Shell.
Ejecuta los comandos para este instructivo en Cloud Shell o en el editor de Cloud Shell.
Prepara tu entorno
En Cloud Shell, configura las variables de entorno para tu proyecto:
export PROJECT_ID=PROJECT_ID gcloud config set core/project $PROJECT_ID gcloud config set compute/zone us-central1-c
Reemplaza
PROJECT_IDpor el ID del proyecto de Google Cloud .Crea un clúster de GKE:
gcloud container clusters create sample-clusterPara este instructivo, debes ejecutar aplicaciones en un clúster de GKE predeterminado.
Instala las aplicaciones de ejemplo
En este instructivo, simularás la ejecución de varias aplicaciones en el mismo espacio de nombres usando una aplicación de ejemplo básica Nginx y la aplicación de ejemplo Bank of Anthos.
En Cloud Shell, instala la aplicación de ejemplo Nginx:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/application/web/web.yamlEste comando crea un recurso de StatefulSet llamado
weby un servicio llamadonginx. En la consola de Google Cloud , puedes ver estos recursos en las páginas Ingress y Service y Cargas de trabajo de GKE.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-anthosGenera una clave SSH y almacénala como un Secret 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.pubLa aplicación de ejemplo Bank of Anthos requiere una clave SSH para ejecutarse.
Implementa la aplicación de ejemplo en el clúster:
kubectl apply -f kubernetes-manifestsDespués de unos momentos, podrás ver los recursos de aplicación en las páginas siguientes de la consola de Google Cloud :
Ten en cuenta lo siguiente:
- Los recursos para las aplicaciones de ejemplo Nginx y Bank of Anthos están mezclados.
- Aún no se muestra ningún recurso en la página Aplicaciones. Completarás la página Aplicaciones en pasos posteriores.
Prepara GKE
Los recursos que muestra la página Aplicaciones se especifican con el tipo de recurso Application de Kubernetes, una definición de recurso personalizada (CRD) proporcionada por el proyecto de código abierto de Kubernetes. De forma predeterminada, la CRD de Aplicación no está habilitada en Kubernetes. Algunos servicios de GKE, como Marketplace y la implementación de aplicaciones, instalan la CRD de Aplicación, pero, si no usas ninguno de esos servicios, la CRD de Aplicación no estará disponible de forma predeterminada.
Para instalar la CRD de aplicación, haz lo siguiente:
En Cloud Shell, aplica la CRD de Aplicación 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 complete el comando, visualiza la CRD de aplicación en el clúster:
kubectl get crdEl siguiente resultado es una lista de CRD instaladas, incluida
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
Incluye recursos de la aplicación
Ahora que la CRD de aplicación está disponible en el clúster, el siguiente paso es crear y, luego, implementar una instancia del recurso Application.
Debido a que el recurso Application es un recurso de Kubernetes, tiene una estructura similar a otros recursos de Kubernetes, incluidos campos y opciones para
apiVersion,kind,metadatayspec:apiVersion: app.k8s.io/v1beta1 kind: Application metadata: name: ... spec: ...En las siguientes secciones, trabajarás con varios campos y opciones que están disponibles en el recurso Application.
Crea el recurso Application base
Puedes agregar el recurso Application a cualquier conjunto existente de recursos. En este instructivo, comenzarás con un recurso vacío y completarás cada sección.
En Cloud Shell, crea y edita un archivo
application.yamlen el directoriokubernetes-manifests:touch kubernetes-manifests/application.yaml edit kubernetes-manifests/application.yamlSe 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 siguiente recurso:
kubectl apply -f kubernetes-manifests/application.yamlEn la consola de Google Cloud , ve a la página Aplicaciones.
En la página Aplicaciones, se muestran los recursos que agregaste:
Incluye recursos por componente
En la página Aplicaciones, se muestra la aplicación de Bank of Anthos. Si haces clic en bank-of-anthos en el campo Nombre, verás información básica sobre la aplicación:
Puedes agregar varios tipos de componentes para que se muestren en la consola deGoogle Cloud . Por ejemplo, para mostrar Services, Deployments y StatefulSets, edita la sección
componentKindsde la definiciónapplication.yaml, de la siguiente manera:spec: componentKinds: - group: v1 kind: Service - group: apps kind: Deployment - group: v1 kind: StatefulSetEn estos pasos, debes agregar estos componentes a la definición del recurso de Bank of Anthos:
En la barra de menú de Cloud Shell, haz clic en Abrir editor.
En el editor de Cloud Shell, reemplaza el contenido del archivo
kubernetes-manifests/application.yamlpegando 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: StatefulSetLa adición de la sección
specagregaService,DeploymentyStatefulSeta la definición de la aplicación.En Cloud Shell, aplica el siguiente recurso:
kubectl apply -f kubernetes-manifests/application.yamlEn la consola de Google Cloud , 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 de un tipo determinado:
Filtra recursos con selectores
En este punto del instructivo, en la lista de componentes se incluyen todos los recursos para ambas aplicaciones de ejemplo del conjunto de componentes definido desde el espacio de nombres completo. Por ejemplo, en el siguiente diagrama se muestra el Service
nginxde la aplicación de ejemplo Nginx y el Deploymenttransactionhistoryde la aplicación de ejemplo Bank of Anthos:
Para garantizar que solo se muestren los recursos de una aplicación, por ejemplo, para la aplicación Bank of Anthos, puedes usar selectores para identificar recursos específicos. Para ver cómo funcionan los selectores, agrega una etiqueta a tu recurso en los siguientes pasos:
En Cloud Shell, abre el archivo
frontend.yaml:edit kubernetes-manifests/frontend.yamlEn el editor de Cloud Shell, pega la siguiente
labelde entrada después de la línea 18:labels: app.kubernetes.io/name: "bank-of-anthos"La sección
metadatase ve de la siguiente manera:apiVersion: apps/v1 kind: Deployment metadata: name: frontend labels: app.kubernetes.io/name: "bank-of-anthos" spec:El archivo
application.yamlcompleto se ve de la siguiente manera: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: StatefulSetEn Cloud Shell, aplica los siguientes recursos:
kubectl apply -f kubernetes-manifests/En la consola de Google Cloud , ve a la página de detalles de la aplicación Bank of Anthos.
Ir a los detalles de Bank of Anthos
Se muestra el único recurso que coincide con una etiqueta específica:
Aplica etiquetas de recursos a todos los recursos con
kustomizeAplicar de forma manual las etiquetas de recursos a cada recurso en una aplicación puede ser una tarea tediosa. En los siguientes pasos, se muestra cómo usar
kustomizepara agregar 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" | bashCrea y edita un archivo
kustomization.yaml:touch kubernetes-manifests/kustomization.yaml edit kubernetes-manifests/kustomization.yamlEn el editor de Cloud Shell, agrega 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
kustomization.yaml, debes especificar a qué recursos aplicar las modificaciones y qué modificaciones realizar. En este caso, debes especificar que todos los recursos tengan una etiqueta común deapp.kubernetes.io/name: "bank-of-anthos".En Cloud Shell, borra los recursos anteriores:
kubectl delete -f kubernetes-manifests/Es necesario borrar los recursos anteriores antes de aplicar los nuevos que se especifican en
kustomization.yaml.Aplica los recursos con la marca
kustomizeen lugar de la marcafile:./kustomize build kubernetes-manifests/ | kubectl apply -f -En la consola de Google Cloud , 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 del Bank of Anthos y no los de la aplicación de ejemplo de Nginx:
Agrega metadatos útiles en la pantalla
Puedes mostrar metadatos personalizados de una aplicación en la consola deGoogle Cloud . Puedes incluir qué hace la aplicación, quién es el propietario, dónde encontrar más información sobre ella y cómo acceder a ella. Este es un tipo de información valiosa para varios casos de uso; por ejemplo, si administras varias aplicaciones dentro de tu organización.
En las siguientes secciones, se describen algunos de los metadatos que puedes agregar.
Agrega una descripción y documentación
Puedes agregar una descripción y los vínculos que aparecen 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, define elementos como
descriptionylinksen la seccióndescriptorde tu archivoapplication.yaml.descriptor: description: links: - description: url:Para actualizar la sección
descriptor, haz lo siguiente:En el editor de Cloud Shell, reemplaza el contenido del archivo
application.yamly pega 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-anthosEn Cloud Shell, implementa el recurso Application:
kubectl apply -f kubernetes-manifests/application.yamlEn la consola de Google Cloud , 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
En la página Aplicaciones, se incluye un campo (Software) para el tipo de software en la lista de aplicaciones. Puedes personalizar este campo para organizar y clasificar tus aplicaciones según tus necesidades. Por ejemplo, puedes indicar si el software es interno o externo. O bien, si tienes varias apps compiladas a partir de un tipo de base compartida, puedes indicar qué tipo de base implementa una aplicación.
Para agregar una descripción personalizada al tipo de software, usa el campo
typeen la seccióndescriptordel archivoapplication.yaml:descriptor: type: External AppPuedes mostrar el valor de
typecomo un hipervínculo en la consola deGoogle Cloud . Especifica la URL para el hipervínculo con la primera entrada de la secciónlinks. En los siguientes pasos, actualizarás la secciónlinksde la siguiente manera:links: - description: 'Bank of Anthos GitHub Repository' url: https://github.com/GoogleCloudPlatform/bank-of-anthosEn el editor de Cloud Shell, reemplaza el contenido de
application.yamly pega 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-anthosEn Cloud Shell, implementa el recurso Application:
kubectl apply -f kubernetes-manifests/application.yamlEn la consola de Google Cloud , ve a la página Aplicaciones.
Aplicación externa se muestra en el campo Software:
Incluye 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 de manera programática para hacer referencia a la versión real implementada.
Para propagar el campo de versión, incluye el campo
versionendescriptor, como en el siguiente ejemplo:descriptor: type: External App version: "2.3.2"En los siguientes pasos, agregarás un campo para la versión de la aplicación.
En el editor de Cloud Shell, reemplaza el contenido del archivo
application.yamlpegando 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-anthosEn Cloud Shell, implementa el recurso Application:
kubectl apply -f kubernetes-manifests/application.yamlEn la consola de Google Cloud , ve a la página Aplicaciones.
El campo Versión de la aplicación Bank of Anthos se muestra como 2.3.2:
Agrega detalles del encargado de mantenimiento
En este paso, agregarás texto estático personalizado a la sección principal de la página Aplicaciones. Debes especificar estos detalles en la sección
infodel archivoapplication.yamlde la siguiente manera:info: - name: LABEL value: STRING
Para incluir valores estáticos, debes proporcionar detalles para
LABELySTRINGen la seccióninfo. Por ejemplo, puedes ingresarOwnerparaname, yJohn Smithparavalue.En el editor de Cloud Shell, reemplaza el contenido de
application.yamly pega 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 SmithEn Cloud Shell, implementa el recurso Application:
kubectl apply -f kubernetes-manifests/application.yamlEn la consola de Google Cloud , 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 incluye un propietario para la aplicación Bank of Anthos:
Permite exponer un extremo de la aplicación
Además de los valores estáticos, puedes exponer los valores dinámicos desde el objeto Deployment. En los pasos siguientes, revelarás la dirección IP del balanceador de cargas para que cualquier persona que vea la página de detalles de la aplicación pueda acceder a la aplicación directamente.
Para mostrar este valor, usa la especificación
serviceRef. Otras especificaciones válidas sonconfigMapKeyRef,ingressRefysecretKeyRef.En la especificación
serviceRef, debes incluir estos valores dinámicos usando el tipoReference. Para este instructivo, la especificación deserviceRefes la siguiente:info: - name: LABEL type: Reference valueFrom: serviceRef: name: SERVICE_NAME fieldPath: DATA_LOCATION
Puedes reemplazar los siguientes valores:
LABEL: Es una etiqueta de recurso que describe una instancia de referencia específica; por ejemplo,App Frontend URL.SERVICE_NAME: Es el nombre que identifica el Service$mdash; por ejemplo,frontend.DATA_LOCATION: Es la ubicación de los datos en el Service; por ejemplo,status.loadBalancer.ingress[0].ip.
Las especificaciones
serviceRefyingressReftambién admiten el elementopath. Si la URL requiere detalles relacionados con la ruta de acceso, incluye esos detalles en el campopath:info: - name: LABEL type: Reference valueFrom: serviceRef: name: SERVICE_NAME fieldPath: DATA_LOCATION path: /wp-admin
La dirección IP del extremo y la ruta se concatenan; por ejemplo,
35.202.90.0/wp-admin.También puedes forzar el uso de HTTP o HTTPS usando el campo
protocolde la siguiente manera:info: - name: LABEL type: Reference valueFrom: serviceRef: name: SERVICE_NAME fieldPath: DATA_LOCATION path: /wp-admin protocol: HTTPS
Estos detalles producen la siguiente URL:
https://35.202.90.0/wp-admin
En los pasos siguientes, usas
serviceRefpara exponer la dirección IP del balanceador de cargas del Service correspondiente a la aplicación Bank of Anthos:En el editor de Cloud Shell, reemplaza el contenido del archivo
application.yamly pega 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: HTTPSEn Cloud Shell, implementa el recurso Application:
kubectl apply -f kubernetes-manifests/application.yamlEn la consola de Google Cloud , 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 incluye una dirección IP de extremo para la aplicación Bank of Anthos:
Proporciona credenciales de acceso
Como se mencionó antes, puedes exponer los Secrets de Kubernetes a través de la consola deGoogle Cloud usando el elemento
secretKeyRef. En este instructivo, proporcionas un nombre de usuario y una contraseña al operador para que pueda acceder a la aplicación.En Cloud Shell, crea el Secret:
kubectl create secret generic boa-access --from-literal=boa-user=testuser --from-literal=boa-pass=passwordEn el editor de Cloud Shell, reemplaza el contenido del archivo
application.yamly pega lo siguiente. En esta actualización, se incluyen 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-passEn Cloud Shell, implementa el recurso Application:
kubectl apply -f kubernetes-manifests/application.yamlEn la consola de Google Cloud , ve a la página de detalles de la aplicación Bank of Anthos.
Haz clic en Vista previa de los datos secretos. Se revelan el nombre de usuario y la contraseña:
La capacidad de revelar datos de Secret puede ser una característica útil para tus equipos de operaciones. Sin embargo, la capacidad de ver estos Secrets se rige por los permisos de acceso de Identity and Access Management (IAM) de la página de detalles de GKE. Cualquier persona con permisos para ver clústeres también puede ver los Secrets, por lo que es importante que consideres cuidadosamente lo que expones.
Agrega un ícono de la aplicación
Para que tu aplicación se destaque, puedes incluir un logotipo que se muestre en la lista de aplicaciones y en tu 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.La conversión de una imagen en un URI de datos no se incluye en este instructivo. Sin embargo, una Búsqueda de Google de "convertir imagen en URI de datos" devuelve varias utilidades que pueden ayudarte a producir la cadena de datos de una imagen. Debido a que el URI de los datos de la imagen que se usa en esta sección es tan largo, no es práctico incluirlo en el instructivo. El URI de datos completo se puede ver en el archivo
application.yamlcompleto. La cadena de URI de los datos debe comenzar de la siguiente manera:data:image/png;base64,iVBORw0KGgoAAAANSUhEUg....y termina conK5CYII=. Asegúrate de no incluir comillas finales simples ni caracteres HTML.El archivo
application.yamlcompleto está disponible como gist a modo de referencia.Para agregar un ícono, actualiza la sección
metadatadeapplication.yaml:Copia el siguiente código:
annotations: kubernetes-engine.cloud.google.com/icon: >- data:image/png;base64,DATA_URI
Reemplaza
DATA_URIpor la cadena que se encuentra en el archivoapplication.yamlcompleto al que se hizo referencia antes.En el editor de Cloud Shell, pega el código que copiaste después de la sección
labelsen la secciónmetadatadeapplication.yaml.Esa sección de
application.yamles similar a la siguiente, en la queDATA_URIrepresenta 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, implementa el recurso Application:
kubectl apply -f kubernetes-manifests/application.yamlEn la consola de Google Cloud , ve a la página Aplicaciones.
Se muestra un logotipo en la lista de aplicaciones:
En la consola de Google Cloud , 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:
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en este instructivo, puedes borrar el proyecto de Google Cloud que creaste para este instructivo.
Borra 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.
¿Qué sigue?
- Revisa otros ejemplos de archivos
application.yamlen la carpeta de Kubernetes del repositorio de GitHubclick-to-deploy. Busca otros archivosapplication.yamlenchart/<application>/templates/para las diferentes apps; por ejemplo; como se muestra en este archivo. - Usa las implementaciones de Marketplace para las soluciones de implementación en un clic de Google para GKE.
- Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta el Cloud Architecture Center.