Kubernetes

Kubernetes servicenett

Kubernetes servicenett
Kubernetes har mange ressurstyper som hjelper deg med å trekke ut ideen om tjenester eller mikrotjenester. For eksempel, hvis appens frontend ønsker å samhandle med backend, trenger den ikke å bry seg om hvilken pod den leter etter, eller ikke engang hvilken IP-adresse den håper at en backend pod vil okkupere. Pod blir eksponert via en tjeneste. (Hvis du er ny i Kubernetes, anbefaler jeg dette innlegget for å forstå bedre hva pods er sammen med andre viktige konsepter.)

I hovedsak avslører Kubernetes a backend-tjeneste internt i klyngen og front-enden samhandler med denne tjenesten. Podene som tilbyr tjenesten kan veldig godt byttes ut, og ingen vil merke noe. Men ettersom funksjonene i applikasjonene dine vokser, øker også antallet tjenester du trenger å vedlikeholde. Hver tjeneste kan potensielt snakke med alle andre tjenester i klyngen, og det resulterende nettverket blir betegnet som Servicenett.

Det er mange tillegg for Kubernetes for å hjelpe oss med å forenkle administrasjonen av dette servicenettet. Mange tilleggsfunksjoner som TLS, automatisert belastningsbalansering, sikring av API-er selv på det interne nettverket osv. Tilbys av disse tilleggene. Mange alternativer som Istio, Linkerd og Conduit kan integreres med Kubernetes for å oppnå dette. Vi vil se på Istio i dette innlegget siden det er versjon 1.0 ble nylig kunngjort.

Forutsetninger

For å komme i gang med Istio, trenger du en fungerende kubernetes-klynge. Det er tre måter å få det på.

  1. Du kan installere Minikube for å opprette en enkelt node-klynge på din lokale maskin.
  2. Eller hvis du bruker Docker på Windows eller Mac, kan du aktivere en Kubernetes-klynge med en node i Docker-innstillinger.
  3. Eller du kan bruke online-tjenester som Katacoda lekeplass. Vi bruker dette.

Hvorfor bruke et servicenett?

Installering av et servicenett, som Istio, gjør det enkelt å jobbe med mikrotjenester. Mens du utvikler deg, trenger du ikke å bekymre deg for det faktum at mikroservicen din vil måtte tilby støtte for gjensidig TLS, lastbalansering eller andre aspekter som funn av tjenester. Et ideelt servicenett lar deg koble til mikrotjenester, sikre dem fra hverandre og fra omverdenen, og administrere dem på en organisert måte. Det hjelper både utviklerne og operatørene enormt.

Installere Istio

Installasjon av Istio krever at du har en Kubernetes-klynge. Hvis du har en enkelt nodeklynge som du får med Minikube eller Docker på skrivebordet, kan alle kommandoene kjøres på din lokale node. Men hvis du bruker en gruppe med flere noder som den som Katacoda-lekeplassen tilbyr, må du huske på at de fleste kommandoer og oppsettprosedyrer gjøres på masternoden. Ja, det påvirker hele klyngen, men vi må kun kommunisere med masternoden.

Vi begynner med kloning (eller nedlasting) av den siste utgivelsen av Istio fra Github. Windows-brukere vil kanskje besøke denne siden og få riktig .glidelås fil.

$ curl -L https: // git.io / getLatestIstio | sh -
$ cd istio-1.0.0

Repos navn kan endres over tid når nyere utgivelse kommer gjennom, i skrivende stund 1.0.0 er den siste stabile utgivelsen. Denne repoen inneholder ikke bare tjenestenett utvidelsen, men også en prøve-app kalt BookInfo for eksperimenteringsformål. Skriptet legger også til den nye katalogen $ PWD / istio-1.0.0 / bin til PATH-variabelen.

Denne katalogen inneholder istioctl binær som kan brukes til å samhandle med klyngen. Windows-brukere kan bare ringe binæren ved å gå til mappen istio-1.0.0 \ bin og ringer .\ istioctl ved hjelp av powershell eller ledetekst. Men det er et valgfritt tillegg.

Hvis du bruker Mac, kan du gjøre det ved å bruke følgende kommando:

$ eksport PATH = $ PWD / kasse: $ PATH

Deretter må vi utvide Kubernetes API med tilpassede ressursdefinisjoner (CRD) som istio gir oss.

$ kubectl gjelder -f install / kubernetes / helm / istio / templates / crds.yaml

Dette kan tre i kraft om noen sekunder, og når det er gjort, vil kube-apiserver ha Istio-utvidelser innebygd i det. Herfra og videre varierer installasjonsalternativene avhengig av om du bruker dette til produksjonsformål eller om du eksperimenterer med det i ditt eget isolerte miljø.

Vi kommer til å anta at sistnevnte er tilfelle, og installere istio uten TLS-godkjenning.

$ kubectl gjelder -f install / kubernetes / istio-demo.yaml

Dette vil skape et nytt navneområde istio-system der alle de forskjellige komponentene som istio-pilot og ingress gateway vil bli installert.

Applikasjonsdistribusjon og Istio Injector

Her kommer nytten til Istio. Istio legger til sidevogn proxies til tjenestene dine, og dette gjøres uten å endre den faktiske koden til applikasjonen din. Hvis automatisk istio-sidevogninjektor er aktivert. Du kan merke et navneområde med istio-injection = aktivert, og når applikasjonen din blir distribuert på dette navneområdet, vil podene selv ha spesialiserte Envoy-containere sammen med containerne for kjerneapplikasjonen. La oss for eksempel merke standardnavnområdet

$ kubectl label namespace standard istio-injection = aktivert

La oss nå distribuere eksemplet med BookInfo-appen i dette navneområdet. Fra rotkatalogen til Isitio rep som vi klonet, kjør:

$ kubectl gjelder -f prøver / bookinfo / plattform / kube / bookinfo.yaml

Du kan liste opp alle belgene som kjører her:

$ kubectl få pods

Velg en hvilken som helst pod ut av dem og se detaljene. For eksempel heter en av podene fra BookInfo-appen i distribusjonen min detaljer-v1-6865b9b99d-6mxx9

$ kubectl beskriver pods / details-v1-6865b9b99d-6mxx9

I beskrivelsen vil du legge merke til at poden inneholder to beholdere, den første er en komponent av den faktiske kjøringen av bildeapp-eksemplene-bookinfo-details-v1: 1.8.0 og den andre er istio-proxyen som kjører bildet gcr.io / istio-release / proxyv2: 1.0.0 .

Istio tilbyr finkornet kontroll over servicenettet ditt fordi det sprøyter disse beholderne ned til selve belgene der applikasjonene dine ligger. Dette kombinert med brukervennlig TLS for kommunikasjon og finkornet trafikkontroll er en av mange grunner til at store applikasjoner kan dra nytte av et servicenett som Istio.

Referanser

Den faktiske arkitekturen har mange komponenter som Pilot, Citadel og Mixer, hver med sin egen viktige rolle å utføre. Du kan lære mye mer om disse komponentene her og prøve å distribuere din egen mikroservice her.

Mus Hvordan endre venstre og høyre museknapp på Windows 10 PC
Hvordan endre venstre og høyre museknapp på Windows 10 PC
Det er ganske vanlig at alle datamusenheter er ergonomisk designet for høyrehendte brukere. Men det er tilgjengelige musenheter som er spesielt design...
Mus Etterlig museklikk ved å sveve med Clickless Mouse i Windows 10
Etterlig museklikk ved å sveve med Clickless Mouse i Windows 10
Bruk av mus eller tastatur i feil stilling for overdreven bruk kan føre til mange helseproblemer, inkludert belastning, karpaltunnelsyndrom og mer. I ...
Mus Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
De siste årene har datamaskiner og operativsystemer utviklet seg sterkt. Det var en tid da brukere måtte bruke kommandoer for å navigere gjennom filad...