Automatická oprava uzlu Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) nepřetržitě monitoruje stav pracovních uzlů a automaticky opravuje uzly, které nejsou v pořádku. Platforma virtuálního počítače Azure provádí údržbu na virtuálních počítačích, u kterých dochází k problémům . AKS ve spolupráci s virtuálními počítači Azure pomáhá minimalizovat přerušení služeb clusterů.

V tomto článku se dozvíte, jak se funkce automatické opravy uzlů chová pro uzly s Windows a Linuxem.

Jak AKS kontroluje uzly NotReady

AKS používá následující pravidla k určení, jestli uzel není v pořádku a potřebuje opravu:

  • Uzel hlásí stav NotReady v po sobě jdoucích kontrolách během 10minutového časového rámce.
  • Uzel nehlásí žádný stav během 10 minut.

Pomocí příkazu můžete ručně zkontrolovat stav uzlů kubectl get nodes .

Jak funguje automatická oprava

Poznámka:

AKS inicializuje operace oprav pomocí uživatelského účtu aks-remediator.

Pokud AKS identifikuje uzel, který není v pořádku po dobu pěti minut, provede AKS následující akce:

  1. Pokusí se restartovat uzel.
  2. Pokud restartování uzlu není úspěšné, AKS ho znovu nastaví.
  3. Pokud je opětovné vytvoření neúspěšné a jedná se o linuxový uzel, AKS ho znovu nasadí.

Technici AKS prošetřují alternativní nápravy, pokud automatická oprava není úspěšná.

Poznámka:

Automatická oprava se neaktivuje, pokud jsou na uzlu přítomny následující tainty: node.cloudprovider.kubernetes.io/shutdown, ToBeDeletedByClusterAutoscaler.

Dokončení celkového procesu automatické opravy může trvat až hodinu. AKS opakuje pokusy o maximálně 3krát pro každý krok.

Automatické vyprázdnění uzlu

Na podkladových virtuálních počítačích v libovolném fondu uzlů můžou nastat naplánované události . U fondů spotových uzlů můžou naplánované události způsobit událost uzlu předem . Některé události uzlu, například předběžné odstranění, způsobují automatické vyprázdnění uzlu AKS, aby se pokusil o cordon a vyprázdnění ovlivněného uzlu. Tento proces umožňuje přeplánovat všechny ovlivněné úlohy na daném uzlu. Možná si všimnete, že uzel obdrží taint s "remediator.kubernetes.azure.com/unschedulable", z důvodu "kubernetes.azure.com/scalesetpriority: spot".

Následující tabulka uvádí události a akce uzlu, které způsobují automatické vyprázdnění uzlu AKS:

Událost Popis Akce
Zablokovat Virtuální počítač se plánuje pozastavit na několik sekund. Může dojít k pozastavení procesoru a síťového připojení, ale nemá to žádný vliv na paměť nebo otevřené soubory. Žádná akce.
Restartujte. Virtuální počítač je naplánovaný na restartování. Neutrácená paměť virtuálního počítače se ztratí. Žádná akce.
Opětovné nasazení Virtuální počítač je naplánovaný tak, aby se přesunul do jiného uzlu. Dočasné disky virtuálního počítače se ztratí. Cordon a vyprázdnění.
Předběžná verze Spotové virtuální počítače se odstraňují. Dočasné disky virtuálního počítače se ztratí. Cordon a vyprázdnění
Ukončit Virtuální počítač je naplánovaný k odstranění. Cordon a vyprázdnění.

Omezení

V mnoha případech může AKS určit, jestli uzel není v pořádku, a pokusit se problém opravit. Existují ale případy, kdy AKS nemůže problém opravit nebo zjistit, že problém existuje. AKS například nedokáže rozpoznat problémy v následujících ukázkových scénářích:

  • Kvůli chybě v konfiguraci sítě se nehlásí stav uzlu.
  • Uzlu se nepodařilo nejprve zaregistrovat jako uzel, který je v pořádku.

Node Autodrain je služba s nejlepším úsilím a nelze zaručit, že bude fungovat dokonale ve všech scénářích.

Další kroky

Využijte zóny dostupnosti ke zvýšení vysoké dostupnosti u úloh clusteru AKS.