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:
- Pokusí se restartovat uzel.
- Pokud restartování uzlu není úspěšné, AKS ho znovu nastaví.
- 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í. |
Zabránit | 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.
Azure Kubernetes Service