Kubernetes

Kubernetes Service Mesh

Kubernetes Service Mesh
Kubernetesel on palju ressursitüüpe, mis aitavad teil teenuste või mikroteenuste ideed kokku tõmmata. Näiteks kui teie rakenduse eesseade soovib taustaprogrammiga suhelda, ei pea see hoolima sellest, millist kaarti ta otsib või isegi mitte sellest, millist IP-aadressi ta loodab, et taustaprogrammi hõivaks. Kaunid paljastatakse teenuse kaudu. (Kui olete Kuberneteses uus, soovitan seda postitust paremini mõista, mis kaunad koos teiste oluliste mõistetega on.)

Sisuliselt paljastab Kubernetes a taustaprogramm klastrisiseselt ja kasutajateenused suhtlevad selle teenusega. Teenust pakkuvaid kaunu saab väga hästi välja vahetada ja keegi ei märkaks midagi. Kuid teie rakenduste funktsioonide kasvades kasvab ka hooldatavate teenuste arv. Iga teenus võib potentsiaalselt rääkida kõigi teiste klastri teenustega ja sellest tulenevat võrku nimetatakse Teenindusvõrk.

Kubernetesel on palju lisandmooduleid, mis aitavad meil selle võrgusilma haldamist lihtsustada. Need lisandmoodulid pakuvad paljusid võtmefunktsioone, nagu TLS, automatiseeritud koormuse tasakaalustamine, API-de turvamine isegi sisevõrgus jne. Selle saavutamiseks saab Kubernetesega integreerida paljusid võimalusi, näiteks Istio, Linkerd ja Conduit. Istio uurime selles postituses, kuna see on versioon 1.Hiljuti kuulutati välja 0.

Eeldused

Istio'ga alustamiseks vajate töötavat kubernetese klastrit. Selle saavutamiseks on kolm võimalust.

  1. Minikube saate installida, et luua kohalikus masinas üks sõlmeklaster.
  2. Või kui kasutate Dockerit Windowsis või Macis, saate Dockeri seadetes lubada ühe sõlmpunkti Kubernetese klastri.
  3. Või võite kasutada veebiteenuseid, nagu Katacoda mänguväljak. Me kasutame seda.

Miks kasutada teenusevõrku?

Teenusevõrgu, nagu Istio, installimine muudab mikroteenustega töötamise lihtsaks. Arendades ei pea te muretsema selle pärast, et teie mikroteenus peaks pakkuma tuge vastastikuse TLS-i, koormuse tasakaalustamise või mõne muu aspekti, näiteks teenuse avastamise jaoks. Ideaalne teenusevõrk võimaldab teil ühendada mikroteenuseid, kaitsta neid üksteise ja välismaailma eest ning hallata neid organiseeritud viisil. See aitab tohutult nii arendajaid kui ka operaatoreid.

Istio installimine

Istio installimiseks on vaja Kubernetese klastrit. Kui teil on üks sõlmeklaster, nagu saate Minikube'i või Dockeri töölauale, saab kõiki käske käivitada kohalikus sõlmes. Kuid kui kasutate mitmesõlmelist klastrit, nagu Katacoda mänguväljak pakub, pidage meeles, et enamik käske ja seadistusprotseduure tehakse põhisõlmes. Jah, see mõjutab kogu klastrit, kuid peame suhtlema ainult põhisõlmega.

Alustame Istio uusima versiooni kloonimisega (või allalaadimisega) Githubist. Windowsi kasutajad võivad soovida seda lehte külastada ja hankida sobiva .tõmblukk faili.

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

Repo nimi võib aja jooksul muutuda, kui uuem versioon ilmub selle kirjutamise ajal 1.0.0 on viimane stabiilne versioon. See repo sisaldab lisaks teenuse võrgusilma laiendusele ka eksperimenteerimiseks näidisrakendust nimega BookInfo. Skript lisab ka uue kataloogi $ PWD / istio-1.0.0 / bin teie PATH muutujale.

See kataloog sisaldab istioctl binaarne, mida saab kasutada klastriga suhtlemiseks. Windowsi kasutajad saavad kausta minnes binaarsele helistada istio-1.0.0 \ bin ja helistamine .\ istioctl PowerShelli või käsuviiba abil. Kuid see on valikuline lisandmoodul.

Kui kasutate Maci, saate seda teha järgmise käsu abil:

$ eksport PATH = $ PWD / prügikast: $ PATH

Järgmisena peame laiendama oma Kubernetes API-d kohandatud ressursimääratlustega (CRD), mida istio meile pakub.

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

See võib jõustuda mõne sekundi pärast ja kui see on tehtud, on teie kube-apiserveril sisseehitatud Istio laiendused. Siit alates varieeruvad installimisvõimalused olenevalt sellest, kas kasutate seda tootmise eesmärgil või katsetate sellega oma isoleeritud keskkonnas.

Eeldame, et viimane on nii, ja installime istio ilma TLS-i autentimiseta.

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

See loob uue nimeruumi istio-süsteemi, kuhu installitakse kõik erinevad komponendid, nagu istio-pilot ja sissepääsuvärav.

Rakenduse juurutamine ja Istio pihusti

Siit tuleb Istio kasulikkus. Istio lisab teie teenustele külgkorviga puhverserverid ja seda ilma teie rakenduse tegelikku koodi muutmata. Kui automaatne istio-külgkorv-pihusti on lubatud. Nimeruumile saate lisada sildi istio-injection = lubatud ja kui teie rakendus on sellele nimeruumile juurutatud, on kaunadel endil spetsiaalsed Envoy konteinerid koos põhirakenduse konteineritega. Näiteks sildistame vaikimisi nimeruumi

$ kubectl sildi nimeruum vaikimisi istio-injection = lubatud

Nüüd juurutame selles nimeruumis BookInfo näidisrakenduse. Kloonitud Isitio repi juurkataloogis käivitage:

$ kubectl kohaldatakse -f näidiseid / bookinfo / platform / kube / bookinfo.yaml

Siin saate loetleda kõik töötavad kaunad:

$ kubectl saavad kaunad

Valige ükskõik milline kaun ja vaadake selle üksikasju. Näiteks on minu juurutuses üks BookInfo rakenduse kaustadest üksikasjad-v1-6865b9b99d-6mxx9

$ kubectl kirjeldab kaunad / detailid-v1-6865b9b99d-6mxx9

Kirjelduses märkate, et pakend sisaldab kahte konteinerit, millest esimene on pildirakenduse tegeliku käitamise näited-bookinfo-details-v1: 1.8.0 ja teine ​​on kujutis gcr käitav isteproksi.io / istio-release / proxyv2: 1.0.0 .

Istio pakub teie teenindusvõrgu üle peeneteralist kontrolli, kuna see süstib need konteinerid just nende kaunadeni, kus teie rakendused asuvad. See koos hõlpsasti kasutatava TLS-iga suhtlemiseks ja peeneteraline liikluse juhtimine on üks paljudest põhjustest, miks suured rakendused saavad teenustevõrgust nagu Istio.

Viited

Tegelikus arhitektuuris on palju komponente, nagu Pilot, Citadel ja Mixer, millel kõigil on oma oluline roll täita. Nende komponentide kohta saate palju rohkem teada siit ja proovige oma mikroteenust juurutada siin.

Parimad Oculus App Lab mängud
Kui olete Oculuse peakomplekti omanik, peate olema teadlik külglaadimisest. Kõrvalaadimine on protsess, millega installitakse peakomplekti mitte-poesi...
10 parimat mängu, mida Ubuntu kaudu mängida
Windowsi platvorm on olnud üks mängude domineerivaid platvorme, kuna tohutu protsent mänge areneb täna Windowsi loomupäraseks toetamiseks. Kas keegi s...
5 parimat arkaadmängu Linuxile
Tänapäeval on arvutid tõsised mängimiseks kasutatavad masinad. Kui te ei saa uut rekordit, teate, mida ma mõtlen. Selles postituses saate teada mõnda ...