Registros y supervisión

GKE On-Prem incluye varias opciones de registro y supervisión de clústeres, incluidos los servicios administrados basados en la nube, herramientas de código abierto y compatibilidad validada con soluciones comerciales de terceros. En esta página, se explican estas opciones y se proporciona una orientación básica sobre cómo seleccionar la solución adecuada para tu entorno.

Opciones para GKE On-Prem

Tienes varias opciones de registro y supervisión para los clústeres de GKE On-Prem:

  • Cloud Logging y Cloud Monitoring, implementados mediante GKE On-Prem y habilitados por agentes internos del clúster
  • Prometheus y Grafana, que están inhabilitados de forma predeterminada
  • Opciones de configuración validadas con soluciones de terceros

Cloud Logging y Cloud Monitoring

Google Cloud's operations suite es la solución de observabilidad integrada para Google Cloud. Ofrece una solución de registro completamente administrada, recopilación de métricas, supervisión, paneles y alertas. Cloud Monitoring supervisa los clústeres de GKE On-Prem de manera similar a como supervisa los clústeres de GKE basados en la nube.

Los agentes en el clúster se pueden configurar para el permiso de supervisión y registro, así como el nivel de las métricas recopiladas:

  • El permiso de registro y supervisión se puede establecer solo en los componentes del sistema (predeterminado) o en componentes y aplicaciones del sistema.
  • El nivel de métricas recopiladas se puede configurar para un conjunto optimizado de métricas o métricas completas.

Consulta Configura agentes de Stackdriver para clústeres de Anthos alojados en VMware en esta página a fin de obtener más información.

Logging y Monitoring proporcionan una solución ideal para los clientes que buscan una única solución de observabilidad basada en la nube que sea potente y fácil de configurar. Recomendamos usar Logging y Monitoring cuando se ejecutan cargas de trabajo solo en GKE On-Prem, o en GKE y GKE On-Prem. En el caso de las aplicaciones con componentes en ejecución en GKE On-Prem y en la infraestructura local tradicional, puedes considerar otras soluciones para obtener una vista de extremo a extremo de estas aplicaciones.

  • Para obtener detalles sobre la arquitectura, la configuración y los datos que se replican en el proyecto de Google Cloud de forma predeterminada en GKE On-Prem, consulta la sección Cómo funcionan Logging y Monitoring en GKE On-Prem.

  • Para obtener más información sobre Logging, consulta la documentación de Cloud Logging.

  • Para obtener más información sobre Monitoring, consulta la documentación de Cloud Monitoring.

Prometheus y Grafana

Prometheus y Grafana son dos productos populares de supervisión de código abierto:

  • Prometheus recopila métricas de aplicaciones y sistemas.

  • Alertmanager maneja el envío de alertas con varios mecanismos de alerta diferentes.

  • Grafana es una herramienta de paneles.

Prometheus y Grafana se pueden habilitar en cada clúster de administrador y de usuario. Prometheus y Grafana se recomiendan para equipos de aplicaciones con experiencia previa en esos productos o equipos operativos que prefieren conservar las métricas de la aplicación dentro del clúster y, también, a fin de solucionar los problemas cuando se pierde la conectividad de red.

Soluciones de terceros

Google trabajó con varios proveedores de soluciones de registro y supervisión de terceros para ayudar a que sus productos funcionen bien con GKE On-Prem. Entre estos, se incluyen Datadog, Elastic y Splunk. En el futuro, se agregarán más proveedores validados.

Las siguientes guías de soluciones están disponibles para usar soluciones de terceros con GKE On-Prem:

Cómo funcionan Logging y Monitoring en GKE On-Prem

Los agentes de Logging y de métricas están instalados y activados en cada clúster cuando creas un nuevo administrador o clúster de usuario.

Los agentes de Stackdriver incluyen varios componentes en cada clúster:

  • Operador de Stackdriver (stackdriver-operator-*): Administra el ciclo de vida de todos los demás agentes de Stackdriver implementados en el clúster.

  • Recurso personalizado de Stackdriver. Un recurso que se crea de forma automática como parte del proceso de instalación de GKE On-Prem. Los usuarios pueden cambiar el recurso personalizado para actualizar valores como el ID del proyecto, el nombre del clúster y la ubicación del clúster en cualquier momento.

  • Agregador de registros de Stackdriver (stackdriver-log-aggregator-*): Es un StatefulSet de Fluentd que envía registros a la API de Cloud Logging. Si no se pueden enviar los registros, el agregador de registros almacena en búfer hasta 200 GB de entradas de registro e intenta reenviarlas por hasta 24 horas. Si el búfer se llena o si el agregador de registros no puede acceder a la API de Logging dentro de las 24 horas, los registros se descartarán.

  • Servidor de reenvío de registros de Stackdriver (stackdriver-log-forwarder-*): Es un daemonset de Fluentbit que reenvía los registros de cada máquina al agregador de registros de Stackdriver.

  • Recopilador de métricas de Stackdriver (stackdriver-prometheus-k8s-): Es un StatefulSet de sidecar de Prometheus y Stackdriver para Prometheus que envía métricas de Prometheus a la API de Cloud Logging.

  • Recopilador de metadatos de Stackdriver (stackdriver-metadata-agent-): Es una implementación que envía metadatos de recursos de Kubernetes, como pods, implementaciones o nodos, a la API de metadatos de recursos de Stackdriver. Estos datos se usan para enriquecer las consultas de métricas, ya que te permite realizar consultas por nombre de implementación, de nodo o incluso de servicio de Kubernetes.

Puedes ver todos los agentes que instaló Stackdriver mediante la ejecución del siguiente comando:

  kubectl -n kube-system get pods | grep stackdriver

El resultado de este comando es similar al siguiente:

stackdriver-log-aggregator-0                  1/1     Running   0   4h31m
stackdriver-log-aggregator-1                  1/1     Running   0   4h28m
stackdriver-log-forwarder-bpf8g               1/1     Running   0   4h31m
stackdriver-log-forwarder-cht4m               1/1     Running   0   4h31m
stackdriver-log-forwarder-fth5s               1/1     Running   0   4h31m
stackdriver-log-forwarder-kw4j2               1/1     Running   0   4h29m
stackdriver-metadata-agent-cluster-level...   1/1     Running   0   4h31m
stackdriver-operator-76ddb64d57-4tcj9         1/1     Running   0   4h37m
stackdriver-prometheus-k8s-0                  2/2     Running   0   4h31m

Configura agentes de Stackdriver para GKE On-Prem

Los agentes de Stackdriver instalados con GKE On-Prem recopilan datos sobre los componentes del sistema, sujetos a tu configuración, con el fin de mantener y solucionar problemas de tus clústeres.

Solo componentes del sistema (alcance predeterminado)

Durante la instalación, los agentes de Stackdriver recopilan registros y métricas, incluidos los detalles de rendimiento (por ejemplo, el uso de la CPU y la memoria) y metadatos similares para los componentes del sistema que proporciona Google. Estos incluyen todas las cargas de trabajo en el clúster del administrador y, en el caso de los clústeres de los usuarios, las cargas de trabajo en los espacios de nombres kube-system, gke-system, gke-connect, istio-system y config-management-system. Los agentes de Stackdriver se pueden configurar o inhabilitar tal como se describe en las siguientes secciones.

El permiso de los registros y las métricas recopilados también se puede expandir para incluir aplicaciones. Si deseas obtener instrucciones para habilitar la supervisión y el registro de aplicaciones, consulta Habilita Logging y Monitoring para las aplicaciones de usuario.

Métricas optimizadas (métricas predeterminadas)

De forma predeterminada, los agentes de métricas que se ejecutan en el clúster recopilan y crean informes de un conjunto optimizado de métricas de contenedores y kubelet para Google Cloud's operations suite (antes conocido como Stackdriver). Se necesitan menos recursos para recopilar este conjunto optimizado de métricas, lo que mejora el rendimiento general y la escalabilidad. Esto es muy importante para las métricas a nivel de contenedor, debido a la gran cantidad de objetos que se deben supervisar.

Para inhabilitar las métricas optimizadas (no recomendado), configura el campo optimizedMetrics como false en tu recurso personalizado de Stackdriver. Si deseas obtener más información sobre cómo cambiar los recursos personalizados de Stackdriver, consulta Configura los recursos del componente de Stackdriver. Todas las métricas, incluso las excluidas de forma predeterminada, se describen en Métricas de Anthos.

Stackdriver inhabilitado

Los agentes de Stackdriver se pueden inhabilitar por completo mediante la eliminación del recurso personalizado de Stackdriver. Antes de inhabilitar Stackdriver, consulta la página de asistencia para obtener detalles sobre cómo esto afecta a los ANS de Google Cloud Support.

Para inhabilitar Stackdriver en GKE On-Prem, haz lo siguiente:

kubectl -n kube-system delete stackdriver stackdriver

Los agentes de Stackdriver capturan datos almacenados de forma local, que están sujetos a la configuración de almacenamiento y retención. Los datos se replican en el proyecto de Google Cloud especificado en la instalación mediante una cuenta de servicio autorizada para escribir datos en ese proyecto. Los agentes de Stackdriver se pueden inhabilitar en cualquier momento, como se describió antes. Los datos que recopilan los agentes de Stackdriver se pueden administrar y borrar como cualquier métrica o dato de registro, como se describe en la Documentación de Cloud Monitoring.

Requisitos de configuración para Logging y Monitoring

Para usar Logging y Monitoring con un clúster, debes configurar el proyecto de Google Cloud en el que deseas ver los registros y las métricas. Este proyecto de Google Cloud se denomina proyecto de supervisión de registros.

  1. Habilita las siguientes API en tu proyecto de supervisión y registro:

  2. Otorga las siguientes funciones de IAM a tu cuenta de servicio de supervisión y registro en tu proyecto de supervisión y registro.

    • logging.logWriter
    • monitoring.metricWriter
    • stackdriver.resourceMetadata.writer
    • monitoring.dashboardEditor

Precios

No se aplican cargos por los registros y las métricas del sistema de Anthos.

En un clúster de GKE On-Prem, los registros y las métricas del sistema de Anthos incluyen lo siguiente:

  • Registros y métricas de todos los componentes en un clúster de administrador
  • Registros y métricas de los componentes de estos espacios de nombres en un clúster de usuario: kube-system, gke-system, gke-connect, knative-serving, istio-system, monitoring-system, config-management-system, gatekeeper-system, cnrm-system

Para obtener más información, consulta Precios de Google Cloud's operations suite.

Si quieres obtener información sobre los créditos de las métricas de Cloud Logging, comunícate con Ventas para obtener información sobre los precios.

Cómo funcionan Prometheus y Grafana en GKE On-Prem

Cada clúster de GKE On-Prem se crea con Prometheus y Grafana inhabilitados de forma predeterminada. Puedes seguir la guía de instalación para habilitarlos.

El servidor de Prometheus se establece en una configuración con alta disponibilidad con dos réplicas que se ejecutan en dos nodos independientes. Los requisitos de los recursos se ajustan para admitir clústeres que ejecuten hasta cinco nodos, cada uno de los cuales maneja hasta 30 pods que entregan métricas personalizadas. Prometheus tiene un PersistentVolume dedicado con espacio en disco asignado de forma previa para almacenar datos durante un período de retención de cuatro días, además de un búfer de seguridad adicional.

El plano de control del administrador y cada clúster de usuario tienen una pila de supervisión dedicada que puedes configurar de forma independiente. En cada clúster de administrador y de usuario, se incluye una pila de supervisión que ofrece un conjunto completo de funciones: el servidor de Prometheus para la supervisión, Grafana para la observabilidad y Alertmanager de Prometheus para las alertas.

Todos los extremos de supervisión, los datos de métricas transferidos y las API de supervisión están protegidos con componentes de Istio mediante reglas de mTLS y RBAC. El acceso a los datos de supervisión está restringido solo a los administradores del clúster.

Métricas recopiladas mediante Prometheus

Prometheus recopila los siguientes metadatos y métricas del plano de control de administrador y los clústeres de usuario:

  • El uso de los recursos, como el uso de CPU en los pods y los nodos
  • Las métricas del plano de control de Kubernetes
  • Las métricas de los complementos y los componentes del sistema de Kubernetes que se ejecutan en nodos, como kubelet
  • El estado del clúster, como el estado de los pods en un objeto Deployment
  • Las métricas de la aplicación
  • Las métricas de la máquina, como la red, la entropía y los inodos

Supervisión de varios clústeres

La instancia de Prometheus y Grafana instalada en el clúster de administrador se configura de forma especial para proporcionar estadísticas de toda la instancia de GKE On-Prem, lo que incluye el clúster de administrador y cada clúster de usuario. Esto te permite hacer lo siguiente:

  • Usar un panel de Grafana para acceder a las métricas de todos los clústeres de usuario y de administrador
  • Ver las métricas de clústeres de usuario individuales en los paneles de Grafana, las cuales están disponibles para realizar consultas directas con resolución completa
  • Acceder a las métricas de nivel de nodo y de carga de trabajo de los clústeres de usuario para obtener consultas agregadas, paneles y alertas (las métricas de cargas de trabajo se limitan a las cargas de trabajo que se ejecutan en el espacio de nombres de kube-system)
  • Configurar alertas para clústeres específicos

¿Qué sigue?