Reparación automática de nodos de Azure Kubernetes Service (AKS)

AKS supervisa de manera continua el estado de mantenimiento de los nodos de trabajo y realiza reparaciones automáticas si son incorrectos. La plataforma de máquina virtual (VM) de Azure realiza el mantenimiento de las VM que experimentan problemas.

AKS y las VM de Azure trabajan de forma conjunta para minimizar las interrupciones del servicio de los clústeres.

Este documento, obtendrá información acerca de cómo se comporta la funcionalidad de reparación automática del nodo para nodos Windows y Linux.

Comprobaciones de nodos en mal estado en AKS

AKS usa las siguientes reglas para determinar si un nodo es incorrecto y necesita reparación:

  • El nodo notifica un estado NotReady en comprobaciones consecutivas durante un período de 10 minutos.
  • El nodo no notifica ningún estado en un plazo de 10 minutos.

Puede comprobar manualmente el estado de mantenimiento de los nodos con kubectl.

kubectl get nodes

Funcionamiento de la reparación automática

Nota

AKS inicia las operaciones de reparación con la cuenta de usuario aks-remediator.

Si AKS identifica un nodo incorrecto que permanece de este modo durante 10 minutos, AKS realiza las siguientes acciones:

  1. Reinicie el nodo.
  2. Si el reinicio no se realiza correctamente, restablece la imagen inicial del nodo.
  3. Si el restablecimiento de la imagen inicial no se realiza correctamente, vuelve a implementar el nodo.

Los ingenieros de AKS están investigando correcciones alternativas si la reparación automática no se realiza correctamente.

Si AKS encuentra varios nodos incorrectos durante una comprobación de estado, cada nodo se repara individualmente antes de que comience otra reparación.

Purga automática de nodos

Pueden producirse eventos programados en las máquinas virtuales subyacentes en cualquiera de los grupos de nodos. En el caso de los grupos de nodos de acceso puntual, los eventos programados pueden provocar un evento de nodo preempt para el nodo. Determinados eventos de nodo, como preempt, hacen que la purga automática de nodos de AKS intente acordonar y purgar el nodo afectado, lo que permite una reprogramación correcta de las cargas de trabajo afectadas en ese nodo. Cuando sucede esto, es posible que observe que el nodo recibe un valor taint con "remediator.aks.microsoft.com/unschedulable", debido a "kubernetes.azure.com/scalesetpriority: spot".

En la tabla siguiente se muestran los eventos de nodo y las acciones que provocan para la purga automática de nodos de AKS.

Evento Descripción Acción
Freeze la máquina virtual se programa para ponerse en pausa durante unos segundos. Puede que se suspenda la conectividad de la CPU y la red, pero no afecta a la memoria ni a los archivos abiertos. Ninguna acción
Reboot la máquina virtual se programa para reiniciarse. Se pierde la memoria no persistente de la máquina virtual. Ninguna acción
Volver a implementar la máquina virtual se programa para pasar a otro nodo. Se pierden los discos efímeros de la máquina virtual. Acordonar y purgar
Preempt Se elimina la máquina virtual de acceso puntual. Se pierden los discos efímeros de la máquina virtual. Acordonar y purgar
Terminate La máquina virtual está programada para eliminarse. Acordonar y purgar

Limitaciones

En muchos casos, AKS puede determinar si un nodo está en un estado incorrecto e intentar reparar el problema, pero hay casos en los que AKS no puede reparar el problema o no puede detectar que hay un problema. Por ejemplo, AKS no puede detectar problemas si no se notifica el estado de un nodo debido a un error en la configuración de red o si no se ha registrado inicialmente como un nodo correcto.

Pasos siguientes

Use Availability Zones para aumentar la alta disponibilidad con las cargas de trabajo del clúster de AKS.