Programmēšana

Kas ir Istio? Paskaidrots Kubernetes servisa tīkls

Mikroservisa arhitektūras atrisina dažas problēmas, bet ievieš citas. Lietojumprogrammu sadalīšana neatkarīgos pakalpojumos vienkāršo izstrādi, atjauninājumus un mērogošanu. Tajā pašā laikā tas dod jums daudz vairāk kustīgu daļu savienošanai un nostiprināšanai. Visu tīkla pakalpojumu pārvaldība - slodzes līdzsvarošana, trafika pārvaldība, autentifikācija un autorizācija utt. - var kļūt ārkārtīgi sarežģīta.

Šai tīkla vietnei starp Kubernetes kopas pakalpojumiem ir kopīgs termins: a dienesta siets. Google projekts Istio ir viss, kas jums jādod, kā pārvaldīt klastera pakalpojumu sietu, pirms tas pārvēršas par bramble-snarl.

Kas ir servisa siets?

Izmantojot jebkuru tīkla lietojumprogrammu grupu, pastāv virkne izplatītas uzvedības, kas mēdz parādīties ap tām. Piemēram, slodzes līdzsvarošana: ir maz gadījumu, kad tīkla pakalpojumu grupai tas nav nepieciešams. Tāpat spēja A / B pārbaudīt dažādas pakalpojumu kombinācijas vai iestatīt pilnīgu autentifikāciju pakalpojumu ķēdēs. Šo uzvedību kopā sauc par adienesta siets.

Pakalpojuma tīkla pārvaldību nevajadzētu atstāt pašu dienestu ziņā. Neviens no viņiem nav labā stāvoklī, lai izdarītu kaut ko no augšas uz leju, un tik un tā tam nevajadzētu būt viņu uzdevumam. Labāk, ja ir atsevišķa sistēma, kas atrodas starp pakalpojumiem un tīklu, ar kuru viņi runā. Šī sistēma nodrošinātu divas galvenās funkcijas:

  1. Neļaujiet pašiem dienestiem saskarties ar tīkla trafika pārvaldību - slodzes līdzsvarošanu, maršrutēšanu, atkārtotiem mēģinājumiem utt.
  2. Nodrošiniet administratoriem abstrakcijas slāni, kas atvieglo augsta līmeņa lēmumu pieņemšanu par tīkla trafiku klasterī - politikas vadīklas, metriku un reģistrēšanu, pakalpojumu atklāšanu, drošu starpdienestu saziņu, izmantojot TLS utt.

Istio servisa tīkla komponenti

Istio darbojas kā pakalpojumu siets, nodrošinot divus galvenos jūsu kopas arhitektūras elementus, a datu plakne un a vadības plakne.

Datu plakne apstrādā tīkla trafiku starp tīklā esošajiem pakalpojumiem. Visu šo datplūsmu pārtver un novirza tīkla starpnieksistēma. Istio gadījumā starpniekserveri nodrošina atvērtā koda projekts ar nosaukumu Envoy. Otrs datu plaknes komponents Mixer apkopo sūtņa telemetriju un statistiku, kā arī plūsmu starp pakalpojumiem pakalpojumiem.

Vadības plakne, Istio kodols, pārvalda un nostiprina datu plakni. Tas konfigurē gan sūtņa pilnvarniekus, gan mikserus, kas izpilda tīkla tīkla politikas pakalpojumiem, piemēram, kurš ar kuru un kad runā. Vadības plakne nodrošina arī programmatūras abstrakcijas slāni datu plaknei un visām tās darbībām.

Trīs citi Istio pakalpojumi papildina šo kombināciju:

Istio pilots

Istio Pilot ņem vērā satiksmes plaknes noteiktos satiksmes uzvedības noteikumus un pārveido tos par sūtņa piemērotajām konfigurācijām, pamatojoties uz to, kā šādas lietas tiek pārvaldītas lokāli. Izmēģinājums ļaus Istio strādāt ar dažādām orķestrēšanas sistēmām, izņemot Kubernetes, bet izturēties konsekventi starp tām.

Istio citadele

Citadel kontrolē autentifikāciju un identitātes pārvaldību starp pakalpojumiem.

Istio Galley

Galerija ņem lietotāja norādītās Istio konfigurācijas un pārveido tās par derīgām citu vadības plaknes sastāvdaļu konfigurācijām. Tas ir vēl viens elements, kas ļauj Istio pārredzami izmantot dažādas orķestrēšanas sistēmas.

Istio servisa tīkla iespējas

Pirmais un vērtīgākais ieguvums, ko Istio sniedz, ir abstrakcija - veids, kā tikt galā ar pakalpojumu tīkla sarežģītību rokas stiepiena attālumā. Programmatūrā var veikt jebkādas izmaiņas, komandējot Istio. Pakalpojumi, kas pievienoti tīklam, nav jāpārprogrammē no iekšpuses, lai ievērotu jaunās tīkla politikas vai kvotas, un arī tīkla telpas starp tām nav tieši jāpieskaras.

Turklāt Istio ļauj jums veikt nesagraujošas vai provizoriskas izmaiņas klastera tīkla konfigurācijā. Ja vēlaties pilnībā vai daļēji ieviest jaunu tīkla izkārtojumu vai A / B pārbaudīt pašreizējo konfigurāciju pret jaunu, Istio ļauj to izdarīt no augšas uz leju. Varat arī atsaukt šīs izmaiņas, ja tās izrādās neveselīgas.

Trešā priekšrocība ir novērojamība. Istio sniedz detalizētu statistiku un pārskatus par to, kas notiek starp konteineriem un kopu mezgliem. Ja rodas kāda neparedzēta problēma, ja kaut kas neatbilst politikai vai ja veiktās izmaiņas izrādās neproduktīvas, par to varēsiet uzzināt īsā secībā.

Istio piedāvā arī veidus, kā izpildīt kopīgus modeļus, kurus redzat pakalpojumu tīklā. Viens piemērs ir automātiskā slēdža modelis - veids, kā novērst pakalpojuma bombardēšanu ar pieprasījumiem, ja aizmugurējā daļa ziņo par problēmām un nevar izpildīt pieprasījumus savlaicīgi. Istio nodrošina automātisko slēdžu modeli kā daļu no savas politikas izpildes standarta bibliotēkas.

Visbeidzot, lai arī Istio vistiešāk un visdziļāk strādā ar Kubernetes, tas ir paredzēts neatkarīgi no platformas. Istio pieslēdz tos pašus atvērtos standartus, uz kuriem paļaujas pati Kubernetes. Istio var darboties arī atsevišķi kā atsevišķas sistēmas vai citas orķestrēšanas sistēmas, piemēram, Mesos un Nomad.

Kā sākt lietot Istio

Ja jums jau ir pieredze ar Kubernetes, labs veids, kā apgūt Istio, ir uzņemt Kubernetes kopu - viens jau tiek ražots! - un instalējiet tajā Istio, izmantojot Helm diagrammu. Tad jūs varat izvietot lietojumprogrammas paraugu, kas demonstrē kopīgas Istio funkcijas, piemēram, inteliģentu satiksmes pārvaldību un telemetriju. Tam vajadzētu sniegt zināmu pieredzi ar Istio, pirms to ievietojat lietojumprogrammu kopas tīkla tīkla pienākumam.

Red Hat, kas ir investējis Istio kā daļu no uzņēmuma Kubernetes darbināmā OpenShift projekta, piedāvā apmācības, kas palīdzēs jums pārzināt kopīgos Istio izvietošanas un pārvaldības scenārijus.

$config[zx-auto] not found$config[zx-overlay] not found