En esta página, se muestra cómo crear políticas de alertas para GKE en clústeres de Bare Metal.
Antes de comenzar
Debes contar con los siguientes permisos para crear políticas de alertas:
monitoring.alertPolicies.create
monitoring.alertPolicies.delete
monitoring.alertPolicies.update
Tienes estos permisos si tienes alguna de las siguientes funciones:
monitoring.alertPolicyEditor
monitoring.editor
- Editor de proyecto
- Propietario del proyecto
Para verificar tus funciones, ve a la página de IAM en la consola de Google Cloud.
Crea una política: Anthos en el servidor de la API de clústeres baremetal no está disponible
En este ejercicio, crearás una política de alertas para los servidores de la API de Kubernetes de los clústeres de administrador. Con esta política implementada, puedes configurarla para recibir notificaciones siempre que el servidor de API de un clúster no esté disponible.
Descarga el archivo de configuración de la política: apiserver-unavailable.json.
Crea la política:
gcloud alpha monitoring policies create --policy-from-file=POLICY_CONFIG
Reemplaza POLICY_CONFIG por la ruta de acceso del archivo de configuración que acabas de descargar.
Visualiza tus políticas de alertas:
Consola
En la consola de Google Cloud, ve a la página Supervisión.
A la izquierda, selecciona Alertas.
En Políticas, puedes ver una lista de tus políticas de alertas.
En la lista, selecciona Anthos en el servidor de la API de clústeres baremetal no está disponible (crítico) para ver los detalles de tu nueva política. En Condiciones, puedes ver una descripción de la política. Por ejemplo:
Policy violates when ANY condition is met Anthos on baremetal cluster API server uptime is absent Anthos on baremetal cluster API server uptime is less than 99.99% per minute
gcloud
gcloud alpha monitoring policies list
El resultado muestra información detallada sobre la política. Por ejemplo:
combiner: OR conditions: - conditionAbsent: aggregations: - alignmentPeriod: 60s crossSeriesReducer: REDUCE_MEAN groupByFields: - resource.label.project_id - resource.label.location - resource.label.cluster_name - resource.label.namespace_name - resource.label.container_name - resource.label.pod_name perSeriesAligner: ALIGN_MAX duration: 300s filter: resource.type = "k8s_container" AND resource.labels.namespace_name = "kube-system" AND metric.type = "kubernetes.io/anthos/container/uptime" AND resource.label."container_name"=monitoring.regex.full_match("kube-apiserver") trigger: count: 1 displayName: Anthos on baremetal cluster API server uptime is absent name: projects/…/alertPolicies/12404845535868002666/conditions/12404845535868003603 - conditionThreshold: aggregations: - alignmentPeriod: 120s crossSeriesReducer: REDUCE_MEAN groupByFields: - resource.label.project_id - resource.label.location - resource.label.cluster_name - resource.label.namespace_name - resource.label.container_name - resource.label.pod_name perSeriesAligner: ALIGN_MAX comparison: COMPARISON_LT duration: 300s filter: resource.type = "k8s_container" AND resource.labels.namespace_name = "kube-system" AND metric.type = "kubernetes.io/anthos/container/uptime" AND resource.label."container_name"=monitoring.regex.full_match("kube-apiserver") thresholdValue: 119.0 trigger: count: 1 displayName: Anthos on baremetal cluster API server uptime is less than 99.99% per minute name: projects/…/alertPolicies/12404845535868002666/conditions/12404845535868004540 creationRecord: mutateTime: … mutatedBy: … displayName: Anthos on baremetal cluster API server unavailable (critical) enabled: true mutationRecord: mutateTime: … mutatedBy: … name: projects/…/alertPolicies/12404845535868002666
Crea políticas de alertas adicionales
En esta sección, se proporcionan descripciones y archivos de configuración para un conjunto de políticas de alertas recomendadas.
Para crear una política, sigue los mismos pasos que usaste en el ejercicio anterior:
Para descargar el archivo de configuración, haz clic en el vínculo en la columna de la derecha.
Para crear la política, ejecuta
gcloud alpha monitoring policies create
.
Puedes descargar y, luego, instalar todas las muestras de políticas de alertas que se describen en este documento con la siguiente secuencia de comandos:
# 1. Create a directory named alert_samples:
mkdir alert_samples && cd alert_samples
declare -a alerts=("apiserver-unavailable.json" "scheduler-unavailable.json" "controller-manager-unavailable.json" "pod-crash-looping.json" "container-memory-usage-high-reaching-limit.json"
"container-cpu-usage-high-reaching-limit.json" "pod-not-ready-1h.json" "persistent-volume-usage-high.json" "node-not-ready-1h.json" "node-cpu-usage-high.json" "node-memory-usage-high.json"
"node-disk-usage-high.json" "api-server-error-ratio-10-percent.json" "api-server-error-ratio-5-percent.json" "etcd-leader-changes-too-frequent.json" "etcd-proposals-failed-too-frequent.json"
"etcd-server-not-in-quorum.json" "etcd-storage-usage-high.json")
# 2. Download all alert samples into the alert_samples/ directory:
for x in "${alerts[@]}"
do
wget https://cloud.google.com/anthos/clusters/docs/bare-metal/1.14/samples/${x}
done
# 3. (optional) Uncomment and provide your project ID to set the default project
# for gcloud commands:
# gcloud config set project <PROJECT_ID>
# 4. Create alert policies for each of the downloaded samples:
for x in "${alerts[@]}"
do
gcloud alpha monitoring policies create --policy-from-file=${x}
done
Disponibilidad de los componentes del plano de control
Nombre de la alerta | Descripción | Definición de la política de alertas en Cloud Monitoring |
---|---|---|
Anthos en el servidor de la API de clústeres baremetal no está disponible (crítico) | El servidor de la API no está activo o el tiempo de actividad es inferior al 99.99% por minuto | apiserver-unavailable.json |
Anthos en el programador de clústeres baremetal no disponible (crítico) | El programador no está activo o el tiempo de actividad es inferior al 99.99% por minuto | scheduler-unavailable.json |
Anthos en el administrador del controlador de equipos físicos no está disponible (crítico) | El administrador del controlador desapareció del descubrimiento de objetivos de métricas | controller-manager-unavailable.json |
Sistema de Kubernetes
Nombre de la alerta | Descripción | Definición de la política de alertas en Cloud Monitoring |
---|---|---|
Bucle de fallas del pod de Anthos equipos físicos (crítico) | Se reinició el Pod y podría estar en un estado de bucle de fallas | pod-crash-looping.json |
El uso de memoria de los contenedores de Anthos en Bare Metal supera el 85% (advertencia) | El uso de memoria de los contenedores supera el 85% del límite | container-memory-usage-high-reaching-limit.json |
El uso de CPU de los contenedores de Anthos en Bare Metal supera el 80% (advertencia) | El uso de CPU de los contenedores supera el 80% del límite | container-cpu-usage-high-reaching-limit.json |
Anthos en un pod de equipos físicos no está listo durante más de una hora (crítico) | El pod ha pasado más de una hora en estado no listo | pod-not-ready-1h.json |
Uso alto del volumen persistente de Anthos en equipos físicos (críticos) | Se espera que el volumen persistente reclamado se llene. | persistent-volume-usage-high.json |
Anthos en el nodo de equipos físicos no está listo durante más de una hora (crítico) | El nodo ha pasado más de una hora en estado no listo | node-not-ready-1h.json |
El uso de Anthos en la cpu de nodo de equipos físicos supera el 80% (crítico). | El uso de CPU del nodo supera el 80% | node-cpu-usage-high.json |
El uso de memoria de Anthos en el nodo de equipos físicos supera el 80% (crítico). | El uso de memoria del nodo supera el 80% | node-memory-usage-high.json |
El uso de Anthos en el disco de nodo de equipos físicos supera el 80% (crítico). | El uso del disco del nodo supera el 80% | node-disk-usage-high.json |
Rendimiento de Kubernetes
Nombre de la alerta | Descripción | Definición de la política de alertas en Cloud Monitoring |
---|---|---|
La tasa de recuento de errores de Anthos en el servidor de la API de equipos físicos superó el 10% (crítico). | El servidor de la API muestra errores para más del 10% de las solicitudes | api-server-error-ratio-10-percent.json |
La tasas de error de servidor de la API de Anthos API en equipos físicos supera el 5% (advertencia) | El servidor de la API muestra errores para más del 5% de las solicitudes | api-server-error-ratio-5-percent.json |
El líder de Anthos en equipos físicos etcd cambia con mucha frecuencia (crítico) | El líder etcd cambia con demasiada frecuencia |
etcd-leader-changes-too-frequent.json |
Las propuestas de Anthos en equipos físicos fallaban con demasiada frecuencia (críticas) | Las propuestas etcd fallan con demasiada frecuencia |
etcd-proposals-failed-too-frequent.json |
Anthos en el servidor de equipos físicos de etcd no está en quórum (crítico) | El servidor etcd no está en quórum. |
etcd-server-not-in-quorum.json |
El almacenamiento de etcd de Anthos en Bare Metal supera el 90% del límite (crítico) | El uso de almacenamiento de etcd supera el 90% del límite |
etcd-storage-usage-high.json |
Recibe notificaciones
Después de crear una política de alertas, puedes definir uno o más canales de notificación para la política. Hay varios tipos de canales de notificación. Por ejemplo, puedes recibir notificaciones por correo electrónico, un canal de Slack o una app para dispositivos móviles. Puedes elegir los canales que se adapten a tus necesidades.
Para obtener instrucciones sobre cómo configurar canales de notificación, consulta Administra canales de notificaciones.