Ripristino automatico del nodo del servizio Azure Kubernetes
Il servizio Azure Kubernetes monitora continuamente lo stato di integrità dei nodi di lavoro ed esegue il ripristino automatico dei nodi se diventano non integri. La piattaforma macchina virtuale di Azure esegue la manutenzione nelle macchine virtuali si verificano problemi. Il servizio Azure Kubernetes e le macchine virtuali di Azure interagiscono per ridurre al minimo le interruzioni del servizio per i cluster.
Questo articolo illustra il comportamento della funzionalità di ripristino automatico dei nodi per i nodi Windows e Linux.
Modalità di controllo del servizio Azure Kubernetes per i nodi NotReady
Il servizio Azure Kubernetes usa le regole seguenti per determinare se un nodo non è integro e richiede un ripristino:
- Il nodo segnala lo stato NotReady nei controlli consecutivi entro un intervallo di tempo di 10 minuti.
- Il nodo non segnala alcuno stato entro 10 minuti.
È possibile controllare manualmente lo stato di integrità dei nodi con il comando kubectl get nodes
.
Funzionamento del ripristino automatico
Nota
Il servizio Azure Kubernetes avvia le operazioni di ripristino con l'account utente aks-remediator.
Se il servizio Azure Kubernetes identifica un nodo non integro che rimane non integro per cinque minuti, il servizio Azure Kubernetes esegue le azioni seguenti:
- Tenta di riavviare il nodo.
- Se il riavvio del nodo non riesce, il servizio Azure Kubernetes ricrea l'immagine del nodo.
- Se la ricreazione dell'immagine non riesce e si tratta di un nodo Linux, il servizio Azure Kubernetes ridistribuisce il nodo.
I tecnici del servizio Azure Kubernetes esaminano le correzioni alternative se il ripristino automatico non riesce.
Nota
Il ripristino automatico non viene attivato se nel nodo sono presenti i taints seguenti: node.cloudprovider.kubernetes.io/shutdown
, ToBeDeletedByClusterAutoscaler
.
Il processo di ripristino automatico complessivo può richiedere fino a un'ora per il completamento. Il servizio Azure Kubernetes ritenta un massimo di 3 volte per ogni passaggio.
Svuotamento automatico dei nodi
Gli eventi pianificati possono verificarsi nelle macchine virtuali sottostanti in uno dei pool di nodi. Per pool di nodi spot, gli eventi pianificati possono causare un evento di nodo preempt per il nodo. Alcuni eventi del nodo, ad esempio il preempt, causano il tentativo di svuotamento automatico del nodo del servizio Azure Kubernetes per tentare un blocco e uno svuotamento del nodo interessato. Questo processo abilita la riprogrammazione per tutti i carichi di lavoro interessati in tale nodo. È possibile notare che il nodo riceve un taint con "remediator.kubernetes.azure.com/unschedulable"
, a causa di "kubernetes.azure.com/scalesetpriority: spot"
.
La tabella seguente illustra gli eventi del nodo e le azioni che causano lo svuotamento automatico del nodo del servizio Azure Kubernetes:
Event | Descrizione | Azione |
---|---|---|
Blocca | per la macchina virtuale è pianificata una pausa di alcuni secondi. La connettività di CPU e di rete può essere sospesa, ma non c'è alcun impatto sulla memoria o sui file aperti. | Nessuna azione. |
Riavvio | per la macchina virtuale è pianificato il riavvio. La memoria non persistente della macchina virtuale viene persa. | Nessuna azione. |
Ripetere la distribuzione | per la macchina virtuale è pianificato uno spostamento in un altro nodo. I dischi temporanei della macchina virtuale vengono persi. | Blocco e svuotamento. |
Preempt | La macchina virtuale spot viene eliminata. I dischi temporanei della macchina virtuale vengono persi. | Blocco e svuotamento |
Termina | La macchina virtuale è pianificata per l'eliminazione. | Blocco e svuotamento. |
Limiti
In molti casi, il servizio Azure Kubernetes può determinare se un nodo non è integro e tentare di risolvere il problema. Tuttavia, esistono casi in cui il servizio Azure Kubernetes non riesce a risolvere il problema o a rilevare che esiste un problema. Ad esempio, il servizio Azure Kubernetes non è in grado di rilevare i problemi negli scenari di esempio seguenti:
- Lo stato di un nodo non viene segnalato a causa di un errore nella configurazione di rete.
- Impossibile registrare inizialmente un nodo come nodo integro.
La distorsione automatica dei nodi è un servizio di lavoro ottimale e non può essere garantita la perfetta funzionamento in tutti gli scenari
Passaggi successivi
Usare zone di disponibilità per aumentare la disponibilità elevata con i carichi di lavoro del cluster del servizio Azure Kubernetes.
Azure Kubernetes Service