Hva er tjenesteoppdagelse i Kubernetes?

Hva er tjenesteoppdagelse i Kubernetes?
Mikroservices brukes i moderne systemer for å holde dem skalerbare og funksjonelle. Med sine verktøy og funksjonaliteter skaper Kubernetes den perfekte rammen for mikroservices å samarbeide. Løsningen som helhet blir mye mer fleksibel ettersom hver komponent i applikasjonen er distribuert i en beholder. Service Discovery er prosessen med å finne apper og mikroservices i et nettverk.

Teknikken for automatisk å finne enheter og tjenester i et nettverk er kjent som Service Discovery. Service Discovery Protocol (SDP) er en nettverksstandard for å oppdage nettverk og lokalisere ressurser når brukere får passende ressurser, for eksempel en Bluetooth-aktivert skriver eller bærbar PC, Service Discovery Aids for å redusere konfigurasjonsrenner.

Service Discovery er oppnådd i Kubernetes ved å bruke automatisk opprettede tjenestenavn som tilsvarer tjenestens IP -adresse. I Kubernetes tilbyr Services -modellen den mest grunnleggende, men likevel avgjørende komponenten i Microservices Discovery. Å gjenkjenne hvordan en applikasjon fungerer på Kubernetes krever forståelse av tjenesteoppdagelse. Kubernetes Service Syncs standardiserer og automatiserer tilkobling mellom tjenester, og adresserer containerproblemer i en mikroservices design. Tjenester lenker pods til nettverket på en jevn måte på tvers av klynger.

Prosessen med å bestemme hvordan du blir med i tjenesten er kjent som tjenesteoppdagelse. Server-side og klientsiden Service Discovery er de viktigste typene tjenesteoppdagelse. Klientapplikasjoner kan bruke serversiden Service Discovery-tilnærminger for å støtte via en ruter eller lastbalanse. Tjenesteoppdagelse av klientsiden lar klientapplikasjoner finne tjenester ved å søke eller be et tjenestegister som inneholder serviceforekomster og endepunkter.

Serviceforekomster kan registreres med og midlertidig suspendert fra tjenestegisteret i to forskjellige metoder. Selvregistreringsmønsteret lar tjenesteenheter registrere seg uavhengig av tjenestegisteret. Tredjepartsregistreringsmønsteret innebærer å ha en annen systemkomponent til å utføre registrering og avregistrering på grunn av tjenesten. En av komponentene som gjør denne containerplattformen dyktig og tilpasningsdyktig er Kubernetes Service Discovery. Gjennom standardisering gjengir avanserte teknologier som Service Mesh Kubernetes Service Discovery mer effektiv. Vi ser på noen av de grunnleggende prosessene for tjenesteoppdagelse i Kubernetes i dette emnet.

La oss starte med å sette sammen noen nødvendige tjenester for å undersøke hvordan Kubernetes 'tjenestekonsepter presterer praktisk sett. La oss få tilgang til terminalen til Ubuntu 20.04 LTS OS for å snakke om tjenesteoppdagelse i Kubernetes. For dette kan du bruke applikasjonsområdet eller en snarvei som er "Ctrl+Alt+T".

For å initialisere Minikube, kjør kommandoen oppført nedenfor.

$ Minikube Start

Den nåværende utgaven av Minikube vil vises i utgangen av denne instruksjonen. Nå skal vi lage et navneområde som heter "Develop" ved å bruke CAT -kommandoen i skallet.

$ katt << ENDL > Utviklingsnavn.yml

Innholdet vil bli lagt direkte til terminalen uten å åpne det fra filen.

For å generere et navneområde i terminalen, bruk kommandoen som:

$ kubectl gjelder -f utviklingsnavnområde.yml

Navnområdet er opprettet effektivt. Nå igjen, vil vi lage et annet navneområde som heter “Produksjon” ved å bruke CAT -kommandoen i skallet.

For å generere et navneområde i terminalen, utfør kommandoen som:

$ kubectl gjelder -f produksjonsnavnområde.yml

Igjen er navneområdet opprettet effektivt. Nå skal vi distribuere eksemplene våre på navneområdene som vi har laget tidligere. For dette formålet vil vi lage en distribusjon som heter “Hello” for utviklingen av navneområdet ved å bruke CAT -kommandoen i skallet.

$ katt << ENDL > App-distribusjonsutvikling.yml

Innholdet vil bli lagt direkte til terminalen uten å åpne det fra filen.

For å lage en distribusjon for utviklingen av navneområdet, kjør kommandoen som:

$ kubectl gjelder -f app-distribusjonsutvikling.yml

Distribusjonen er opprettet effektivt. Igjen vil vi lage en annen distribusjon for et navneområde som heter “Produksjon” ved å bruke CAT -kommandoen i skallet.

$ katt << ENDL > App-distribusjonsproduksjon.yml

For å lage en distribusjon for produksjonsnavnet i terminalen, bruk kommandoen som:

$ kubectl gjelder -f app-distribusjonsproduksjon.yml

Distribusjonen er opprettet effektivt, som det kan sees fra den viste utgangen. Nå for å definere belgene og for å finne sin IP-adresse, kommer vi til å utføre kommandoen nedenfor som:

$ kubectl beskriver pods-all-namespaces

IP -adressene for hver pod i utgangen ovenfor er intern og unik for hver forekomst. Hver gang vi omdisponerte applikasjonen, vil den få en ny IP -adresse. Vi kan nå teste om vi kan pinge en pod inne i klyngen eller ikke. Opprett en fil ved å bruke CAT -kommandoen som.

$ katt << ENDL >> Jumpod.yml

For å lage en pod for standard navneområde i skallet, kjør kommandoen som:

Kubectl gjelder -f Jumpod.yml

Poden er opprettet, som det fremgår av det ovennevnte bildet. Ping IP -adressen til en midlertidig pod inne i standardnavnet ved å bruke CAT -kommandoen i skallet ved å bruke KUBECTL EXEC -kommandoen.

$ KUBECTL EXEC -It Jumpod Ping 10.244.0.149

Domenenavnssystemet er blant de essensielle aspektene ved Effective Internet Service (DNS). Alt internettinnhold og webtjenester er avhengige av DNS, så du må kunne løse eventuelle problemer raskt. Et verktøy som heter NSlookup er en metode for å gjøre dette. NSlookup står for "Navn Server -oppslag", den lar deg sjekke opp informasjonen om et domenenavn og oppdage problemer. Vi kan skaffe oss FQDN til pod ved hjelp av NSlookup -verktøyet:

$ KUBECTL EXEC -It Jumpod NSlookup 10.244.0.149

Nå for å sjekke den eksterne distribuerte IP -adressen, vil vi utføre kommandoen nedenfor:

$ Kubectl Få tjenester-ALL-NAMESPACES

Konklusjon

Når du migrerer til mikroservices, er tjenesteoppdagelse sannsynligvis den viktigste infrastrukturen for å implementere. I denne opplæringen har vi sett hvor enkelt det er å utsette en app for publikum som bruker Kubernetes -tjenester.