Programavimas

Kas yra „Istio“? Paaiškino „Kubernetes“ tinklo tinklas

Mikroserviso architektūros išsprendžia kai kurias problemas, bet supažindina su kitomis. Programų padalijimas į nepriklausomas paslaugas supaprastina kūrimą, atnaujinimą ir mastelio keitimą. Tuo pačiu tai suteikia jums daug daugiau judančių dalių, kurias galite prijungti ir pritvirtinti. Visų tinklo paslaugų valdymas - apkrovos balansavimas, srauto valdymas, autentifikavimas ir autorizavimas ir kt. - gali tapti nepaprastai sudėtinga.

Šioje tinklo erdvėje tarp „Kubernetes“ grupės paslaugų yra bendras terminas: a paslaugų tinklelis. „Google“ projektas „Istio“ - tai būdas suteikti jums galimybę valdyti klasterio paslaugų tinklą, kol jis netaps grumtyliu.

Kas yra paslaugų tinklas?

Bet kurioje tinkle sujungtų programų grupėje yra daugybė įprasto elgesio būdų, kurie linkę atsirasti aplink juos. Pavyzdžiui, apkrovos balansavimas: nedaug atvejų, kai tinklo paslaugų grupei to nereikia. Taip pat galimybė išbandyti skirtingus paslaugų derinius A / B arba nustatyti visišką paslaugų grandinių autentifikavimą. Šis elgesys bendrai vadinamas apaslaugų tinklelis.

Tvarkyti paslaugų tinklą nereikėtų palikti pačioms tarnyboms. Nė vienas iš jų neturi gerų galimybių daryti tai, kas iš viršaus į apačią, ir tai vis tiek neturėtų būti jų darbas. Geriau turėti atskirą sistemą, kuri yra tarp tarnybų ir tinklo, su kuriuo jie kalba. Ši sistema atliktų dvi pagrindines funkcijas:

  1. Neleiskite pačioms tarnyboms spręsti tinklo srauto valdymo - apkrovos balansavimo, maršruto parinkimo, pakartotinių bandymų ir kt.
  2. Pateikite administratoriams abstrakcijos sluoksnį, kad būtų lengva priimti aukšto lygio sprendimus apie tinklo srautą klasteryje - politikos valdiklius, metriką ir registravimą, paslaugų atradimą, saugų tarpžinybinį ryšį per TLS ir pan.

„Istio“ tinklo tinklo komponentai

„Istio“ veikia kaip paslaugų tinklas, pateikdamas dvi pagrindines klasterio architektūros dalis: a duomenų plokštuma ir a valdymo plokštuma.

Duomenų plokštuma tvarko tinklo srautą tarp tinkle esančių paslaugų. Visą šį srautą perima ir nukreipia tinklo proxy sistema. Istio atveju įgaliojimą teikia atvirojo kodo projektas „Pasiuntinys“. Antrasis duomenų plokštumos komponentas „Mixer“ renka „Envoy“ telemetriją ir statistiką bei paslaugų srauto srautą.

Valdymo plokštuma, „Istio“ šerdis, valdo ir saugo duomenų plokštumą. Tai sukonfigūruoja tiek pasiuntinio įgaliotinius, tiek maišytuvus, kurie įgyvendina tinklo tinklo politiką, pvz., Kas su kuo ir kada gali kalbėtis. Valdymo plokštumoje taip pat pateikiamas programinis duomenų plokštumos ir visų jos veiksmų elgesio sluoksnis.

Trys kitos „Istio“ paslaugos papildo derinį:

Istio lakūnas

„Istio Pilot“ atsižvelgia į eismo elgesio taisykles, kurias pateikia valdymo plokštuma, ir paverčia jas pasiuntinio pritaikytomis konfigūracijomis, atsižvelgdama į tai, kaip tokie dalykai valdomi vietoje. Pilotas leis „Istio“ dirbti su skirtingomis orkestravimo sistemomis, išskyrus „Kubernetes“, tačiau tarp jų elgiasi nuosekliai.

Istio citadelė

„Citadel“ kontroliuoja autentifikavimą ir tapatybės valdymą tarp tarnybų.

Istio Galley

Galerija priima vartotojo nurodytas „Istio“ konfigūracijas ir paverčia jas tinkamomis kitų valdymo plokštumos komponentų konfigūracijomis. Tai dar vienas elementas, leidžiantis „Istio“ skaidriai naudoti skirtingas orkestravimo sistemas.

„Istio“ tinklo tinklo galimybės

Pirmoji ir vertingiausia „Istio“ teikiama nauda yra abstrakcija - būdas susitvarkyti su tinklo akių sudėtingumu rankos atstumu. Programinius bet kokius tinklo pakeitimus galite atlikti komanduodami „Istio“. Prie tinklo prijungtų paslaugų nereikia perprogramuoti iš vidaus, kad būtų laikomasi naujos tinklo politikos ar kvotų, taip pat nereikia tiesiogiai liesti tinklo erdvių tarp jų.

Be to, „Istio“ leidžia jums atlikti neardomuosius ar preliminarius klasterio tinklo konfigūracijos pakeitimus. Jei norite visiškai ar iš dalies išleisti naują tinklo išdėstymą arba A / B išbandyti esamą konfigūraciją pagal naują, „Istio“ leidžia tai padaryti iš viršaus į apačią. Taip pat galite atšaukti tuos pakeitimus, jei jie pasirodys nesveiki.

Trečias privalumas yra stebimumas. „Istio“ teikia išsamią statistiką ir ataskaitas apie tai, kas vyksta tarp konteinerių ir grupių mazgų. Jei kyla nenumatytų problemų, jei kažkas neatitinka politikos arba jei jūsų atlikti pakeitimai yra neproduktyvūs, apie tai galėsite sužinoti per trumpą laiką.

„Istio“ taip pat pateikia būdų, kaip įgyvendinti įprastus modelius, kuriuos matote paslaugų tinkle. Vienas iš pavyzdžių yra automatinio jungiklio modelis - būdas užkirsti kelią tarnybai bombarduoti užklausomis, jei užpakalinė dalis praneša apie nesklandumus ir negali laiku įvykdyti užklausų. „Istio“ pateikia grandinės pertraukiklio modelį kaip savo standartinės politikos vykdymo bibliotekos dalį.

Galiausiai, nors „Istio“ dirba tiesiogiai ir giliausiai su „Kubernetes“, jis sukurtas taip, kad būtų nepriklausomas nuo platformos. „Istio“ jungiasi prie tų pačių atvirų standartų, kuriais remiasi pati „Kubernetes“. „Istio“ taip pat gali savarankiškai dirbti atskirose sistemose ar kitose orkestravimo sistemose, tokiose kaip Mesos ir Nomad.

Kaip pradėti naudotis „Istio“

Jei jau turite patirties su „Kubernetes“, geras būdas išmokti „Istio“ yra imtis „Kubernetes“ klasterio -ne vienas jau gaminamas! - ir įdiekite jame „Istio“ pagal „Helm“ diagramą. Tada galite įdiegti pavyzdinę programą, kuri demonstruoja bendras „Istio“ funkcijas, tokias kaip intelektualusis eismo valdymas ir telemetrija. Tai turėtų suteikti jums šiek tiek patirties su „Istio“ prieš diegiant ją tinklų tinklui jūsų programų grupėje.

„Red Hat“, investavusi į „Istio“ kaip bendrovės „Kubernetes“ valdomo „OpenShift“ projekto dalį, siūlo mokomąsias programas, kurios padės jums pereiti į įprastus „Istio“ diegimo ir valdymo scenarijus.