arrow_back

Cloud Logging en Kubernetes Engine

Unirse Acceder
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Cloud Logging en Kubernetes Engine

Lab 1 hora universal_currency_alt 1 crédito show_chart Introductorio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP483

Labs de autoaprendizaje de Google Cloud

Descripción general

Cloud Logging se puede usar para agregar registros de todos los recursos de Google Cloud, además de cualquier recurso personalizado en otras plataformas, para habilitar un almacén centralizado para todos los registros y las métricas. Los registros se agregan y, luego, se pueden ver en la IU de Cloud Logging proporcionada. También se pueden exportar a receptores para admitir casos de uso más especializados. Actualmente, Cloud Logging admite la exportación a los siguientes receptores:

  • Cloud Storage
  • Pub/Sub
  • BigQuery

En este lab, implementarás una aplicación de ejemplo en Kubernetes Engine que reenvíe registros de eventos a Cloud Logging con Terraform, una herramienta de infraestructura como código declarativa que permite que los archivos de configuración automaticen la implementación y la evolución de la infraestructura en la nube. La configuración también creará un bucket de Cloud Storage y un conjunto de datos de BigQuery a donde se exportarán los datos de los registros.

Los ingenieros de GKE Helmsman crearon este lab para ayudarte a comprender mejor el funcionamiento de Cloud Logging. Puedes ver esta demostración ejecutando el comando gsutil cp -r gs://spls/gke-binary-auth/* y cd gke-binary-auth-demo en Cloud Shell. Te invitamos a hacer cualquier aporte que creas conveniente.

Arquitectura

La configuración de Terraform compilará un clúster de Kubernetes Engine que generará registros y métricas que Stackdriver puede transferir. Las secuencias de comandos también generarán receptores de exportación de Logging para Cloud Storage, BigQuery y Cloud Pub/Sub.

En el siguiente gráfico, se muestra el diagrama de cómo se verá esto junto con el flujo de datos:

Gráfico de la arquitectura de Cloud Logging

Configuración

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar su lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab que tiene estos elementos:

    • El botón Abrir la consola de Google
    • Tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haga clic en Abrir la consola de Google. El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta.
  3. Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.

  4. Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.

    Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales.
  5. Haga clic para avanzar por las páginas siguientes:

    • Acepte los términos y condiciones.
    • No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No se registre para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haga clic en el Menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Ícono del menú de navegación

Activa Cloud Shell

Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola de Google Cloud.

Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

  2. Ahora, el resultado debería verse de la siguiente manera:

Resultado:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = <project_ID>

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de gcloud, consulta la guía con la descripción general de gcloud CLI en Google Cloud.

Tarea 1: Clona la demostración

  1. En la cinta superior de Cloud Shell, haz clic en Abrir en una nueva ventana:

Cinta de Cloud Shell con el ícono Abrir en una nueva ventana destacado

  1. Ejecuta el siguiente comando para configurar el ID de tu proyecto de Google Cloud. Reemplaza <YOUR_PROJECT_ID> por el ID de tu proyecto de Qwiklabs:
gcloud config set project <YOUR_PROJECT_ID>
  1. Ahora, clona los recursos necesarios para este lab:
git clone https://github.com/GoogleCloudPlatform/gke-logging-sinks-demo
  1. Ahora, cambia el directorio de esta demostración:
cd gke-logging-sinks-demo

Configura tu región y zona

Algunos recursos de Compute Engine se encuentran en regiones y zonas. Una región es una ubicación geográfica específica donde puedes ejecutar tus recursos. Cada región tiene una o más zonas.

Para obtener más información sobre las regiones y zonas y ver una lista de todas ellas, consulta esta documentación.

Ejecuta el siguiente comando para configurar una región y zona para tu lab (puedes usar la región/zona más adecuada para tu caso):

gcloud config set compute/region {{{ project_0.default_region | REGION }}} gcloud config set compute/zone {{{ project_0.default_zone | ZONE }}}

Tarea 2: Implementación

De acuerdo con los principios de la Infraestructura como código y de la Infraestructura inmutable, Terraform admite escrituras de descripciones declarativas del estado deseado de la infraestructura. Cuando se aplica el descriptor, Terraform usa las APIs de Google Cloud para aprovisionar y actualizar los recursos para que coincidan.

Terraform compara el estado deseado con el estado actual para poder realizar cambios incrementales sin tener que borrar todo y volver a empezar. Por ejemplo, Terraform puede compilar instancias de procesamiento, proyectos de Google Cloud, etc., y hasta puede configurar un clúster de Kubernetes Engine y, luego, implementar aplicaciones en él. Cuando los requisitos cambian, el descriptor se puede actualizar, y Terraform ajustará la infraestructura de nube según corresponda.

En este lab, se iniciará un clúster de Kubernetes Engine donde se implementará una aplicación simple de ejemplo. De forma predeterminada, los clústeres de Kubernetes Engine en Google Cloud están aprovisionados con un colector preconfigurado basado en Fluentd que reenvía los registros a Cloud Logging. Interactuar con la aplicación de ejemplo producirá registros que se verán en Cloud Logging y otros receptores de eventos de registros.

Actualiza el archivo provider.tf

  1. Quita la versión del proveedor de Terraform del archivo de secuencia de comandos provider.tf.

  2. En la pestaña Editor de Cloud Shell, selecciona Archivo>Abrir y, luego, haz clic en Abrir. En el menú de la izquierda, abre el archivo /gke-logging-sinks-demo/terraform/provider.tf.

  3. Establece la versión en ~> 2.19.0. Después de la modificación, el archivo de secuencia de comandos provider.tf debería verse así:

.... provider "google" { project = var.project version = "~> 2.19.0" }
  1. Guarda y cierra el archivo.

Implementa el clúster

Hay tres archivos de Terraform que se proporcionan con este ejemplo de lab.

El primer archivo, main.tf, es el punto de partida de Terraform. Describe las funciones que se utilizarán, los recursos que se manipularán y los resultados que se obtendrán.

El segundo archivo es provider.tf, que indica qué proveedor de servicios en la nube y qué versión serán los destinatarios de los comandos de Terraform, en este caso, Google Cloud.

El último archivo es variables.tf, que contiene una lista de variables que se usan como entradas en Terraform. Cualquier variable a la que se haga referencia en main.tf que no tenga valores predeterminados configurados en variables.tf tendrá como resultado mensajes al usuario en el entorno de ejecución.

  1. Realizarás un pequeño cambio en main.tf. En el menú de la izquierda, abre el archivo /gke-logging-sinks-demo/terraform/main.tf.

  2. Desplázate hasta la línea 110 y busca la sección “Create the Stackdriver Export Sink for Cloud Storage GKE Notifications”.

  3. Cambia el resource.type del filtro de container a k8s_container.

  4. Haz lo mismo para bigquery-sink en la línea 119. Procura que estas dos secciones de sincronización de exportación se vean de esta forma antes de avanzar:

Ejemplo del fragmento de código en donde se destaca k8s_container

  1. Guarda y cierra el archivo.

  2. Ejecuta el siguiente comando para compilar el entorno ejecutable con el comando make:

make create Nota: Si recibes advertencias de baja relacionadas con la variable de zona, ignóralas y avanza en el lab.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si implementaste correctamente la infraestructura necesaria con Terraform, verás una puntuación de evaluación.

Usar Terraform para configurar la infraestructura necesaria

Tarea 3: Validación

Si no aparecen errores durante la implementación, después de algunos minutos deberías ver tu clúster de Kubernetes Engine en la consola de Cloud.

  1. Dirígete a Menú de navegación > Kubernetes Engine > Clústeres para ver el clúster con la aplicación de ejemplo implementada.

  2. Para validar que la demostración se implementó correctamente, ejecuta el siguiente comando:

make validate

El resultado se verá así:

Pantalla del resultado de la validación

Ahora que la aplicación está implementada en Kubernetes Engine, puedes generar datos de registros y usar Cloud Logging y otras herramientas para verlos.

Tarea 4: Genera registros

La aplicación de muestra que Terraform implementó publica una página web simple.

Cada vez que abras esta aplicación en tu navegador, la aplicación publicará eventos de registros en Cloud Logging. Cuando actualices la página algunas veces, se generarán varios eventos de registros.

Para obtener la URL de la página de la aplicación, realiza los siguientes pasos:

  1. En la consola de Cloud, en Menú de navegación, dirígete a la sección Herramientas de redes y haz clic en Servicios de red.
  2. En la página predeterminada Balanceo de cargas, haz clic en el nombre del balanceador de cargas del TCP que se configuró.
  3. En la página Detalles del balanceador de cargas, dirígete a la sección superior etiquetada como Frontend.
  4. En el Frontend, copia el valor de URL IP:Port. Abre un nuevo navegador y pega la URL. El navegador debería devolver una pantalla similar a la siguiente:

Pantalla de la aplicación de ejemplo en la que aparece un mensaje de Hello World, el número de la versión y el nombre del host

Nota: Asegúrate de actualizar la página algunas veces para crear varios eventos de registros.

Tarea 5: Registros en Cloud Logging

Cloud Logging proporciona una IU para ver los eventos de registros. Se proporcionan funciones básicas de búsqueda y filtro, que pueden ser útiles cuando se depuran problemas del sistema.

Cloud Logging es más adecuado para explorar eventos de registros más recientes. Los usuarios que requieran un almacenamiento a largo plazo de los eventos de registros deben considerar algunas de las herramientas que explorarás en las siguientes secciones.

Para acceder a la consola de Cloud Logging, sigue estos pasos:

  1. En la consola de Cloud, en Menú de navegación, haz clic en Logging en la sección Operaciones.
  2. En esta página, selecciona Tipo de recurso como Contenedor de Kubernetes y cluster_name como stackdriver-logging.

Página de campos de registro con el tipo de recurso, el nombre del clúster y el nombre del espacio de nombres seleccionados

  1. Haz clic en Ejecutar consulta.

Pestaña del compilador de consultas

  1. En Resultados de la consulta, puedes expandir la lista de los elementos de registro para ver más detalles sobre una entrada de registro.

En la consola de Logging, puedes compilar consultas con el Compilador de consultas, o bien probar varias funciones como campos de registro, zona horaria, etcétera.

Tarea 6: Visualiza las exportaciones de registros

La configuración de Terraform compiló dos receptores de exportación de registros. Para ver los receptores, realiza los siguientes pasos:

  1. Deberías seguir en la página de Logging.
  2. En el menú de navegación izquierdo, haz clic en Enrutador de registros.
  3. Deberías ver cuatro receptores en la lista de exportaciones de registros.
  4. Puedes editar o ver estos receptores haciendo clic en el menú contextual (tres puntos) a la derecha de un receptor y seleccionando la opción Editar receptor.
  5. Además, puedes crear más receptores de exportación personalizados haciendo clic en la opción Crear receptor en la parte superior de la ventana de navegación.

Tarea 7: Registros en Cloud Storage

Los eventos de registros se pueden almacenar en Cloud Storage, un sistema de almacenamiento de objetos adecuado para archivar datos.

Se pueden configurar políticas para los buckets de Cloud Storage que, por ejemplo, permiten que los datos antiguos se venzan y se borren, mientras que los datos más recientes se pueden almacenar en diferentes clases de almacenamiento que afectan el precio y la disponibilidad.

La configuración de Terraform creó un bucket de Cloud Storage llamado stackdriver-gke-logging-, al cual se exportarán los registros para archivar a medio y largo plazo.

En este ejemplo, la clase de almacenamiento del bucket se define como Nearline porque no se debe acceder a los registros con frecuencia en un entorno de producción normal (esto ayudará a administrar los costos de almacenamiento a medio plazo). En una situación de producción, este bucket también puede incluir una política de ciclo de vida que traslada el contenido a Coldline Storage para un almacenamiento de los registros a largo plazo más económico.

Para acceder a los registros en Cloud Storage, sigue estos pasos:

  1. En la consola de Cloud en Menú de navegación, haz clic en Cloud Storage.
  2. Busca el bucket con el nombre stackdriver-gke-logging-<random-Id> y haz clic en él.
  3. Desafortunadamente, los receptores tardan un poco en propagarse a Cloud Storage, por lo que es probable que no veas ningún detalle del registro en tu bucket.

Si vuelves al bucket al final de tu lab, podrías ver carpetas que corresponden a los pods que se ejecutan en el clúster (p. ej., escalador automático, dnsmasq, etcétera).

Ventana de detalles del bucket en la que aparece una lista de carpetas en la página con pestañas Objetos

Puedes hacer clic en cualquiera de las carpetas para buscar detalles de registros específicos como heapster, kubedns, archivo adicional, etcétera.

Tarea 8: Registros en BigQuery

Los eventos de registros pueden configurarse para que se publiquen en BigQuery, una herramienta de almacén de datos que admite consultas rápidas y sofisticadas en grandes conjuntos de datos.

La configuración de Terraform creará un conjunto de datos de BigQuery llamado gke_logs_dataset. Este conjunto de datos se configurará para incluir todos los registros relacionados con Kubernetes Engine durante la última hora (estableciendo un vencimiento de tabla predeterminado para el conjunto de datos). Los registros del contenedor de Kubernetes Engine se enviarán al conjunto de datos.

Para acceder a los registros en BigQuery, sigue estos pasos:

Nota: La exportación a BigQuery no se propaga de inmediato. Los registros pueden tardar unos minutos en aparecer.
  1. En Menú de navegación, en la sección Macrodatos, haz clic en BigQuery, si se abre un recuadro con el mensaje Te damos la bienvenida a BigQuery en la consola de Cloud. Haz clic en Listo.
  2. En el menú de la izquierda, haz clic en el nombre de tu proyecto. Deberías ver un conjunto de datos llamado gke_logs_dataset. Expande este conjunto de datos para ver las tablas que existen. (Nota: El conjunto de datos se crea de inmediato, pero las tablas se generan a medida que se escriben los registros y se necesitan nuevas tablas).
  3. Haz clic en una de las tablas para ver los detalles.
  4. Revisa el esquema de la tabla para ver los nombres de columna y sus tipos de datos. Esta información se puede usar en el siguiente paso cuando consultas la tabla para ver los datos.

Página con pestañas de Esquema de la tabla stderr en gke_logs_dataset

  1. Haz clic en Consultar > En una pestaña nueva en la parte superior derecha para realizar una consulta personalizada en la tabla.
  2. Esto agrega una consulta al Editor de consultas, pero tiene un error de sintaxis.
  3. Edita la consulta y agrega un asterisco (*) después de Select para extraer todos los detalles de la tabla actual. Nota: Una consulta Select * generalmente es muy costosa y no se recomienda. Para este lab, el conjunto de datos se limita solo a la última hora de los registros, por lo que el conjunto de datos general es relativamente pequeño.
  4. Haz clic en Ejecutar para iniciar la consulta y mostrar algunos resultados de la tabla.

La ventana de resultados debería mostrar algunas filas y columnas. Puedes desplazarte por las diversas filas de datos que se muestran. Si lo deseas, realiza algunas consultas personalizadas que filtren datos específicos en función de los resultados que se mostraron en la consulta original.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si el receptor de BigQuery tiene registros escritos en un conjunto de datos de BigQuery, verás una puntuación de evaluación.

Ver registros en BigQuery

Tarea 9: Eliminación

  • Qwiklabs se encargará de cerrar todos los recursos utilizados en este lab, pero esto es lo que debes hacer para limpiar tu propio entorno y así reducir los costos y ser un buen ciudadano de la nube:
make teardown

Dado que Terraform realiza un seguimiento de los recursos que creó, puedes eliminarlos después.

Tarea 10: Solución de problemas para tu entorno de producción

La secuencia de comandos de instalación falla con Permission denied cuando se ejecuta Terraform.

Las credenciales que usa Terraform no proporcionan los permisos necesarios para crear recursos en los proyectos seleccionados.

  1. Asegúrate de que la cuenta que se detalla en gcloud config list tenga los permisos necesarios para crear recursos.

  2. Si los tiene, vuelve a generar las credenciales predeterminadas de la aplicación a través de gcloud auth application-default login.

El bucket de Cloud Storage no se propagó

Una vez que se complete la configuración de Terraform, se creará el bucket de Cloud Storage, pero no siempre se propagará de inmediato con datos de registros del clúster de Kubernetes Engine.

Dale tiempo al proceso, ya que pueden pasar hasta 2 o 3 horas antes de que empiecen a aparecer las primeras entradas. Obtén más información sobre Cloud Storage en la documentación Visualiza registros en destinos de receptores.

No se crearon tablas en el conjunto de datos de BigQuery

Una vez que se complete la configuración de Terraform, se creará el conjunto de datos de BigQuery, pero no siempre habrá tablas creadas en él cuando revises los resultados.
Las tablas casi nunca se propagan de inmediato.

Dale tiempo al proceso (al menos 5 minutos) antes de determinar que algo no está funcionando correctamente.

¡Felicitaciones!

Finaliza la Quest

Este lab de autoaprendizaje es parte de las Quests Google Cloud's operations suite on GKE y Google Cloud Logging. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completas esta Quest, obtendrás una insignia como reconocimiento por tu logro. Puedes hacer públicas tus insignias y agregar vínculos a ellas en tu currículum en línea o en tus cuentas de redes sociales. Si realizaste este lab, inscríbete en alguna de esas Quests y obtén un crédito inmediato de finalización. Consulta el catálogo de Google Cloud Skills Boost para ver todas las Quests disponibles.

Próximos pasos y más información

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Última actualización del manual: 18 de octubre de 2023
Prueba más reciente del lab: 20 de octubre de 2023

Copyright 2024 Google LLC. Este software se proporciona tal como está, sin garantías ni declaraciones para ningún uso o propósito. El uso que hagas de él está sujeto a tu acuerdo con Google.