Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Solución para monitorizar la EKS infraestructura de Amazon con Grafana gestionada por Amazon
La supervisión de la infraestructura de Amazon Elastic Kubernetes Service es uno de los escenarios más comunes en los que se utiliza Amazon Managed Grafana. En esta página se describe una plantilla que proporciona una solución para este escenario. La solución se puede instalar mediante AWS Cloud Development Kit (AWS CDK) o con Terraform
Esta solución configura:
-
Tu espacio de trabajo de Amazon Managed Service for Prometheus almacena las métricas de tu clúster de EKS Amazon y crea un recopilador gestionado para recopilar las métricas y enviarlas a ese espacio de trabajo. Para obtener más información, consulta Ingesta métricas con recopiladores gestionados. AWS
-
Recopilación de registros de tu EKS clúster de Amazon mediante un CloudWatch agente. Los registros se almacenan en CloudWatch Grafana gestionada por Amazon y son consultados por ellos. Para obtener más información, consulta Logging for Amazon EKS
-
Su espacio de trabajo de Amazon Managed Grafana puede extraer esos registros y métricas, y crear paneles y alertas que lo ayuden a supervisar su clúster.
Al aplicar esta solución, se crearán paneles y alertas que:
-
Evalúe el estado general EKS del clúster de Amazon.
-
Muestra el estado y el rendimiento del plano de EKS control de Amazon.
-
Muestre el estado y el rendimiento del plano de EKS datos de Amazon.
-
Muestra información sobre las EKS cargas de trabajo de Amazon en los espacios de nombres de Kubernetes.
-
Muestre el uso de los recursos en los espacios de nombres, incluido el uso de memoriaCPU, disco y red.
Acerca de esta solución
Esta solución configura un espacio de trabajo de Grafana gestionado por Amazon para proporcionar métricas para su clúster de AmazonEKS. Las métricas se utilizan para generar paneles y alertas.
Las métricas le ayudan a gestionar EKS los clústeres de Amazon de forma más eficaz, ya que proporcionan información sobre el estado y el rendimiento del plano de datos y control de Kubernetes. Puedes entender tu EKS clúster de Amazon desde el nivel de nodo, pasando por los pods y hasta el nivel de Kubernetes, incluida la supervisión detallada del uso de los recursos.
La solución ofrece capacidades tanto anticipatorias como correctivas:
-
Las capacidades anticipatorias incluyen:
-
Administración de la eficiencia de los recursos impulsando las decisiones de programación. Por ejemplo, para proporcionar rendimiento y confiabilidad SLAs a los usuarios internos del EKS clúster de Amazon, puede asignar suficientes CPU recursos de memoria a sus cargas de trabajo en función del seguimiento del uso histórico.
-
Previsiones de uso: en función del uso actual de los recursos de tu EKS clúster de Amazon, como nodos, volúmenes persistentes respaldados por Amazon EBS o balanceadores de carga de aplicaciones, puedes planificar con antelación, por ejemplo, un nuevo producto o proyecto con demandas similares.
-
Detección anticipada de los posibles problemas: por ejemplo, al analizar las tendencias de consumo de recursos de nivel de espacio de nombres de Kubernetes, podrá comprender la estacionalidad del uso de la carga de trabajo.
-
-
Las capacidades correctivas incluyen:
-
Reduzca el tiempo medio de detección (MTTD) de los problemas en la infraestructura y el nivel de carga de trabajo de Kubernetes. Por ejemplo, si consulta el panel de resolución de problemas, puede probar rápidamente hipótesis sobre lo que salió mal y eliminarlas.
-
Determinación de en qué parte de la pila se está produciendo un problema. Por ejemplo, el plano de EKS control de Amazon está totalmente gestionado por, AWS y determinadas operaciones, como la actualización de una implementación de Kubernetes, pueden fallar si el API servidor está sobrecargado o la conectividad se ve afectada.
-
En la siguiente imagen se muestra un ejemplo de la carpeta del panel de la solución.
Puede elegir un panel para ver más detalles; por ejemplo, si elige ver los recursos de computación de las cargas de trabajo, se mostrará un panel como el que se muestra en la siguiente imagen.
Las métricas se recopilan con un intervalo de extracción de 1 minuto. Los paneles muestran las métricas agregadas en 1 minuto, 5 minutos o más, en función de la métrica específica.
Los registros también se muestran en los paneles, de modo que puede consultarlos y analizarlos para encontrar las causas fundamentales de los problemas. En la siguiente imagen se muestra un ejemplo de panel de registros.
Para obtener una lista de las métricas rastreadas por esta solución, consulte Lista de métricas rastreadas.
Para obtener una lista de las alertas creadas por la solución, consulte Lista de alertas creadas.
Costos
Esta solución crea y utiliza recursos en su espacio de trabajo. Se le cobrará por el uso estándar de los recursos creados, que incluyen:
-
Acceso de los usuarios al espacio de trabajo de Amazon Managed Grafana. Para obtener más información acerca de los precios, consulte Precios de Amazon Managed Grafana
. -
Amazon Managed Service para Prometheus: ingesta y almacenamiento de métricas, que incluye el uso del recopilador sin agente de Amazon Managed Service para Prometheus y el análisis de métricas (procesamiento de muestras de consulta). La cantidad de métricas que utiliza esta solución depende de la configuración y el uso del EKS clúster de Amazon.
Puedes ver las métricas de ingesta y almacenamiento en Amazon Managed Service for Prometheus CloudWatch utilizando Para obtener más información, consulta las CloudWatchmétricas en la Guía del usuario de Amazon Managed Service for Prometheus.
Puede calcular el costo utilizando la calculadora de precios de la página Precios de Amazon Managed Service para Prometheus
. El número de métricas dependerá del número de nodos del clúster y de las métricas que generen las aplicaciones. -
CloudWatch Registra la ingesta, el almacenamiento y el análisis. De forma predeterminada, la retención de registros está configurada para que no caduque nunca. Puede ajustarlo en CloudWatch. Para obtener más información sobre los precios, consulta Amazon CloudWatch Pricing
. -
Costos de red. Puede incurrir en cargos de AWS red estándar por tráfico de zonas de disponibilidad cruzada, región u otro tipo de tráfico.
Las calculadoras de precios, disponibles en la página de precios de cada producto, pueden ayudarlo a comprender los posibles costos de su solución. La siguiente información puede ayudar a obtener un coste base para la solución que se ejecuta en la misma zona de disponibilidad que el EKS clúster de Amazon.
Producto | Métrica de la calculadora | Valor |
---|---|---|
Servicio administrado por Amazon para Prometheus |
Serie activa |
8000 (base) 15 000 (por nodo) |
Intervalo promedio de recopilación |
60 (segundos) |
|
Amazon Managed Service para Prometheus (recopilador administrado) |
Número de recopiladores |
1 |
Número de muestras |
15 (base) 150 (por nodo) |
|
Número de regalas |
16.1 |
|
Intervalo promedio de extracción de reglas |
60 (segundos) |
|
Amazon Managed Grafana |
Número de editores o administradores activos |
1 (o más, en función de sus usuarios) |
CloudWatch (Registros) |
Registros estándar: datos ingeridos |
24,5 GB (base) 0,5 GB (por nodo) |
Almacenamiento o archivado de registros (registros estándar o distribuidos) |
Sí, para almacenar registros: suponiendo una retención de 1 mes |
|
Datos de registros esperados analizados |
Cada consulta de información de registros de Grafana analizará todo el contenido del registro del grupo durante el periodo de tiempo especificado. |
Estos números son los números base de una solución que se ejecuta EKS sin software adicional. Esto le proporcionará una estimación de los costos base. También omite los costos de uso de la red, que variarán en función de si el espacio de trabajo de Grafana gestionado por Amazon, el espacio de trabajo de Amazon Managed Service for Prometheus y el clúster de EKS Amazon se encuentran en la misma zona de disponibilidad, y. Región de AWS VPN
nota
Cuando un elemento de esta tabla incluye un valor (base)
y un valor por recurso (por ejemplo, (per node)
), debe sumar el valor base al valor por recurso multiplicado por el número de ese recurso del que disponga. Por ejemplo, en la serie temporal promedio activa, ingrese un número que sea 8000 + the number of nodes in your cluster * 15,000
. Si tiene 2 nodos, debe ingresar 38,000
, que es 8000 + ( 2 * 15,000 )
.
Requisitos previos
Esta solución requiere que haya hecho lo siguiente antes de utilizarla.
-
Debe tener o crear un clúster de Amazon Elastic Kubernetes Service que desee supervisar y el clúster debe tener al menos un nodo. El clúster debe tener configurado el acceso al punto final API del servidor para incluir el acceso privado (también puede permitir el acceso público).
El modo de autenticación debe incluir el API acceso (se puede configurar en uno
API
u otroAPI_AND_CONFIG_MAP
). Esto permite que la implementación de la solución utilice entradas de acceso.Se debe instalar lo siguiente en el clúster (el valor es válido de forma predeterminada al crear el clúster mediante la consola, pero se debe añadir si se crea el clúster con AWS API o AWS CLI): AWS CNI Core DNS y AddOns Kube-proxy.
Guarde el nombre del clúster para especificarlo más adelante. Puedes encontrarlo en los detalles del clúster en la EKS consola de Amazon.
nota
Para obtener más información sobre cómo crear un EKS clúster de Amazon, consulta Cómo empezar con Amazon EKS.
-
Debe crear un espacio de trabajo de Amazon Managed Service for Prometheus en el Cuenta de AWS mismo lugar que su clúster de Amazon. EKS Para obtener más información, consulte Create a workspace en la Guía del usuario de Amazon Managed Service para Prometheus.
Guarda el ARN espacio de trabajo de Amazon Managed Service for Prometheus para especificarlo más adelante.
-
Debe crear un espacio de trabajo de Grafana gestionado por Amazon con Grafana versión 9 o posterior, al igual que Región de AWS su clúster de Amazon. EKS Para obtener más información sobre la creación de un nuevo espacio de trabajo, consulte Creación de un espacio de trabajo de Amazon Managed Grafana.
El rol de espacio de trabajo debe tener permisos para acceder a Amazon Managed Service para Prometheus y Amazon. CloudWatch APIs La forma más sencilla de hacerlo es utilizar los permisos gestionados por el servicio y seleccionar Amazon Managed Service for Prometheus y. CloudWatch También puedes añadir manualmente las AmazonGrafanaCloudWatchAccesspolíticas AmazonPrometheusQueryAccessy a tu rol en el espacio de trabajo. IAM
Guarde el ID y el punto de conexión del espacio de trabajo de Amazon Managed Grafana para especificarlos más adelante. El ID tiene el formato
g-123example
. El ID y el punto de conexión se encuentran en la consola de Amazon Managed Grafana. El punto final es URL el del espacio de trabajo e incluye el ID. Por ejemplo,https://g-123example.grafana-workspace.<region>.amazonaws.com/
. -
Si va a implementar la solución con Terraform, debe crear un bucket de Amazon S3 al que pueda acceder desde su cuenta. Se utilizará para almacenar los archivos de estado de Terraform para la implementación.
Guarde el ID del bucket de Amazon S3 para especificarlo más adelante.
-
Para ver las reglas de alertas de Amazon Managed Service para Prometheus, debe habilitar las alertas de Grafana para el espacio de trabajo de Amazon Managed Grafana.
Amazon Managed Grafana debe tener los siguientes permisos para acceder los recursos de Prometheus. Debe agregarlos a las políticas administradas por el servicio o administradas por el cliente que se describen en Permisos y políticas de Amazon Managed Grafana para los orígenes de datos de AWS.
aps:ListRules
aps:ListAlertManagerSilences
aps:ListAlertManagerAlerts
aps:GetAlertManagerStatus
aps:ListAlertManagerAlertGroups
aps:PutAlertManagerSilences
aps:DeleteAlertManagerSilence
nota
Si bien no es estrictamente obligatorio configurar la solución, debe configurar la autenticación de usuario en su espacio de trabajo de Amazon Managed Grafana antes de que los usuarios puedan acceder a los paneles creados. Para obtener más información, consulte Autenticación de usuarios en los espacios de trabajo de Amazon Managed Grafana.
Uso de esta solución
Esta solución configura la AWS infraestructura para admitir las métricas de informes y monitoreo de un EKS clúster de Amazon. Puede instalarla mediante AWS Cloud Development Kit (AWS CDK) o con Terraform
Lista de métricas rastreadas
Esta solución crea un raspador que recopila las métricas de tu EKS clúster de Amazon. Estas métricas se almacenan en Amazon Managed Service para Prometheus y, después, se muestran en los paneles de Amazon Managed Grafana. De forma predeterminada, el recopilador reúne todas las métricas compatibles con Prometheus que expone el clúster. Si instala un software en su clúster que produce más métricas, aumentarán las métricas recopiladas. Si lo desea, puede reducir la cantidad de métricas actualizando el recopilador con una configuración que filtre las métricas.
Con esta solución se realiza un seguimiento de las siguientes métricas, en una configuración de EKS clúster de Amazon básica sin necesidad de instalar ningún software adicional.
Métrica | Descripción o finalidad |
---|---|
|
Los indicadores están marcados como no disponibles desglosados por APIService nombre. APIServices |
|
Histograma de latencia de webhook de admisión en segundos, identificado por su nombre y desglosado para cada operación, API recurso y tipo (validar o admitir). |
|
Número máximo de solicitudes en curso utilizadas actualmente por este apiserver por tipo de solicitud en el último segundo. |
|
Porcentaje de ranuras de caché ocupadas actualmente por almacenadas en caché. DEKs |
|
Número de solicitudes en fase inicial (para unaWATCH) fase de ejecución o en cualquier fase (para una fase noWATCH) de ejecución del subsistema de API prioridad e imparcialidad. |
|
Número de solicitudes en fase inicial (para unaWATCH) fase de ejecución o en cualquier fase (para una fase noWATCH) de ejecución del subsistema de API prioridad y equidad que se rechazaron. |
|
Número nominal de puestos de ejecución configurados para cada nivel de prioridad. |
|
El histograma agrupado que muestra la duración de la fase inicial (para unaWATCH) o de cualquier fase (si noWATCH) de la ejecución de una solicitud en el subsistema de API prioridad y equidad. |
|
El recuento de la fase inicial (para unaWATCH) o cualquier fase (para una fase noWATCH) de la ejecución de una solicitud en el subsistema de API prioridad y equidad. |
|
Indica una solicitud API del servidor. |
|
Indicador de los artículos en desuso APIs que se han solicitado, desglosado por API grupo, versión, recurso, subrecurso y removed_release. |
|
Distribución de la latencia de respuesta en segundos para cada verbo, valor de ensayo, grupo, versión, recurso, subrecurso, ámbito y componente. |
|
Histograma agrupado en buckets de la distribución de la latencia de respuesta en segundos para cada verbo, valor de ensayo, grupo, versión, recurso, subrecurso, ámbito y componente. |
|
La distribución de la latencia de respuesta de Service Level Objective (SLO) en segundos para cada verbo, valor de ensayo, grupo, versión, recurso, subrecurso, ámbito y componente. |
|
Número de solicitudes que apiserver canceló en defensa propia. |
|
Contador de solicitudes de apiserver desglosadas por verbo, valor de ensayo, grupo, versión, recurso, ámbito, componente y código de respuesta. HTTP |
|
Tiempo acumulado de CPU consumido. |
|
Recuento acumulado de bytes leídos. |
|
Recuento acumulado de lecturas completadas. |
|
Recuento acumulado de bytes escritos. |
|
Recuento acumulado de escrituras completadas. |
|
Memoria caché del total de páginas. |
|
Tamaño de. RSS |
|
Uso de cambios de contenedores. |
|
Conjunto de trabajo actual. |
|
Recuento acumulado de bytes recibidos. |
|
Recuento acumulado de paquetes descartados durante la recepción. |
|
Recuento acumulado de paquetes recibidos. |
|
Recuento acumulado de bytes transmitidos. |
|
Recuento acumulado de paquetes descartados durante la transmisión. |
|
Recuento acumulado de paquetes transmitidos. |
|
El histograma agrupado en buckets de latencia de solicitudes de etcd en segundos para cada operación y tipo de objeto. |
|
Número de gorrutinas que existen actualmente. |
|
Número de subprocesos del sistema operativo creados. |
|
Histograma agrupado en buckets de la duración en segundos de las operaciones del administrador de cgroup. Desglosado por método. |
|
Duración en segundos de las operaciones del administrador de cgroup. Desglosado por método. |
|
Esta métrica es verdadera (1) si el nodo está experimentando un error relacionado con la configuración y falsa (0) en caso contrario. |
|
Nombre del nodo. El recuento siempre es 1. |
|
El histograma agrupado de la duración en segundos para volver a poner en venta los pods. PLEG |
|
El recuento en segundos de la duración de volver a poner en venta los cápsulas que se han vuelto a poner en venta. PLEG |
|
El histograma agrupado del intervalo en segundos entre el momento en que se vuelve a poner en venta. PLEG |
|
Recuento en segundos de la duración desde que Kubelet ve un pod por primera vez hasta que el pod empieza a ejecutarse. |
|
Histograma agrupado en buckets de la duración en segundos para sincronizar un solo pod. Desglosado por tipo de operación: crear, actualizar o sincronizar. |
|
Recuento de la duración en segundos para sincronizar un solo pod. Desglosado por tipo de operación: crear, actualizar o sincronizar. |
|
Número de contenedores en ejecución actualmente. |
|
Número de pods que tienen un entorno de pruebas limitado de pods en funcionamiento. |
|
Histograma agrupado en buckets de la duración en segundos de las operaciones del tiempo de ejecución. Desglosado por tipo de operación. |
|
Número acumulado de errores de operaciones en tiempo de ejecución por tipo de operación. |
|
Número acumulado de operaciones en tiempo de ejecución por tipo de operación. |
|
Cantidad de recursos que se pueden asignar a los pods (después de reservar algunos para los daemons del sistema). |
|
Cantidad total de recursos disponibles para un nodo. |
|
Cantidad de recursos límite solicitados por contenedor. |
|
Cantidad de recursos límite solicitados por contenedor. |
|
Número de recursos de solicitud solicitados por un contenedor. |
|
Número de recursos de solicitud solicitados por un contenedor. |
|
Información sobre el propietario del pod. |
|
Las cuotas de recursos en Kubernetes imponen límites de uso a recursos como la memoria y el almacenamiento dentro de los espacios de CPU nombres. |
|
Las métricas CPU de uso de un nodo, incluido el uso por núcleo y el uso total. |
|
Los segundos CPUs gastados en cada modo. |
|
Cantidad acumulada de tiempo que un nodo dedica a hacer operaciones de E/S en el disco. |
|
Cantidad total de tiempo que un nodo dedica a hacer operaciones de E/S en el disco. |
|
Número total de bytes que el nodo leyó de los discos. |
|
Número total de bytes que el nodo escribió en los discos. |
|
Cantidad de espacio disponible en bytes en el sistema de archivos de un nodo de un clúster de Kubernetes. |
|
Tamaño total del sistema de archivos del nodo. |
|
El promedio de carga de 1 minuto del CPU uso de un nodo. |
|
El promedio de carga de 15 minutos del CPU uso de un nodo. |
|
El promedio de carga de 5 minutos del CPU uso de un nodo. |
|
Cantidad de memoria utilizada por el sistema operativo del nodo para el almacenamiento en la caché del búfer. |
|
Cantidad de memoria utilizada por el sistema operativo del nodo para el almacenamiento en la caché del disco. |
|
Cantidad de memoria disponible para que las aplicaciones y las cachés la utilicen. |
|
Cantidad de memoria libre disponible en el nodo. |
|
Cantidad total de memoria física disponible en el nodo. |
|
Número total de bytes que recibe el nodo a través de la red. |
|
Número total de bytes que transmite el nodo a través de la red. |
|
CPUTiempo total empleado por el usuario y el sistema en segundos. |
|
Tamaño de la memoria residente en bytes. |
|
Número de HTTP solicitudes, dividido por código de estado, método y host. |
|
Histograma agrupado en buckets de la latencia de solicitudes en segundos. Desglosado por verbo y host. |
|
Histograma agrupado en buckets de la duración en segundos de las operaciones de almacenamiento. |
|
Recuento de la duración de las operaciones de almacenamiento. |
|
Número acumulado de errores durante las operaciones de almacenamiento. |
|
Métrica que indica si el objetivo supervisado (por ejemplo, el nodo) está en funcionamiento. |
|
Número total de volúmenes administrados por el administrador de volúmenes. |
|
Número total de adiciones gestionadas por cola de trabajo. |
|
Profundidad actual de la cola de trabajo. |
|
Histograma agrupado en buckets que muestra el tiempo (en segundos) que un elemento permanece en la cola de trabajo antes de ser solicitado. |
|
Histograma agrupado en buckets que muestra el tiempo en segundos que se tarda en procesar un elemento de la cola de trabajo. |
Lista de alertas creadas
En las tablas siguientes se enumeran las alertas que crea esta solución. Las alertas se crean como reglas en Amazon Managed Service para Prometheus y se muestran en su espacio de trabajo de Amazon Managed Grafana.
Puede modificar las reglas, incluida la adición o eliminación de reglas, editando el archivo de configuración de reglas en su espacio de trabajo de Amazon Managed Service para Prometheus.
Estas dos alertas son alertas especiales que se administran de forma ligeramente diferente a las alertas habituales. En lugar de avisarle de un problema, le proporcionan información que se utiliza para supervisar el sistema. La descripción incluye detalles sobre cómo utilizar estas alertas.
Alerta | Descripción y uso |
---|---|
|
Se trata de una alerta destinada a garantizar que todo el proceso de alertas funcione. Esta alerta siempre se está activando, por lo que siempre debería activarse en Alertmanager y dirigirse siempre a un receptor. Puede integrarla con su mecanismo de notificación para enviar una notificación cuando la alerta no se active. Por ejemplo, puede utilizar la DeadMansSnitchintegración en PagerDuty. |
|
Se trata de una alerta que se utiliza para inhibir las alertas de información. Por sí solas, las alertas de nivel de información pueden ser muy ruidosas, pero son pertinentes cuando se combinan con otras alertas. Esta alerta se activa siempre que hay una alerta |
Las siguientes alertas proporcionan información o advertencias sobre el sistema.
Alerta | Gravedad | Descripción |
---|---|---|
|
warning |
La interfaz de red cambia su estado con frecuencia |
|
warning |
Se prevé que el sistema de archivos se quede sin espacio en las próximas 24 horas. |
|
critical |
Se prevé que el sistema de archivos se quede sin espacio en las próximas 4 horas. |
|
warning |
Al sistema de archivos le queda menos del 5 % de espacio. |
|
critical |
Al sistema de archivos le queda menos del 3 % de espacio. |
|
warning |
Se prevé que el sistema de archivos se quede sin inodos en las próximas 24 horas. |
|
critical |
Se prevé que el sistema de archivos se quede sin inodos en las próximas 4 horas. |
|
warning |
Al sistema de archivos le quedan menos del 5 % de inodos. |
|
critical |
Al sistema de archivos le quedan menos del 3 % de inodos. |
|
warning |
La interfaz de red informa de muchos errores de recepción. |
|
warning |
La interfaz de red informa de muchos errores de transmisión. |
|
warning |
El número de entradas de conntrack se acerca al límite. |
|
warning |
El recopilador de archivos de texto de Node Exporter no se pudo extraer. |
|
warning |
Se detectó un sesgo en el reloj. |
|
warning |
El reloj no se sincroniza. |
|
critical |
RAIDLa matriz está degradada |
|
warning |
Fallo en el dispositivo en la matriz RAID |
|
warning |
Se prevé que el núcleo agote pronto el límite de descriptores de archivos. |
|
critical |
Se prevé que el núcleo agote pronto el límite de descriptores de archivos. |
|
warning |
El nodo no está listo. |
|
warning |
No se puede acceder al nodo. |
|
info |
Kubelet está funcionando al máximo de su capacidad. |
|
warning |
El estado de preparación del nodo es inestable. |
|
warning |
El generador de eventos del ciclo de vida de Kubelet Pod tarda demasiado en volver a publicarse. |
|
warning |
La latencia de inicio de Kubelet Pod es demasiado alta. |
|
warning |
El certificado de cliente de Kubelet está a punto de caducar. |
|
critical |
El certificado de cliente de Kubelet está a punto de caducar. |
|
warning |
El certificado del servidor de Kubelet está a punto de caducar. |
|
critical |
El certificado del servidor de Kubelet está a punto de caducar. |
|
warning |
Kubelet no ha podido renovar su certificado de cliente. |
|
warning |
Kubelet no ha podido renovar su certificado de servidor. |
|
critical |
El objetivo desapareció de la detección del objetivo de Prometheus. |
|
warning |
Se están ejecutando diferentes versiones semánticas de los componentes de Kubernetes. |
|
warning |
El cliente del API servidor Kubernetes está experimentando errores. |
|
warning |
El certificado de cliente está a punto de caducar. |
|
critical |
El certificado de cliente está a punto de caducar. |
|
warning |
El conjunto de Kubernetes ha registrado errores. API |
|
warning |
El agregado de Kubernetes está inactivo. API |
|
critical |
El objetivo desapareció de la detección del objetivo de Prometheus. |
|
warning |
El apiserver de Kubernetes ha cancelado {{$value |}} sus solicitudes entrantes. humanizePercentage |
|
critical |
El volumen persistente se está llenando. |
|
warning |
El volumen persistente se está llenando. |
|
critical |
Los inodos de volumen persistente se están llenando. |
|
warning |
Los inodos de volumen persistente se están llenando. |
|
critical |
El volumen persistente tiene problemas con el aprovisionamiento. |
|
warning |
El clúster tiene un exceso de solicitudes de recursos comprometidas. CPU |
|
warning |
El clúster tiene un exceso de solicitudes de recursos de memoria comprometidas. |
|
warning |
El clúster tiene un exceso de solicitudes de CPU recursos comprometidas. |
|
warning |
El clúster tiene un exceso de solicitudes de recursos de memoria comprometidas. |
|
info |
La cuota de espacio de nombres se va a llenar. |
|
info |
La cuota de espacio de nombres se ha utilizado en su totalidad. |
|
warning |
La cuota de espacio de nombres ha superado los límites. |
|
info |
Los procesos experimentan una CPU aceleración elevada. |
|
warning |
El pod se bloquea en bucle. |
|
warning |
El pod lleva más de 15 minutos sin estar preparado. |
|
warning |
La generación de implementaciones no coincide debido a una posible reversión. |
|
warning |
La implementación no ha coincidido con el número de réplicas esperado. |
|
warning |
StatefulSet no ha coincidido con el número esperado de réplicas. |
|
warning |
StatefulSet discordancia generacional debido a una posible reversión |
|
warning |
StatefulSet la actualización no se ha lanzado. |
|
warning |
DaemonSet el lanzamiento está bloqueado. |
|
warning |
El contenedor de pods lleva en espera más de 1 hora. |
|
warning |
DaemonSet los pods no están programados. |
|
warning |
DaemonSet los pods están mal programados. |
|
warning |
El trabajo no se completó a tiempo. |
|
warning |
No se pudo completar el trabajo. |
|
warning |
HPAno ha coincidido con el número deseado de réplicas. |
|
warning |
HPAse está ejecutando al máximo de réplicas |
|
critical |
kube-state-metrics está experimentando errores en las operaciones de lista. |
|
critical |
kube-state-metrics está experimentando errores en las operaciones de vigilancia. |
|
critical |
kube-state-metrics la fragmentación está mal configurada. |
|
critical |
kube-state-metrics faltan fragmentos. |
|
critical |
El API servidor está consumiendo demasiados errores presupuestados. |
|
critical |
El API servidor está consumiendo demasiado margen de error. |
|
warning |
El API servidor está consumiendo demasiado margen de error. |
|
warning |
El API servidor está consumiendo demasiado margen de error. |
|
warning |
Uno o más objetivos están inactivos. |
|
critical |
El clúster Etcd tiene miembros insuficientes. |
|
warning |
Número elevado de cambios de líder en el clúster de etcd. |
|
critical |
El clúster de etcd no tiene líder. |
|
warning |
Etcd agrupa un gran número de RPC solicitudes g fallidas. |
|
critical |
RPCLas solicitudes del clúster g de Etcd son lentas. |
|
warning |
La comunicación entre los miembros del clúster de etcd es lenta. |
|
warning |
Número elevado de propuestas fallidas en el clúster de etcd. |
|
warning |
El clúster de etcd tiene altas duraciones de sincronización. |
|
warning |
El clúster de etcd tiene duraciones de confirmación superiores a las esperadas. |
|
warning |
El clúster Etcd ha fallado HTTP en las solicitudes. |
|
critical |
El clúster Etcd tiene un gran número de solicitudes fallidasHTTP. |
|
warning |
HTTPLas solicitudes de clústeres de Etcd son lentas. |
|
warning |
El reloj de host no se sincroniza. |
|
warning |
Se ha detectado la OOM muerte del host. |
Resolución de problemas
Hay algunas cosas que pueden provocar un error en la configuración del proyecto. Asegúrese de revisar lo siguiente.
-
Debe cumplir todos los requisitos previos antes de instalar la solución.
-
El clúster debe tener al menos un nodo antes de intentar crear la solución o acceder a las métricas.
-
Tu EKS clúster de Amazon debe tener instalados
AWS CNI
loskube-proxy
complementosCoreDNS
y los complementos. Si no están instalados, la solución no funcionará correctamente. Se instalan de forma predeterminada al crear el clúster a través de la consola. Es posible que tengas que instalarlos si el clúster se creó mediante un AWS SDK. -
Se agotó el tiempo de espera para la instalación de los Amazon EKS pods. Esto puede ocurrir si no hay suficiente capacidad de nodos disponible. Estos problemas se deben a varias causas, entre las que se incluyen las siguientes:
-
El EKS clúster de Amazon se inicializó con Fargate en lugar de Amazon. EC2 Este proyecto requiere AmazonEC2.
-
Los nodos tienen taints y, por lo tanto, no están disponibles.
Puede utilizar
kubectl describe node
para comprobar las taints. Luego,NODENAME
| grep Taintskubectl taint node
para eliminar las taints. Asegúrese de incluirNODENAME
TAINT_NAME
--
después del nombre de la taint. -
Los nodos han alcanzado el límite de capacidad. En este caso, puede crear un nodo nuevo o aumentar la capacidad.
-
-
No ve ningún panel en Grafana: está utilizando un ID de espacio de trabajo de Grafana incorrecto.
Ejecute el siguiente comando para obtener información acerca de Grafana:
kubectl describe grafanas external-grafana -n grafana-operator
Puedes comprobar los resultados para el espacio de trabajo correctoURL. Si no es la que esperaba, vuelva a implementarla con el ID de espacio de trabajo correcto.
Spec: External: API Key: Key: GF_SECURITY_ADMIN_APIKEY Name: grafana-admin-credentials URL: https://
g-123example
.grafana-workspace.aws-region
.amazonaws.com Status: Admin URL: https://g-123example
.grafana-workspace.aws-region
.amazonaws.com Dashboards: ... -
No ves ningún panel en Grafana: estás utilizando una API clave caducada.
Para detectar esto, tendrá que usar el operador grafana y comprobar si hay errores en los registros. Obtenga el nombre del operador de Grafana con este comando:
kubectl get pods -n grafana-operator
Esto devolverá el nombre del operador, por ejemplo:
NAME READY STATUS RESTARTS AGE
grafana-operator-1234abcd5678ef90
1/1 Running 0 1h2mUtilice el nombre del operador en el siguiente comando:
kubectl logs
grafana-operator-1234abcd5678ef90
-n grafana-operatorLos mensajes de error como los siguientes indican que la clave ha caducadoAPI:
ERROR error reconciling datasource {"controller": "grafanadatasource", "controllerGroup": "grafana.integreatly.org", "controllerKind": "GrafanaDatasource", "GrafanaDatasource": {"name":"grafanadatasource-sample-amp","namespace":"grafana-operator"}, "namespace": "grafana-operator", "name": "grafanadatasource-sample-amp", "reconcileID": "72cfd60c-a255-44a1-bfbd-88b0cbc4f90c", "datasource": "grafanadatasource-sample-amp", "grafana": "external-grafana", "error": "status: 401, body: {\"message\":\"Expired API key\"}\n"} github.com/grafana-operator/grafana-operator/controllers.(*GrafanaDatasourceReconciler).Reconcile
En este caso, cree una API clave nueva y vuelva a implementar la solución. Si el problema persiste, puedes forzar la sincronización mediante el siguiente comando antes de volver a implementarlo:
kubectl delete externalsecret/external-secrets-sm -n grafana-operator
-
CDKinstala: falta un SSM parámetro. Si ve un error similar al siguiente, ejecute
cdk bootstrap
y vuelva a intentarlo.Deployment failed: Error: aws-observability-solution-eks-infra-
$EKS_CLUSTER_NAME
: SSM parameter /cdk-bootstrap/xxxxxxx
/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap' (see https://docs.aws.amazon.com/cdk/latest/ guide/bootstrapping.html) -
La implementación puede fallar si el OIDC proveedor ya existe. Aparecerá un error como el siguiente (en este caso, para las CDK instalaciones):
| CREATE_FAILED | Custom::AWSCDKOpenIdConnectProvider | OIDCProvider/Resource/Default Received response status [FAILED] from custom resource. Message returned: EntityAlreadyExistsException: Provider with url https://oidc.eks.
REGION
.amazonaws.com/id/PROVIDER ID
already exists.En este caso, vaya al IAM portal, elimine el OIDC proveedor e inténtelo de nuevo.
-
Instalaciones de Terraform: aparece un mensaje de error que incluye
cluster-secretstore-sm failed to create kubernetes rest client for update of resource
yfailed to create kubernetes rest client for update of resource
.Este error suele indicar que el operador de secretos externos no está instalado o habilitado en su clúster de Kubernetes. Se instala como parte de la implementación de la solución, pero a veces no está listo cuando la solución lo necesita.
Puede verificar que está instalado mediante el siguiente comando:
kubectl get deployments -n external-secrets
Si está instalado, el operador puede tardar algún tiempo en estar completamente listo para usarse. Puede comprobar el estado de las definiciones de recursos personalizadas (CRDs) necesarias ejecutando el siguiente comando:
kubectl get crds|grep external-secrets
Este comando debe enumerar los operadores CRDs relacionados con los secretos externos, incluidos
clustersecretstores.external-secrets.io
yexternalsecrets.external-secrets.io
. Si no aparecen en la lista, espere unos minutos y revise de nuevo.Una vez CRDs registrados, puede
terraform apply
volver a ejecutarlos para implementar la solución.