Automatisk reparation av Azure Kubernetes Service-noden (AKS)

Azure Kubernetes Service (AKS) övervakar kontinuerligt hälsotillståndet för arbetsnoder och reparerar automatiskt noderna om de inte är felfria. Plattformen för virtuella Azure-datorer utför underhåll på virtuella datorer som har problem. AKS och virtuella Azure-datorer arbetar tillsammans för att minimera tjänstavbrott för kluster.

I den här artikeln får du lära dig hur funktionen för automatisk nodreparation fungerar för Windows- och Linux-noder.

Så här söker AKS efter NotReady-noder

AKS använder följande regler för att avgöra om en nod är skadad och behöver repareras:

  • Noden rapporterar NotReady-status för efterföljande kontroller inom en tidsram på 10 minuter.
  • Noden rapporterar ingen status inom 10 minuter.

Du kan kontrollera hälsotillståndet för dina noder manuellt med kubectl get nodes kommandot .

Så här fungerar automatisk reparation

Kommentar

AKS initierar reparationsåtgärder med användarkontot aks-remediator.

Om AKS identifierar en nod som inte är felfri i fem minuter utför AKS följande åtgärder:

  1. Försöker starta om noden.
  2. Om omstarten av noden misslyckas återskapar AKS noden igen.
  3. Om omimningen misslyckas och det är en Linux-nod distribuerar AKS om noden.

AKS-tekniker undersöker alternativa åtgärder om automatisk reparation misslyckas.

Kommentar

Automatisk reparation utlöses inte om följande taints finns på noden: node.cloudprovider.kubernetes.io/shutdown, ToBeDeletedByClusterAutoscaler.

Den totala automatiska reparationsprocessen kan ta upp till en timme att slutföra. AKS försöker igen maximalt 3 gånger för varje steg.

Automatisk tömning av nod

Schemalagda händelser kan inträffa på de underliggande virtuella datorerna i någon av dina nodpooler. För nodpooler med oanvänd kapacitet kan schemalagda händelser orsaka en fördefinierad nodhändelse för noden. Vissa nodhändelser, till exempel preempt, gör att AKS-noden töms automatiskt för att försöka avspärra och tömma den berörda noden. Den här processen möjliggör omplanering för alla berörda arbetsbelastningar på den noden. Du kanske märker att noden får en taint med "remediator.kubernetes.azure.com/unschedulable", på grund av "kubernetes.azure.com/scalesetpriority: spot".

I följande tabell visas de nodhändelser och åtgärder som de orsakar för automatisk tömning av AKS-noder:

Händelse Description Åtgärd
Frys Den virtuella datorn är schemalagd att pausa i några sekunder. Cpu- och nätverksanslutningen kan pausas, men det påverkar inte minnet eller öppna filer. Ingen åtgärd.
Starta om Den virtuella datorn är schemalagd för omstart. Den virtuella datorns icke-beständiga minne går förlorat. Ingen åtgärd.
Omdistribuera Den virtuella datorn är schemalagd att flyttas till en annan nod. Den virtuella datorns tillfälliga diskar går förlorade. Avspärrning och avlopp.
Föregripa Den virtuella datorn för oanvänd kapacitet tas bort. Den virtuella datorns tillfälliga diskar går förlorade. Avspärrning och avlopp
Säg upp Den virtuella datorn är schemalagd för borttagning. Avspärrning och avlopp.

Begränsningar

I många fall kan AKS avgöra om en nod är skadad och försöka reparera problemet. Det finns dock fall där AKS antingen inte kan reparera problemet eller identifiera att det finns ett problem. AKS kan till exempel inte identifiera problem i följande exempelscenarier:

  • Nodstatus rapporteras inte på grund av fel i nätverkskonfigurationen.
  • Det gick inte att registrera en nod som en felfri nod.

Node Autodrain är en tjänst med bästa förmåga och kan inte garanteras fungera perfekt i alla scenarier

Nästa steg

Använd tillgänglighetszoner för att öka hög tillgänglighet med dina AKS-klusterarbetsbelastningar.