Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se muestra cómo usar eventos de Kubernetes para supervisar y solucionar problemas en los clústeres de Azure Kubernetes Service (AKS).
¿Qué son los eventos de Kubernetes?
Los eventos son uno de los orígenes más destacados para supervisar y solucionar problemas en Kubernetes. Capturan y registran información sobre el ciclo de vida de varios objetos de Kubernetes, como pods, nodos, servicios e implementaciones. Mediante la supervisión de eventos, puede obtener visibilidad de las actividades del clúster, identificar problemas y solucionar problemas de forma eficaz.
Los eventos de Kubernetes no se conservan durante todo el ciclo de vida del clúster, ya que no hay ningún mecanismo de retención. Los eventos solo están disponibles durante una hora después de que se genere el evento. Para almacenar eventos durante un período de tiempo más largo, habilite Información del contenedor.
Objetos de evento Kubernetes
En la tabla siguiente se enumeran algunos objetos de evento de Kubernetes clave:
| Nombre del campo | Descripción |
|---|---|
| type | El tipo se basa en la gravedad del evento: Los eventos de Advertencia indican situaciones potencialmente problemáticas, como un pod con errores repetidamente o un nodo que se está quedando sin recursos. Requieren atención, pero es posible que no produzcan un error inmediato. Los eventos Normales representan operaciones rutinarias, como un pod programado o un escalado vertical de implementación. Normalmente indican un comportamiento correcto del clúster. |
| reason | Motivo por el que se ha generado el evento. Por ejemplo, FailedScheduling o CrashLoopBackoff. |
| message | Mensaje en lectura natural que describe el evento. |
| espacio de nombres | Espacio de nombres del objeto de Kubernetes al que está asociado el evento. |
| firstSeen | Marca de tiempo en la que se observó el suceso por primera vez. |
| lastSeen | Marca de tiempo de cuándo se observó por última vez el evento. |
| reportingController | El nombre del controlador que ha informado del evento. Por ejemplo, kubernetes.io/kubelet. |
| object | Nombre del objeto de Kubernetes al que está asociado el evento. |
Para obtener más información, consulte la documentación oficial de Kubernetes.
Eventos de Kubernetes
Enumere todos los eventos del clúster mediante el comando kubectl get events.
Suponiendo que el clúster ya está creado y disponible (según los requisitos previos del documento), obtenga credenciales (tenga en cuenta que la --overwrite-existing marca está establecida para evitar errores kubeconfig):
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --overwrite-existing
Ahora, enumere todos los eventos del clúster:
kubectl get events
Resultados:
LAST SEEN TYPE REASON OBJECT MESSAGE
xxm Normal Scheduled pod/my-pod-xxxxx Successfully assigned default/my-pod-xxxxx to aks-nodepoolxx-xxxxxxx-vmss000000
xxm Normal Pulled pod/my-pod-xxxxx Container image "nginx" already present on machine
xxm Normal Created pod/my-pod-xxxxx Created container nginx
xxm Normal Started pod/my-pod-xxxxx Started container nginx
...
Examine los eventos de un pod específico buscando primero el nombre del pod y, a continuación, usando el comando kubectl describe pod.
Enumere los pods en el espacio de nombres actual:
kubectl get pods
Resultados:
NAME READY STATUS RESTARTS AGE
my-pod-xxxxx 1/1 Running 0 xxm
nginx-deployment-xxxxx 1/1 Running 0 xxm
...
Reemplace <pod-name> a continuación por el nombre real del pod. Para la automatización, este es un ejemplo para el primer pod de la lista:
POD_NAME=$(kubectl get pods -o jsonpath="{.items[0].metadata.name}")
kubectl describe pod $POD_NAME
Procedimientos recomendados para solucionar problemas con eventos
Filtrado de eventos por relevancia
Es posible que tenga varios espacios de nombres y servicios que se ejecutan en el clúster de AKS. El filtrado de eventos en función del tipo de objeto, el espacio de nombres o el motivo puede ayudar a reducir los resultados a la información más relevante.
Por ejemplo, puede usar el siguiente comando para filtrar eventos dentro del espacio de nombres predeterminado:
kubectl get events --namespace default
Automatización de notificaciones de eventos
Para garantizar una respuesta oportuna a eventos críticos en el clúster de AKS, configure notificaciones automatizadas. Azure ofrece integración con servicios de supervisión y alertas, como Azure Monitor. Puede configurar alertas para que se desencadenen en función de patrones de eventos específicos. De este modo, se le informa inmediatamente sobre los problemas cruciales que requieren atención.
Revisión periódica de eventos
Haga un hábito de revisar periódicamente los eventos en el clúster de AKS. Este enfoque proactivo puede ayudarle a identificar tendencias, detectar posibles problemas al principio y evitar escalaciones. Al mantenerse al tanto de los eventos, puede mantener la estabilidad y el rendimiento de las aplicaciones.
Pasos siguientes
Ahora que reconoce los eventos de Kubernetes, puede continuar el recorrido de supervisión y observabilidad habilitando Información del contenedor.