Hvordan fikse ImagePullbackoff -feil i Kubernetes

Hvordan fikse ImagePullbackoff -feil i Kubernetes
Vet du at Kubernetes er designet for å lette både deklarative konfigurasjoner så vel som automatisering mens du administrerer containerte tjenester og arbeidsmengder? Det lar deg administrere alle containerne dine med bare ett kontrollplan. Beholderen har en eller flere noder som brukes til å kjøre belg for forskjellige formål. Hver node i beholderen bruker bildet av beholderen slik at den kan kjøres på den noden. Hvis Kubernetes -klyngen ikke klarer å trekke containerbildet, vil en ImagePullbackoff -feil bli hevet. I denne artikkelen skal vi diskutere hva en ImagePullbackoff -feil er og hvordan du fikser denne feilen i Kubernetes.

Hva er en Kubernetes -beholder?

En Kubernetes -beholder er en lett, bærbar og utvidbar virtuell maskin som har sitt minne, plass, CPU, filsystem osv. Det anses som lett på grunn av dens evne til å dele operativsystemet blant applikasjoner som har avslappede isolasjonsegenskaper. Dessuten er den bærbar over skyen og har forskjellige operativsystemfordelinger. Uansett hvilket miljø Kubernetes -klyngen kjører i, vil det alltid skildre den samme oppførselen for alle miljøer fordi avhengighetene som er inkludert i den standardiserer ytelsen.

Før utviklingen av containere ble en egen virtuell maskin brukt for hver applikasjon fordi eventuelle endringer i delte avhengigheter av en virtuell maskin kan forårsake rare resultater. Dette forårsaker tap av hukommelsesressurser, CPU -svinn og mangel på andre ressurser. Og så kom containerne, som virtualiserte verten OS og isolerte avhengighetene for hver applikasjon i samme miljø. Containermotoren i containeren lar applikasjonene bruke det samme OS isolert fra andre applikasjoner som kjører på Vert Virtual Machine.

Hva er et containerbilde?

Et containerbilde er representasjonen av avhengighetene som er inkludert i beholderen i form av binære data. Det er en kjørbar og klar til å kjøre programvarepakke som er i stand til å kjøre frittstående. Den inneholder alle avhengigheter inkludert applikasjonsbiblioteker, systembiblioteker, kode, essensielle standardinnstillinger osv. kreves for å kjøre en applikasjon på et hvilket som helst Kubernetes -miljø eller operativsystem. Hver node i beholderen bruker containerbildet til å kjøre applikasjoner og belg på den.

I Kubernetes -klyngen er Kubectl -agenten ansvarlig for å kjøre containerbilder på hver node. Det trekker bildet på hver node som er til stede i klyngen. Det er også ansvarlig å rapportere alt som skjer tilbake til Central Kubernetes API. Hvis containerbildet ikke allerede eksisterer på klyngenoden, instruerer Kubectl beholderen til å trekke bildet på kjøretidspunktet.

Hva er ImagePullbackoff -feilen?

Det er noen situasjoner når Kubernetes kan oppleve problemer med å trekke containerbildet fra registeret for containeren. Hvis disse problemene resulterer i en feil, går podene inn i ImagePullbackoff -tilstanden. Når en ny distribusjon opprettes eller en eksisterende distribusjon blir oppdatert i Kubernetes -klyngen, må containerbildet trekkes. Kubectl trekker bildet på hver arbeidernode i klyngen som samsvarer med planleggingsforespørselen. Så når Kubectl ikke klarer å trekke bildet, står det overfor ImagePullbackOff -feilen.

Med andre ord, delen 'ImagePull' av ImagePullbackoff -feilen refererer til Kubernetes manglende evne til å trekke bildet av beholderen fra et offentlig eller privat containerregister. 'Backoff' -delen refererer til den kontinuerlig økende backoff -forsinkelsen som trekker bildet. Backoff -forsinkelsen fortsetter å øke med hvert forsøk til grensen for backoff når 5 minutter. Den viktigste eller åpenbare årsaken til ImagePullbackoff -feilen er at Kubernetes ikke klarer å trekke containerbildet ved kjøretid. Imidlertid kan det være mange årsaker til dette problemet, inkludert følgende:

  • Bildebanen er feil.
  • Kubeclt unnlater å autentisere med containerregisteret.
  • En nettverksfeil.
  • Container Register Rate Limits.
  • Feil containerregisternavn
  • Autentiseringsfeil på grunn av at bildet er privat.
  • Feil bildavn og tag.
  • Bildet eksisterer ikke.
  • Autentisering er påkrevd av bildegisteret.
  • Last ned grensen overskredet på registeret.

Hvordan løse ImagePullbackoff -feilen i Kubernetes?

Hvis noen av situasjonene som er gitt ovenfor, skjer, havner poden i klyngen i imagepullbackoff -tilstanden. Den beste måten å fikse denne feilen er å feilsøke Kubernetes -klyngen. Du kan feilsøke ved å følge instruksjonene nedenfor:

Trinn 1: Opprett en pod og tilordne den et bildenavn

Pods kjører på nodene som kjører bildebeholderen. Hvert bilde har et spesifikt navn, og hvis du refererer til et bildenavn som ikke eksisterer eller feilaktig skriver inn et feil navn, vil det resultere i en ImagePullbackoff -feil. Her vil vi demonstrere ImagePullbackOff -feilen som oppstår på grunn av et feil bildenavn. Så la oss lage en pod og tilordne den et tullbilde -navn. Vi kan gjøre dette ved å utføre følgende kommando:

> Kubectl Run Demo1 -Image = None -ExistentImage/None -Exist: BLA

Kommandoen 'Kubectl Run' vil opprette en pod som heter 'Demo1' og bildetavnet '-Image = None-ExistentImage/None-Exist: Bla' tildelt det.

Trinn 2: Vis alle pods

Neste trinn er å vise alle belgene for å sjekke statusen deres. Kubectl gir 'get' -kommandoen for å få listen over pods med tilhørende egenskaper som navn, klare, status, alder, etc. Bruk kommandoen gitt nedenfor for å vise alle belgene:

> kubectl få pod

Se utdataene gitt på skjermbildet nedenfor:

Fra utgangen gitt ovenfor kan du se at det er mange belg og hver har sin status. Noen er i "løpende" tilstand, noen er i "errimagepull" -staten og noen er i "imagepullbackoff" -staten.

Trinn 3: Feilsøk pod

Nå som vi vet at det er mange belter som kjører i klyngen, som hver har sin egen status, kan vi spesifikt se på ønsket pod. Dette kan gjøres ved hjelp av kommandoen gitt her:

> Kubectl beskriv pod demo1

'Demo1' er poden som vi opprettet tidligere, og 'beskriv' -kommandoen vil gi oss en detaljert beskrivelse av 'Demo1' POD. Se utgangen gitt nedenfor:

Konklusjon

Vi utforsket ImagePullbackoff -feilen i Kubernetes -miljøet. Vi lærte om Kubernetes Cluster, Cluster Image, og undersøkte også årsakene bak ImagePullbackoff -feilen. Den viktigste og åpenbare årsaken til ImagePullbackoff -feilen er Kubernetes manglende evne til å trekke et bilde av beholderen.