Så här ställer du in Kubernetes-toleranserna

Sa Har Staller Du In Kubernetes Toleranserna



Idag lär vi oss om tolerans i Kubernetes med hjälp av enkla och grundläggande exempel. Den här artikeln är utformad för att lära dig det grundläggande konceptet för tolerans i Kubernetes och hur det kan implementeras i Kubernetes för att schemalägga poddarna. Eftersom tolerans och fläckar fungerar tillsammans kommer vi att ha en kort diskussion om fläckar också för att förstå hela konceptet med fläckar och tolerans i Kubernetes. Låt oss börja med de grundläggande definitionerna av fläck och tolerans.

Vad är toleranser och fläckar i Kubernetes?

Toleration och smuts i Kubernetes används för att säkerställa att poddarna placeras i rätt nod. Toleration definieras i podspecifikationen medan fläckarna definieras i nodspecifikationen. När du tillämpar toleransen på en pod tillåter det schemaläggaren att schemalägga podarna på en specifik nod. Men fläckarna fungerar motsatt toleransen. Det tillåter noden att avvisa de pods som ska schemaläggas på den. Poddarna får endast schemaläggas på noden om de har toleranser som tillämpas på dem med matchande fläckar.

Kubernetes arbetar med pods, kluster, noder, händelser etc. I vissa fall behöver Kubernetes toleranser och fläckar för att hantera dessa saker. Tolerans är implementeringen av schemaläggningsprocessen. Poddarna måste schemaläggas så att de kan fungera korrekt och de kan ha tillräckligt med resurser när det behövs för att utföra sin operation. Tolerationer tillämpas på baljorna mot fläck så att de inte har några avbrott eller störningar under arbetet.







Fläckarna i Kubernetes gör att en pod kan avvisa schemaläggningen av en pod. Den appliceras på en nod med nodspecifikationen 'NodeSpec'. Schemaläggaren kan inte placera en pod på en nod som har en fläck på sig. Men om du behöver schemalägga poddarna på en nod där en fläck redan har applicerats, måste du förklara toleransen mot den.



Toleration i Kubernetes gör att en pod kan schemaläggas på en nod där en taint redan har tillämpats. Tolerationen på en pod tillämpas med 'PodSpec' Pod-specifikationen. När du tillämpar toleransen på en pod med matchande smak, kan schemat enkelt schemalägga podarna på en specifik nod.



Låt oss nu presentera ett scenario som hjälper dig att förstå hur du kan implementera toleransen på en pod i Kubernetes. Innan du går vidare till implementeringssektionen, se till att du har alla förutsättningskrav.





Nödvändig förutsättning:

Följande är de saker du behöver för att implementera toleransen på en nod i Kubernetes:

  • Ubuntu 20.04 eller någon annan senaste version av vilket Linux-system som helst
  • Minikube (senaste versionen)
  • Installerad virtuell maskin i ditt Linux/Unix-system
  • Kubectl kommandoradsverktyg

Låt oss börja ställa in Kubernetes-toleransen, förutsatt att ditt system uppfyller alla förutsättningar.



Steg 1: Starta Minikube Terminal

Det första du behöver göra är att starta minikube-terminalen så att du kan använda kubectl-kommandona för implementering av Kubernetes-tolerans på en nod. För att starta minikuben används följande kommando:

> starta minikube

När du kör detta kommando får du följande utdata i din terminal:

Steg 2: Hämta listan över aktiva noder

Nu när vi startade minikuben är vårt system redo att ställa in toleransen för pods i Kubernetes. Innan vi ställer in toleransen på baljorna, låt oss kontrollera hur många noder och vilken typ av noder vi redan har. För att göra det använder vi följande efterföljande kommando:

> kubectl hämta noder -De =custom-columns=Nodnamn:.metadata.namn,TaintKey:.spec.taints [ * ] .key,TaintValue:.spec.taints [ * ] .value,TaintEffect:.spec.taints [ * ] .effekt

Denna instruktion listar alla noder som är behäftade med Kubernetes standardinstallation. Låt oss först se resultatet av detta kommando. Sedan diskuterar vi listan med noder:

Eftersom det inte finns några noder som är skapade och fläckade av Kubernetes standardinstallation och vi inte heller specifikt skapade någon nod, blir resultatet . Från den tidigare utgången kan vi se att det inte finns någon nod. Därför skapar vi först noden och ställer sedan in toleransen. För att ställa in toleransen på en pod i Kubernetes måste vi först distribuera en app i ett kluster. De nästa stegen visar hur man distribuerar en app i ett kluster.

Steg 3: Skapa ett namnområde

Först skapar vi ett namnområde för att distribuera en app i ett kluster. Här skapar vi en app med värdet 'frontend' med hjälp av följande kommando:

> kubectl skapa ns frontend

Detta kommando skapar namnutrymmet med värdet 'gränssnitt'. Se följande utdata:

Steg 4: Distribuera Nginx Pod på namnområdet

Distribuera nu nginx-podden på namnutrymmet som vi just skapade. Vi använder följande kommando för att distribuera nginx:

> kubectl kör nginx – bild =nginx –namnutrymmesgränssnitt

Detta distribuerar en app i ett kluster utan toleranskonfiguration i specifikationen för appdistributionen. Med kommandot kubectl distribuerar vi nginx-podden på namnutrymmets frontend:

  Textbeskrivning genereras automatiskt

Steg 5: Skaffa listan över poddar

Låt oss nu kontrollera de skapade poddarna för att se deras status. Det givna kommandot listar även alla pods och deras status:

> kubectl få baljor -n frontend

Eftersom vi bara skapade nginx, bör detta kommando lista ner den podden med dess status. Se följande utdata:

Steg 6: Analysera Kubernetes-händelserna

Låt oss nu analysera händelserna i Kubernetes så att vi kan ställa in toleransen för poddarna därefter. Vi använder följande kubectl-kommando för att få listan över händelser i Kubernetes:

> kubectl få händelser -n frontend

Detta listar alla händelser som är associerade med gränssnittsvärdet tillsammans med deras egenskaper som typ, orsak, objekt och meddelande. Se den givna listan i följande utdata:

  Textbeskrivning genereras automatiskt

Som du kan se från föregående utdata är nginx-podden schemalagd med den specifika toleransen. Egenskapen 'meddelande' visar listan över åtgärder som utförs under processen.

Steg 7: Kontrollera statusen för poddar

Det sista steget är att kontrollera statusen för podden som vi skapade tidigare för att säkerställa att den är framgångsrikt schemalagd på en specifik och korrekt nod. För att göra det använder vi följande kubectl-kommando:

> kubectl få baljor -n frontend

Som kan ses i föregående utdata, tillåts podden nu att köra på den smutsiga noden eftersom toleransen ställs mot den.

Slutsats

I den här guiden utforskade vi om fläckar och tolerans. Vi lärde oss om det grundläggande arbetet med fläckar och tolerans. Sedan implementerade vi toleransen på en pod. Med hjälp av ett enkelt exempel lärde vi oss hur man ställer in toleransen på en nod i Kubernetes.