Hvordan lage en Kubernetes -tjeneste

Hvordan lage en Kubernetes -tjeneste

Tjenester er abstraksjonslaget for å gjøre en applikasjon tilgjengelig som nettverkstjeneste på settet med PODS. Det tilbyr et enkelt DNS -navn og IP -adresse som podene kan nås. Den legges til foran hver pod for å oppgi en statisk IP -adresse. Denne artikkelen beskriver behovet for et servicelag og typer tjenester i Kubernetes. Se denne artikkelen fra start til slutt hvis du er ny på dette konseptet, og du vet ikke hvordan du oppretter en Kubernetes -tjeneste.

Hva er Kubernetes -tjenester?

En tjeneste i Kubernetes er en abstraksjon som definerer en samling av logiske belg der en aktiv komponent eller applikasjon er innlosjert og inneholder en tilgangspolicy. På grunn av den flyktige naturen til individuelle belg, sikrer Kubernetes bare tilgjengeligheten av de spesifiserte belgene og kopiene, ikke deres livlighet. Dette antyder at andre belg som trenger å samhandle med denne applikasjonen eller komponenten ikke var avhengige av IP -adressene til deres underliggende pods.

En tjeneste tildeles også en simulert IP -adresse (i Kubernetes, den blir således referert til som en klynge) og den overlever til den uttrykkelig blir drept. Spørsmål til tjenesten blir videresendt til de aktuelle belgene, noe som gjør det til et pålitelig grensesnitt for applikasjon eller modulkommunikasjon. Forespørsler om Kubernetes-native applikasjon.

Når trenger vi Kubernetes -tjenestene?

Her er grunnene til at vi trenger Kubernetes -tjenester:

Stabil IP -adresse

Ha en statisk IP -adresse som holder seg selv om pod dør. Foran hver pod kaller vi tjenestene som gir vedvarende og stabil IP -adressetilgang til den pod.

Lastbalansering

Når du har pod -replikker. For eksempel har du tre kopier av en mikroservice -applikasjon eller MySQL -applikasjon. Tjenesten får hver forespørsel, og målrettet mot denne applikasjonen, for eksempel er mysql, og videresender den til en av disse delene.

Løs kobling

Tjenester er en god abstraksjon for løs kobling eller kommunikasjon i klyngens komponenter.

Innen og utenfor klyngen

Tjenester gir kommunikasjon innen klyngen og utenfor klyngen, for eksempel nettleserforespørsler til klyngen eller databasen.

Typer tjenester i Kubernetes

Clusterip

Den mer vanlige eller standardtypen av tjenesten i Kubernetes. Uten å gi tilgang utenfra, bygger den en tjeneste inne i Kubernetes -klyngen som kan brukes av de andre appene i klyngen.

Nodeport

Denne tjenesten åpner en bestemt port på alle implementerte noder i klyngen, og trafikken som mottas av havnen blir videresendt til tjenesten. Tjenesten kan ikke nås fra den utvendige klyngen IP.

LoadBalancer

Det genererer de offentlige IP -ene for å muliggjøre en tilgang gjennom skyen. Når du bruker Google Kubernetes Engine (GKE), opprettes en nettverksbalanser med en enkelt IP -adresse som kan nås av utenforstående brukere og leder trafikken til den aktuelle noden i Kubernetes Cluster. Den samme metoden som clusterip eller nodeport kan brukes til å få tilgang til den.

Eksternavn

Dette er en standard måte å representere en ekstern datastore, for eksempel en database, innenfor Kubernetes ved å lage en tjeneste. Når belgene fra ett navneområde trenger å kommunisere med en tjeneste i et annet navneområde, kan du bruke den eksterne Navn -tjenesten (som en lokal tjeneste).

Forutsetninger:

Her er noen må-ha ting før du drar mot følgende avsnitt:

  • Kubernetes Cluster
  • Minikube Cluster
  • En klynge som kjører på Kubernetes med minst en enkelt arbeidernode.

Hvordan lage en tjeneste i Kubernetes

Her vil vi lede deg gjennom et enkelt eksempel som viser deg hvordan du lager en tjeneste på Kubernetes. La oss begynne!

Trinn 1: Start Minikube -klyngen

Først må du starte Minikube -klyngen slik at du kan bruke KUBECTL -kommandoene og kjøre søknaden din. Minikube -klyngen lar deg distribuere nodene, belgene og til og med klyngen i Kubernetes -miljøet. Derfor er det viktig å holde Minikube i aktiv modus ved å bruke den påfølgende kommandoen:

> Minikube Start

Dette aktiverer Minikube -klyngen og gjør Kubernetes -miljøet klart til bruk.

Trinn 2: COnfigurer Yaml Manifest til distribusjon for Nginx

Tjenesten leder alle innkommende forespørsler til distribusjonen som vi oppretter ved hjelp av følgende kommando:

> nano sampledeployment.Yaml

Følgende er den komplette konfigurasjonsfilen:

Trinn 3: Opprett et tjenesteobjekt i klyngen

For å legge til et tjenesteobjekt i en klynge, utfør følgende kommando:

> Kubecl søk -f sampledeployment.Yaml

Trinn 4: Lag tre kopier for NGINX

Følgende kommando distribuerer Nginx med tre eksemplarer:

> Kubectl Få distribusjon | grep nginx

Trinn 5: Spesifiser informasjonen (POD, Replicas)

Følgende kommandoer viser deg detaljene i distribusjonen, replikkene og POD:

> KUBECTL Få Replicaset | grep nginx

Trinn 6: POD -detaljer

Her bruker vi følgende kommando for å se de eksakte kopiene av Nginx:

> Kubectl Get Pod | grep nginx

Du kan se at tre eksemplarer av Nginx er laget i forrige skjermbilde.

Trinn 7: CReat en tjenestedefinisjon

I dette trinnet oppretter vi en tjenestedefinisjon ved hjelp av følgende listede kommando:

> Nano -prøveservice.Yaml

Med den nevnte tjenestebeskrivelsen er en tjeneste av NodePort -typen bygget ved hjelp av standard navneområdet, og forespørslene blir videresendt til Pods med Nginx -etiketten som Pods som ble generert under forrige opprettelsesstadium.

Trinn 8: Cfest en tjeneste

For å opprette en tjeneste, bruk følgende kommando:

> KUBECTL Søk -f Prøveservice.Yaml

I utgangen kan du se at tjenesten er opprettet med hell.

Trinn 9: Få tjenestedetaljene

I dette trinnet får vi spesifikasjonen av tjenesten og søker etter nodeport der den er tilgjengelig. Kommandoen for å gjøre det er som følger:

> Kubectl Get Service | grep nginx

Trinn 10: Beskriv tjenestedetaljene

I dette trinnet bruker vi beskrivingskommandoen for å se tjenestedetaljene. Beskrivende kommando er gitt som følger:

> Kubectl beskriv tjeneste nginx

Tjenesten er tilgjengelig på port 30747, som sett i forrige skjermbilde. Du kan oppleve noe annet fordi porten ble valgt tilfeldig fra det tilgjengelige området. Nå, denne tjenesten på nodeip: Nodeport gir tilgang til Nginx -applikasjonen.

Konklusjon

Vi lærte at tjenesten er et abstrakt lag som er plassert foran belg for å gi en stabil IP -adresse. Vi har tilgang til Internett ved hjelp av LoadBalancer -tjenestetypen. Etter det implementerte vi det enkle eksemplet på å lage en tjeneste trinn for trinn på Kubernetes, og ga tilgang til Nginx-applikasjonen.