Reparación automática de nodos de Azure Kubernetes Service (AKS)
Azure Kubernetes Service (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.
En este artículo, obtendrá información sobre el funcionamiento de la función de reparación automática de nodo para nodos de Windows y Linux.
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 el comando kubectl get nodes
.
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 cinco minutos, AKS realiza las siguientes acciones:
- Intenta reiniciar el nodo.
- Si el reinicio del nodo no se realiza correctamente, AKS restablece la imagen inicial del nodo.
- Si la imagen inicial no es correcta y se trata de un nodo de Linux, AKS vuelve a implementar el nodo.
Los ingenieros de AKS investigan correcciones alternativas si la reparación automática no se realiza correctamente.
Nota
La reparación automática no se desencadena si los siguientes valores taint están presentes en el nodo: node.cloudprovider.kubernetes.io/shutdown
, ToBeDeletedByClusterAutoscaler
.
El proceso general de reparación automática puede tardar hasta una hora en completarse. Reintentos de AKS para un máximo de 3 veces por cada paso.
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. Algunos eventos de nodos, como preempt causan la purga automática del nodo de AKS para intentar un acordonamiento y purga del nodo afectado. Este proceso habilita la reprogramación de las cargas de trabajo afectadas en ese nodo. Es posible que observe que el nodo recibe un valor taint con "remediator.kubernetes.azure.com/unschedulable"
, debido a "kubernetes.azure.com/scalesetpriority: spot"
.
En la tabla siguiente se muestran los eventos de nodo y las acciones que estos 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 esto no afecta a la memoria ni a los archivos abiertos. | No sucede nada. |
Reboot | la máquina virtual se programa para reiniciarse. Se pierde la memoria no persistente de la máquina virtual. | No sucede nada. |
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. | Acordonamiento y purga. |
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 se programa para reiniciarse. | Acordonamiento y purga. |
En muchos casos, AKS puede determinar si un nodo no está en buen estado e intentar reparar el problema. Sin embargo, hay casos en los que AKS no puede reparar el problema ni detectar que existe un problema. Por ejemplo, AKS no puede detectar problemas en los escenarios de ejemplo siguientes:
- No se notifica un estado de nodo debido a un error en la configuración de red.
- No se pudo registrar un nodo inicialmente como un nodo en buen estado.
La purga de nodo es un servicio que ofrece el mejor esfuerzo y no se puede garantizar que funcione perfectamente en todos los escenarios.
Use las zonas de disponibilidad para aumentar la alta disponibilidad con las cargas de trabajo del clúster de AKS.
Comentarios de Azure Kubernetes Service
Azure Kubernetes Service es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: