Kubernetes

„Kubernetes Service Mesh“

„Kubernetes Service Mesh“
„Kubernetes“ turi daugybę išteklių tipų, kurie padeda jums abstrakčiai išaiškinti paslaugų ar mikro paslaugų idėją. Pvz., Jei jūsų programos išorinė sąsaja nori sąveikauti su vidine programa, jai nereikia rūpintis, kokio tinklelio ji ieško, ar net nesvarbu, kurio IP adreso ji tikisi, kad užpakalinė dalis užims. Ankštys atidengiamos per tarnybą. (Jei esate „Kubernetes“ naujokas, rekomenduoju šį įrašą geriau suprasti, kas yra ankštys kartu su kitomis svarbiomis sąvokomis.)

Iš esmės „Kubernetes“ atskleidžia a backend tarnyba klasterio viduje ir sąsaja sąveikauja su šia paslauga. Ankštys, siūlančios paslaugą, gali būti labai gerai pakeistos ir niekas nieko nepastebėtų. Tačiau didėjant jūsų programų funkcijoms, auga ir paslaugų, kurias turite išlaikyti, skaičius. Kiekviena paslauga gali susikalbėti su visomis kitomis grupėje esančiomis paslaugomis, o sukurtas tinklas vadinamas „Service Mesh“.

Yra daug „Kubernetes“ priedų, kurie padės mums supaprastinti šios „Service Mesh“ valdymą. Šie priedai siūlo daugybę raktų funkcijų, tokių kaip TLS, automatizuotas apkrovos balansavimas, API užtikrinimas net vidiniame tinkle ir kt. Tam pasiekti galima integruoti daugybę variantų, tokių kaip „Istio“, „Linkerd“ ir „Conduit“. Šiame pranešime nagrinėsime „Istio“, nes tai yra 1 versija.Neseniai buvo paskelbta 0.

Būtinos sąlygos

Norėdami pradėti naudotis „Istio“, jums reikės veikiančio kubernetų klasterio. Yra trys būdai, kaip tai pasiekti.

  1. Galite įdiegti „Minikube“, kad vietiniame kompiuteryje sukurtumėte vieną mazgų sankaupą.
  2. Arba, jei naudojate „Docker“ sistemoje „Windows“ arba „Mac“, „Docker“ nustatymuose galite įgalinti vieno mazgo „Kubernetes“ grupę.
  3. Arba galite naudotis internetinėmis paslaugomis, tokiomis kaip „Katacoda“ žaidimų aikštelė. Mes tai naudosime.

Kodėl verta naudoti „Service Mesh“?

Įdiegus paslaugų tinklą, pvz., „Istio“, lengva dirbti su mikroservisais. Kurdami jūs neturite jaudintis dėl to, kad jūsų mikropaslaugos turės pasiūlyti palaikymą abipusiam TLS, apkrovos balansavimui ar bet kokiems kitiems aspektams, pavyzdžiui, paslaugų atradimui. Idealus „Service Mesh“ suteikia galimybę prijungti mikropaslaugas, apsaugoti jas viena nuo kitos ir iš išorinio pasaulio bei tvarkyti jas organizuotai. Tai nepaprastai padeda tiek kūrėjams, tiek operatoriams.

Diegimas „Istio“

Norint įdiegti „Istio“ reikia „Kubernetes“ sankaupos. Jei turite vieno mazgo sankaupą, tokią, kokią gaunate su „Minikube“ arba „Docker“ darbalaukyje, visas komandas galima paleisti vietiniame mazge. Tačiau, jei naudojate kelių mazgų klasterį, tokį, kokį siūlo „Katacoda“ žaidimų aikštelė, nepamirškite, kad dauguma komandų ir nustatymo procedūrų atliekamos pagrindiniame mazge. Taip, tai veikia visą klasterį, tačiau turime bendrauti tik su pagrindiniu mazgu.

Pradedame naujausio „Istio“ leidimo klonavimu (arba atsisiuntimu) iš „Github“. „Windows“ vartotojai gali norėti apsilankyti šiame puslapyje ir gauti tinkamą .užtrauktukas failą.

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

Atpirkimo vardas laikui bėgant gali keistis, kai pasirodys naujesnis leidimas, šio rašymo metu 1.0.0 yra naujausias stabilus leidimas. Šiame atpirkimo pasiūlyme yra ne tik paslaugos tinklo plėtinys, bet ir programos pavyzdys, vadinamas „BookInfo“ eksperimentavimo tikslais. Scenarijus taip pat prideda naują katalogą $ PWD / istio-1.0.0 / bin į jūsų PATH kintamąjį.

Šiame kataloge yra istioctl dvejetainis, kurį galima naudoti sąveikai su klasteriu. „Windows“ vartotojai gali paprasčiausiai iškviesti dvejetainį failą, eidami į aplanką istio-1.0.0 \ bin ir skambina .\ istioctl naudojant „PowerSell“ arba komandinę eilutę. Bet tai yra pasirinktinis priedas.

Jei naudojate „Mac“, galite tai padaryti naudodami šią komandą:

$ export PATH = $ PWD / šiukšliadėžė: $ PATH

Toliau turime išplėsti savo „Kubernetes“ API naudodami „Custom Resource Definitions“ (CRD), kurias mums teikia „istio“.

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

Tai gali įsigalioti per kelias sekundes, ir kai tai bus padaryta, jūsų „kube-apiserver“ turės „Istio“ plėtinius. Nuo šiol diegimo parinktys skiriasi priklausomai nuo to, ar naudojate tai gamybos tikslams, ar eksperimentuojate savo izoliuotoje aplinkoje.

Mes manysime, kad yra pastarasis atvejis, ir įdiegsime „istio“ be TLS autentifikavimo.

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

Tai sukurs naują vardų erdvės „istio“ sistemą, kurioje bus įdiegti visi įvairūs komponentai, pvz., „Istio-pilot“ ir „ingress gateway“.

Programos diegimas ir „Istio Injector“

Čia ateina „Istio“ naudingumas. „Istio“ prie jūsų paslaugų prideda šalutinių vežimėlių tarpinius serverius, ir tai daroma nekeičiant tikrojo jūsų programos kodo. Jei įjungtas automatinis sėdynės-šoninės priekabos purkštukas. Galite pažymėti vardų sritį su „istio-injection = enabled“ ir kai jūsų programa bus įdiegta šioje vardų srityje, pačiose ankštyse bus specializuoti „Envoy“ konteineriai kartu su pagrindinės programos konteineriais. Pavyzdžiui, pažymėkime numatytąją vardų sritį

$ kubectl etikečių vardų srities numatytasis „istio-injection“ = įjungtas

Dabar šioje vardų srityje įdiekime „BookInfo“ programos pavyzdį. Iš klijuoto „Isitio“ atstovo šakninio katalogo paleiskite:

$ kubectl taikyti -f pavyzdžius / bookinfo / platformą / kube / bookinfo.yaml

Čia galite išvardyti visas veikiančias ankštis:

$ kubectl gauna ankštis

Išsirinkite bet kurį ankštį iš jų ir peržiūrėkite jo išsamią informaciją. Pvz., Viena iš „BookInfo“ programos dėklų mano diegime yra pavadinta details-v1-6865b9b99d-6mxx9

$ kubectl apibūdina ankštis / detales-v1-6865b9b99d-6mxx9

Aprašyme pastebėsite, kad dėžutėje yra du konteineriai, pirmiausia yra faktinio paleisto vaizdo programos pavyzdžių-bookinfo-details-v1 komponentas: 1.8.0, o antrasis yra istro-proxy, paleidžiantis vaizdą gcr.io / istio-release / proxyv2: 1.0.0 .

„Istio“ suteikia galimybę smulkiai kontroliuoti jūsų paslaugų tinklą, nes jis įpurškia šiuos konteinerius iki pat ankščių, kuriose yra jūsų programos. Tai kartu su lengvai naudojamu TLS ryšiams ir smulkia eismo valdymu yra viena iš daugelio priežasčių, kodėl didelėms programoms gali būti naudingas tokių tinklų tinklas kaip „Istio“.

Literatūra

Tikroji architektūra turi daugybę komponentų, tokių kaip „Pilot“, „Citadel“ ir „Mixer“, kurių kiekvienas turi savo svarbų vaidmenį. Čia galite sužinoti daug daugiau apie šiuos komponentus ir čia pabandyti įdiegti savo mikropriešą.

Valdykite ir valdykite pelės judėjimą tarp kelių „Windows 10“ monitorių
„Dual Display Mouse Manager“ leidžia jums valdyti ir konfigūruoti pelės judėjimą tarp kelių monitorių, sulėtinant jo judėjimą šalia sienos. „Windows 1...
„WinMouse“ leidžia tinkinti ir pagerinti pelės žymeklio judėjimą „Windows“ kompiuteryje
Jei norite pagerinti numatytąsias pelės žymiklio funkcijas, naudokite nemokamą programinę įrangą „WinMouse“. Tai prideda daugiau funkcijų, kurios padė...
Pelės kairiuoju pelės mygtuku mygtukas neveikia „Windows 10“
Jei naudojate specialią pelę su savo nešiojamuoju kompiuteriu arba staliniu kompiuteriu, tačiau neveikia pelės kairysis mygtukas dėl tam tikrų priežas...