Kubernetes matchlabels

Kubernetes matchlabels
I dette innlegget vil vi for det meste diskutere etiketter, matchlabels og utvalgere og hvordan de vil bli brukt i pods, tjenester og distribusjoner. Du vil vite hvordan Kubernetes -varer som jobb, distribusjon, replikasett og Daemon SET bruker disse ideene når du forstår dem. Så la oss starte med definisjonen av etiketter og matchlabels.

Hva er etiketter og matchlabels?

Innenfor Kubernetes er etiketter et nøkkel/verdi formatert stykke metadata knyttet til et objekt. Ytterligere informasjon om det som er relevant for forbrukeren eller objektet, leveres via etiketter. For eksempel kan en etikett identifisere en nodes maskinvarespesifikasjoner eller om en arbeidsmengde er for produksjonstesting.

Etiketter fungerer som en implisitt grupperingsteknikk for lignende objekter, samtidig som de tilbyr en oppslagsmekanisme for brukere, kontrollere og andre systemer.

Etiketter lar brukere kartlegge sine egne organisasjonssystemer til systemartikler på en løst tilkoblet måte uten å kreve at klienter sparer kartleggingen.

Flerdimensjonale enheter som tjenestedistribusjoner samt batchbehandlingsrørledninger er vanlige. Tverrgående handlinger er ofte nødvendige i styringen, noe som undergraver innkapslingen av strengt hierarkiske representasjoner, spesielt ufleksible hierarkier diktert av infrastruktur i stedet for brukere.

Matchlabels er en type kartkart for nøkkelverdi. Et enkelt nøkkelverdipar på MatchLabels -kartet tilsvarer et element av MatchExpressions med nøkkelfeltet “Key”, operatøren “In”, og bare "verdi" i verdiene -matrisen. En samling av POD -valgkrav kalles matchexpressions.

I, eksisterer, does ikkeexist, og notin er alle gyldige og nødvendige operatører. Når det gjelder 'in' og 'notin,' sørg for at verdiene er ikke-tomt. Alle kravene til matchlabels og matchexpressions er anded sammen, og de må alle oppfylles for å matche.

Forutsetning:

Vi må installere Ubuntu 20.04 For å utføre den teoretiske kunnskapen i praksis og utføre instruksjonene i Kubernetes. Kubectl -kommandoene kjøres på Linux -operativsystemet i dette eksemplet. For å kjøre Kubernetes på Linux, installerer Minikube -klyngen. Minikube letter forståelsen ved å gi en effektiv mekanisme for testing av kommandoer og applikasjoner.

Vi har utført kommandoen “Minikube Start” på terminalen for å initialisere Minikube. Denne kommandoen lanserer Kubernetes -klyngen og oppretter en virtuell maskin som er i stand til å utføre klynge. Den vil også koble seg til klyngen ved å bruke KUBECTL -installasjonen. Utgangen "Minikube Start" -kommandoen er avbildet nedenfor.

Opprette en distribusjon

I dette eksemplet har vi opprettet to distribusjoner. En for en webtjeneste som kjører på intern infrastruktur og en annen på DMZ -infrastruktur. Den første distribusjonen (kalt dep11.yaml) er laget, som vist nedenfor.

Her er hele dep11.YAML -konfigurasjonsfil, som inkluderer MatchLabels -feltet.

Kommandoen for å opprette poden er som følger.

Distribusjonen (navngitt: Dep12.YAML) som opererer på DMZ -infrastrukturen vises nedenfor.

Hele konfigurasjonsfilen finner du nedenfor.

Når belgene er distribuert, har de etikettene kjørt = nginx. Flere etiketter er mulig for et objekt; Flere etiketter med samme nøkkel er imidlertid ikke. Hvis det er flere etikettoppføringer med samme nøkkel i et objekt manifest, brukes den siste verdien.

Selector -taggen kan sees her, som distribusjon bruker for å kommunisere med pods. Distribusjonens velgerfelt spesifiserer hvordan det bestemmer hvilke pods de skal administrere. Du må først velge en etikett fra pod -malen. Mer kompliserte utvalgsregler var også mulig hvis pod -malen passer til kriteriene. Her er kommandoen for å lage pod.

For å se etikettene til en pod, bruk Get Subcommand:

Pods som ble lansert ved hjelp av ovennevnte distribusjonsmanifester vises i kodeblokken nedenfor. POD-Template-Hash-etiketten brukes automatisk av distribusjonskontrolleren.

Pods levert av Kubectl Get Pods kan filtreres ved hjelp av en eller flere -selektorparametere. I utgangen blir etikettene presentert som en ekstra kolonne.

For å få interne Nginx -pods, bruk flere utvalgere.

Distribusjonskontrolleren bruker en velger for å bestemme hvilke pods som er inkludert i en distribusjon. Et ReplicAset -objekt opprettes når det opprettes en distribusjon, og replikasjonskontrolleren overvåker det for å sikre at antall POD -er som samsvarer med det planlagte nummeret.

Våre distribusjoner har for øyeblikket fire belg i en klar tilstand.

Konfigurasjonen av et replikasett vises nedenfor.

Her er resten av utdataene fra overheadkoden.

La oss endre et av etikettene på en pod slik at den ikke lenger tilsvarer velgeren vår. Sjekk ut matchlabels -spesifikasjonen for å se hva som skjer.

Etter å ha endret løpetiketten på pod og distribuert en annen pod for å løse problemet, kunne replikontrolleren bare finne tre pods som opererer ved hjelp av MatchLabel -valget.

For å bekrefte at distribusjonen ble opprettet, kjører du 'Kubectl Get Deployments' instruksjon. Følgende felt presenteres når du inspiserer distribusjonene i klyngen: Navn, klare, oppdatert, tilgjengelig og alder.

Som du kan se nedenfor, benyttet vi flere kriterier for å skaffe interne Nginx -pods.

Konklusjon:

Denne artikkelen klargjorde forskjellene mellom etiketter og matchlabels. Vi har allerede sett fordelene ved å bruke etiketter. Kategoriseringen og filtreringsfunksjonene til Kubernetes -etiketter er fantastiske, som du kan se ovenfor. Ved å bruke etiketter vil loggene dine mer relevante, overvåkingsverktøy lar deg velge visse arbeidsmengder av interesse, og bash -skripting vil gi deg et større dataområde å håndtere.