En esta página, se explica cómo usar Cloud Monitoring para supervisar tus clústeres de Google Kubernetes Engine (GKE).
Descripción general
Puedes usar Monitoring para supervisar las señales y compilar las operaciones en tus clústeres de GKE.
Cloud Monitoring supervisa las métricas del sistema y las métricas personalizadas. Las métricas del sistema son medidas de la infraestructura del clúster, como el uso de memoria o CPU. Las métricas personalizadas son métricas específicas de la aplicación que tú mismo defines, como la cantidad total de sesiones de usuario activas o la cantidad de páginas renderizadas.
Para las métricas del sistema, Cloud Monitoring crea una implementación que se conecta de forma periódica a cada nodo y recopila métricas sobre sus Pods y contenedores y, luego, las envía a Monitoring.
Las métricas de uso de los recursos del sistema se recopilan de las siguientes fuentes:
- CPU:
container/cpu/usage_time
- Memoria:
container/memory/bytes_used
, recopilada dememory.usage_in_bytes
en cgroup - Memoria expulsable:
container/memory/bytes_used
, recopilada del campototal_inactive_file
dememory.stat
- Memoria no expulsable: Medida mediante
memory.usage_in_bytes
-memory.total_inactive_file
- Disco:
container/disk/bytes_used
Para obtener una lista de las otras métricas del sistema recopiladas de GKE, consulta la lista de métricas.
Si deseas obtener información sobre cómo configurar métricas personalizadas, consulta Usa métricas personalizadas o sigue el instructivo Realiza el ajuste de escala automático en implementaciones con métricas personalizadas.
Antes de comenzar
Sigue estos pasos a fin de prepararte para esta tarea:
- Asegúrate de que habilitaste la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Asegúrate de que instalaste el SDK de Cloud.
- Establece tu ID del proyecto predeterminado:
gcloud config set project [PROJECT_ID]
- Si trabajas con clústeres zonales, establece tu zona de procesamiento predeterminada:
gcloud config set compute/zone [COMPUTE_ZONE]
- Si trabajas con clústeres regionales, establece tu región de procesamiento predeterminada:
gcloud config set compute/region [COMPUTE_REGION]
- Actualiza
gcloud
a la versión más reciente:gcloud components update
- Asegúrate de que creaste un lugar de trabajo. Consulta Administra lugares de trabajo para obtener más información.
Habilita Monitoring
Puedes crear un clúster con Monitoring habilitado o habilitar Monitoring en un clúster existente.
Los grupos de nodos de tu clúster (incluido el grupo de nodos predeterminado) deben tener el permiso de Google Cloud necesario para interactuar con Monitoring (el permiso https://www.googleapis.com/auth/monitoring
). Cuando creas un clúster nuevo con Monitoring, GKE establece este permiso de forma automática. Sin embargo, es posible que los clústeres existentes no tengan los permisos necesarios.
Crea un clúster con Monitoring
gcloud
Cuando creas un clúster, la marca --enable-cloud-monitoring
se establece de forma automática, lo que habilita Monitoring en el clúster.
Para inhabilitar este comportamiento predeterminado, establece la marca --no-enable-cloud-monitoring
.
Console
En Cloud Console, ve a la página Kubernetes Engine > Clústeres de Kubernetes:
Haz clic en Crear clúster.
Configura el clúster según sea necesario.
Haz clic en Opciones avanzadas. Asegúrate de que la opción Habilitar el servicio de Stackdriver Monitoring esté seleccionada.
Haz clic en Crear.
Habilitar la supervisión en un clúster existente
gcloud
Para habilitar Monitoring en un clúster existente, ejecuta el siguiente comando, en el que [CLUSTER_NAME]
es el nombre del clúster.
gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service monitoring.googleapis.com
Si, en un principio, creaste tu clúster sin Monitoring y quieres habilitarlo más adelante, es posible que los grupos de nodos del clúster no tengan el permiso necesario de Google Cloud. Como solución alternativa, puedes crear un grupo de nodos nuevo con la misma cantidad de nodos y el permiso necesario como se muestra a continuación:
gcloud container node-pools create adjust-scope \ --cluster [CLUSTER_NAME] \ --num-nodes [NUM_NODES] \ --scopes https://www.googleapis.com/auth/monitoring
Después de crear el grupo de nodos nuevo, mueve tus pods existentes a este grupo nuevo, que cuenta con el permiso necesario para usar Monitoring. Para obtener más información, consulta “Actualiza los permisos de la VM sin tiempo de inactividad”.
Console
Si, en un principio, creaste tu clúster sin Monitoring y quieres habilitarlo más adelante, es posible que los grupos de nodos del clúster no tengan el permiso necesario de Google Cloud. Consulta la sección gcloud
anterior a esta para obtener una solución alternativa.
En Cloud Console, ve a la página Kubernetes Engine > Clústeres de Kubernetes:
Haz clic en Editar edit.
Configura el valor del menú desplegable de Stackdriver Monitoring como Habilitado.
Haz clic en Guardar.
Extiende las métricas de la infraestructura
Además de las métricas de la aplicación, las métricas personalizadas de Cloud Monitoring también pueden usar medidas de la infraestructura del clúster que no se incluyen en las métricas del sistema, como la E/S del disco del contenedor. Puedes implementar tus propios agentes de supervisión de la infraestructura para recopilar y enviar estas métricas a Cloud Monitoring.
cAdvisor
Puedes recopilar métricas con cAdvisor, el agente de supervisión de código abierto que se usa en Kubernetes. Además, puedes usar prometheus-to-sd para enviar esas métricas a Cloud Monitoring.
Para ejecutar cAdvisor en tu clúster, sigue estos pasos:
Clona cAdvisor:
git clone https://github.com/google/cadvisor.git cd cadvisor
Sigue las instrucciones de cAdvisor DaemonSet para instalar kustomize. Si usas Cloud Shell, ejecuta el siguiente comando:
go get github.com/kubernetes-sigs/kustomize
Crea el espacio de nombres de ejemplo de cAdvisor y DaemonSet, que exporta todas las métricas del contenedor:
kustomize build deploy/kubernetes/overlays/examples | kubectl apply -f -
Ahora deberías ver las métricas de Prometheus en Cloud Monitoring en el recurso
gke_container
.Sigue las instrucciones de personalización de cAdvisor a fin de modificar el ejemplo proporcionado para que se adapte a tus necesidades. Para aplicar los cambios, ejecuta el siguiente comando:
kustomize build deploy/kubernetes/overlays/<my_custom_patches> | kubectl apply -f -
Visualiza métricas
Puedes ver las métricas en Google Cloud Console.
Descripción general del clúster
Stackdriver Monitoring ofrece un menú de descripción general para GKE. En este menú, se recopila y se muestra información útil sobre tus clústeres en paneles de ayuda.
Para ver el menú de descripción general, sigue estos pasos:
En Cloud Console, ve a Monitoring:
Coloca el cursor sobre Recursos y, luego, selecciona Kubernetes Engine.
Selecciona tu clúster.
El menú de descripción general proporciona los siguientes paneles predeterminados:
- Incidentes: Infracciones de las políticas de alertas.
- Eventos: Lista cronológica de las anomalías, los incidentes, el ciclo de vida, las etiquetas, las políticas de IAM, las implementaciones, las notas, las actualizaciones del proveedor de servicios en la nube y las actualizaciones de administración de usuarios que ocurren en tus cuentas de la nube.
- Uso de CPU: Muestra los porcentajes de uso de CPU por clúster.
- E/S de disco: Muestra las tasas de E/S de disco por clúster en KB/s.
- Tráfico de red: Muestra el tráfico de red por clúster en KB/s.
- Pods: Lista de pods y nodos (instancias de VM de Compute Engine) en todos los espacios de nombres. Cuando se selecciona un Pod o un nodo, se abre la descripción general de ese recurso.
Para obtener más información sobre cómo ver las métricas, consulta la documentación de Monitoring y la página Filtros de Monitoring.
Paneles
Puedes crear paneles personalizados para contenedores y nodos de GKE.
Para crear un panel, sigue estos pasos:
En Cloud Console, ve a Monitoring:
Coloca el cursor sobre Paneles y, luego, selecciona Crear panel.
Para crear un panel nuevo, haz clic en Agregar gráfico.
En el campo Título, ingresa el nombre del panel.
En el campo Buscar tipo de recurso y métrica, busca
instance
ocontainer
, luego selecciona las métricas que desees.En el campo Tipo de métrica, ingresa o selecciona en el menú de autocompletar las métricas que desees.
También puedes usar el Filtro para filtrar por un valor específico, como app, nombre o versión.
Configura el panel con más detalle si es necesario. Para crear el panel, haz clic en Guardar.
Explorador de métricas
El Explorador de métricas te permite seleccionar una métrica específica sobre tus clústeres y realizar varias agregaciones.
Para usar el Explorador de métricas, sigue estos pasos:
En Cloud Console, ve a Monitoring:
Coloca el cursor sobre Recursos y, luego, selecciona Explorador de métricas.
En el menú de búsqueda Buscar tipo de recurso y métrica, ingresa
gke_container
en Tipo de recurso.En Métrica, selecciona las métricas que desees.
También puedes usar el Filtro para filtrar por recurso.
Usa las opciones de Agregación para realizar una agregación.
Recomendaciones
- Alertas: Puedes configurar políticas de alertas que te informen si ocurre algo sospechoso en el clúster.
Inhabilitar la supervisión
gcloud
Para inhabilitar Monitoring en un clúster existente, ejecuta el siguiente comando, en el que [CLUSTER_NAME]
es el nombre del clúster.
gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service none
Si ejecutas operaciones en la nube para GKE en tu clúster, debes inhabilitar Monitoring y Logging mediante gcloud beta
a fin de establecer las siguientes marcas en el clúster:
gcloud beta container clusters update [CLUSTER_NAME] --logging-service none --monitoring-service none
Console
En Cloud Console, ve a la página Kubernetes Engine > Clústeres de Kubernetes:
Haz clic en Editar edit.
Configura el valor del menú desplegable de Stackdriver Monitoring como Inhabilitado.
Haz clic en Guardar.
¿Qué sigue?
- Para obtener más información sobre los costos de Cloud Monitoring, consulta Precios.
- Para obtener información sobre las políticas de alertas y cómo configurarlas, consulta Políticas de alertas.
- Para obtener más información sobre cómo crear y usar verificaciones de tiempo de actividad, consulta Administra las verificaciones de tiempo de actividad.
- Aprende sobre el ajuste de escala automático con el instructivo Realiza el ajuste de escala automático en implementaciones con métricas personalizadas.