Hva er en utvist pod?
Når en nodes disk eller minnegrense er nådd, er et flagg på Kubernetes -noden satt til å signalisere at det er under belastning. Dette flagget forhindrer også ferske tildelinger på denne noden, og utløser en utkastelsesprosedyre for å frigjøre noen ressurser.
Dette er kubelet for undertrykksnoden, som vil håndtere utkastelsesprosessen. Denne vil håndtere sviktende pods til nodens brukte ressurser faller under utkastelsesgrensen, på hvilket tidspunkt kubelet vil avslutte alle podbeholdere og stille podfasen til mislykket.
Hvis en utplassering er ansvarlig for den utviste pod, oppretter distribusjonen en ny pod for Kubernetes å planlegge.
Når blir belgene kastet ut?
Denne skillet har å gjøre med hvordan Kubernetes håndterer ressurspress. Hvis nodens ressurser blir knappe, må Kubernetes kaste ut belg, en prosess er kjent som Node-Pressure Eviction. Nodeplanleggeren har plass til en CPU som er fullt okkupert; Derfor er ikke utkastelse nødvendig.
Den må kaste ut belg fra noden og prøve å plassere dem i en annen node hvis minnet er utilstrekkelig. Dette er kjent som utkastelse på grunn av hukommelsesbegrensninger. Utkastelse av nodetrykk kan også være forårsaket av mangel på diskplass.
Hvilke faktorer vurderer Kubernetes når de bestemmer hvilke pods de skal kaste ut?
Nodetrykket er forårsaket av at belg blir kastet ut basert på ressursbegrensninger, som minne eller diskplass som vi har nevnt ovenfor. Pods i en mislykket tilstand er de første som blir kastet ut, ettersom de ikke kjører, men fremdeles kan konsumere ressurser. Kubernetes undersøker deretter løpspodene.
Å kaste ut poden som bruker mest minnet vil ikke fungere fordi det mest sannsynlig er en aktiv pod som vil være vanskelig å distribuere. I stedet foretar Kubernetes dette utvalget basert på to forskjellige klasser: QoS (servicekvalitet) og prioritet.
Det som følger når en pod blir kastet ut?
Når det oppdages en kritisk tilstand, utfører Kubernetes noe rengjøring (ja, husholdningsintervall er det offisielle betegnelsen for utkastelsesovervåkningsintervallet) og utkaster PODS. Denne prosedyren "EVICTS" (avsluttes) en pod og beholderne som bygde den, men ikke selve poden. Som standard skiller ikke Kubernetes mellom svært kritiske og ikke i det hele tatt viktige belg; Det har bare en plikt, som er å gjenvinne ressursene.
Arbeidsmengder som administreres av en arbeidsmengde -ressurs eller distribusjon vil automatisk produsere nye pods og fjerne utvidede pods.
Til tross for at de kastede belgene er avsluttet og ikke lenger skal konsumere noen ressurser fra noden, blir de igjen - og Kubernetes fortsetter å administrere dem. Med et økende antall utvidede pods, kan dette føre til en økning i antall ressurser som kreves i Kubernetes -administrasjonen.
Vi vil nå prøve å finne ut hvordan du finner en utvist pod og sletter den med hell. Det er noen få krav som først må oppfylles.
Forutsetning
For å kjøre kommandoer for å slette utkastede pods, må vi først sette opp en Minikube -klynge på vår PC. Ubuntu 20.04 ble brukt til å implementere kommandoene for å slette utkastede pods i dette emnet. Vi kan også bruke vårt foretrukne operativsystem for dette siden vi allerede har installert Kubectl. Det må installeres før kommandoene kan kjøres.
Nå er det på tide å starte en terminal. Et alternativ er å bruke operativsystemets applikasjonslinje for å nå terminalen. En annen måte er å bruke tastatursnarveien “Ctrl + Alt + T.”For å starte en terminal, velg et av disse alternativene. Først må vi starte en Minikube -klynge som tidligere var utplassert på Ubuntu 20.04. Nå vil vi starte Minikube ved å skrive følgende kommando i terminalen. Den relevante utgangen for den nedenfor viste instruksjonen er vedlagt her.
Hvordan oppdage en utvist pod?
For å finne ut det nøyaktige antallet belg som er blitt kastet ut, utfør følgende kommando. Denne kommandoen viser en liste over belgene som er blitt kastet ut fra systemet ditt. Den relevante utgangen for den nedenfor viste instruksjonen er vedlagt her.
La oss nå prøve en annen form for samme kommando. Vi har lagt -c til slutten av kommandoen, som du kan se. Resten av instruksjonen kan ikke skilles fra den ovenfor. Det vil fortelle deg hvor mange belg som har blitt kastet ut totalt. Det er ingen utvidede belg i scenariet vårt. Som et resultat, som du kan se i den endelige linjen til vedlagte skjermbilde, returnerer kommandoen 0. Den relevante utgangen for den nedenfor viste instruksjonen er vedlagt her.
Hvis systemet ditt har noen utbyggede belg, vil kommandoen ovenfor sende ut tallet, for eksempel 10, 3, 9, og så videre.
Hvordan kan de kastede belgene rengjøres manuelt?
Hvis du ikke vil vente på at terskel for søppelinnsamling blir oppfylt, kan du ødelegge belgene manuelt med kubectl. I en stundsløyfe kan hver identifisert avkjørt pod elimineres ved hjelp av kommandoen gitt ovenfor.
Denne kommandoen kan hjelpe deg med å rydde opp i de kastede belgene manuelt. Den relevante utgangen for den nedenfor viste instruksjonen er vedlagt her.
Konklusjon
Utkastelse er prosedyren for å bevisst svikte en eller til og med mer enn en belg på noen av ressurssultede noder. Vi kommuniserte om utvidede pods i denne opplæringen. Vi har også diskutert hvordan du kan slette en utvist pod i enkle trinn. Nå kan du implementere den samme guiden i systemet ditt ved hjelp av KUBECTL og se hvor mange utkastede belg i systemet ditt. Du kan nå liste opp dem alle og slette de valgte.