Ohjelmointi

Mikä on Istio? Kubernetes-palveluverkko selitti

Mikropalveluarkkitehtuurit ratkaisevat joitain ongelmia, mutta esittävät toisia. Sovellusten jakaminen itsenäisiksi palveluiksi yksinkertaistaa kehitystä, päivityksiä ja skaalausta. Samalla se antaa sinulle paljon enemmän liikkuvia osia yhdistettäväksi ja kiinnitettäväksi. Kaikkien verkkopalvelujen - kuormituksen tasapainotus, liikenteen hallinta, todennus ja valtuutus - hallinta voi tulla hämmästyttävän monimutkaiseksi.

Kubernetes-klusterin palveluiden välillä on yhteinen termi tälle verkotetulle tilalle: a huoltoverkko. Istio-Google-projektin tarkoituksena on antaa sinulle tapa hallita klusterin palveluverkkoa, ennen kuin siitä tulee rähinä.

Mikä on palveluverkko?

Minkä tahansa verkotettujen sovellusten ryhmän kohdalla on joukko yleisiä käyttäytymismalleja, jotka pyrkivät nousemaan niiden ympärille. Esimerkiksi kuormituksen tasapainottaminen: On harvoja tapauksia, joissa ryhmä verkkopalveluja ei tarvitse sitä. Samoin mahdollisuus testata A / B-palvelujen eri yhdistelmiä tai määrittää end-to-end-todennus palveluketjujen yli. Näihin käyttäytymistapoihin viitataan yhdessä nimellä ahuoltoverkko.

Palveluverkon hallintaa ei pidä jättää itse palvelujen tehtäväksi. Kukaan heistä ei ole hyvässä asemassa tekemään jotain ylhäältä alas, eikä sen pitäisi todellakaan olla heidän työnsä. Parempi on erillinen järjestelmä, joka sijaitsee palvelujen ja verkon välillä, jonka kanssa he puhuvat. Tämä järjestelmä toimisi kaksi keskeistä toimintoa:

  1. Pidä itse palvelut puuttumasta verkkoliikenteen hallinnan hienovaraisuuteen - kuormituksen tasapainottaminen, reititys, uudelleenyritykset jne.
  2. Tarjoa järjestelmänvalvojille taso abstraktiota, mikä helpottaa korkean tason päätösten tekemistä verkkoliikenteestä klusterissa - käytäntöjen hallinta, mittarit ja lokitiedostot, palvelujen löytäminen, suojattu palvelujen välinen viestintä TLS: n kautta ja niin edelleen.

Istio-palveluverkkokomponentit

Istio toimii palveluverkkona tarjoamalla klusterillesi kaksi perusarkkitehtuuria, a datataso ja a ohjaustaso.

Datataso hoitaa verkkoliikenteen verkkopalvelujen välillä. Verkon välityspalvelin sieppaa ja ohjaa kaiken tämän liikenteen. Istion tapauksessa välityspalvelimen tarjoaa avoimen lähdekoodin projekti nimeltä Envoy. Datatason toinen komponentti, Mixer, kerää telemetrian ja tilastot Envoylta sekä palvelujen välisestä liikenteestä.

Ohjaustaso, Istion ydin, hallinnoi ja suojaa tietotasoa. Se määrittää sekä lähettäjän välityspalvelimet että mikserit, jotka valvovat palveluiden verkkokäytäntöjä, kuten kuka saa puhua kenen kanssa ja milloin. Ohjaustaso tarjoaa myös ohjelmallisen abstraktikerroksen datatasolle ja kaikelle sen käyttäytymiselle.

Kolme muuta Istio-palvelua täydentävät yhdistelmää:

Istio Pilot

Istio Pilot ottaa huomioon ohjaustason tarjoamat liikennekäyttäytymistä koskevat säännöt ja muuntaa ne lähettäjän soveltamiin kokoonpanoihin sen perusteella, miten tällaisia ​​asioita hoidetaan paikallisesti. Pilotti antaa Istion työskennellä eri orkesterijärjestelmien kanssa Kubernetesin lisäksi, mutta käyttäytyy johdonmukaisesti niiden välillä.

Istio Citadel

Citadel hallitsee todennusta ja henkilöllisyyden hallintaa palveluiden välillä.

Istio Galley

Galleria ottaa käyttäjän määrittelemät kokoonpanot Istioon ja muuntaa ne kelvollisiksi kokoonpanoiksi muille ohjaustason komponenteille. Tämä on toinen elementti, jonka avulla Istio voi käyttää erilaisia ​​orkestrointijärjestelmiä läpinäkyvästi.

Istio-palveluverkko-ominaisuudet

Ensimmäinen ja arvokkain hyöty, jonka Istio tarjoaa, on abstraktio - tapa käsitellä palveluverkon monimutkaisuutta käsivarren pituudelta. Voit tehdä muutoksia verkkoon ohjelmallisesti komennolla Istio. Verkkoon liitettyjä palveluita ei tarvitse ohjelmoida sisältä uudelleen, jotta ne noudattavat uusia verkkokäytäntöjä tai kiintiöitä, eikä niiden välisiin verkkotiloihin tarvitse koskea myöskään.

Lisäksi Istion avulla voit suorittaa rikkomattomia tai alustavia muutoksia klusterin verkkoasetuksiin. Jos haluat ottaa käyttöön uuden verkkoasettelun kokonaan tai osittain, tai A / B testaa nykyisen kokoonpanon uudella, Istio antaa sinun tehdä tämä ylhäältä alaspäin. Voit myös perua nämä muutokset, jos ne osoittautuvat epäterveellisiksi.

Kolmas etu on havaittavuus. Istio tarjoaa yksityiskohtaisia ​​tilastoja ja raportteja siitä, mitä konttien ja klusterisolmujen välillä tapahtuu. Jos jokin odottamaton ongelma ilmenee, jos jokin ei noudata käytäntöä tai jos tekemäsi muutokset osoittautuvat haitallisiksi, voit saada siitä tiedon lyhyessä ajassa.

Istio tarjoaa myös tapoja toteuttaa yleisiä malleja, jotka näet palveluverkossa. Yksi esimerkki on virrankatkaisijan malli, tapa estää palvelua pommittamasta pyyntöillä, jos taustapää ilmoittaa ongelmasta eikä pysty täyttämään pyyntöjä ajoissa. Istio tarjoaa virrankatkaisijakuvion osana vakiokirjastoa käytäntöjen toimeenpanosta.

Lopuksi, vaikka Istio työskentelee suorimmalla ja syvimmällä Kubernetesin kanssa, se on suunniteltu alustasta riippumattomaksi. Istio yhdistää samat avoimet standardit, joihin Kubernetes itse luottaa. Istio voi myös toimia itsenäisesti yksittäisissä järjestelmissä tai muissa orkesterijärjestelmissä, kuten Mesos ja Nomad.

Kuinka aloittaa Istio

Jos sinulla on jo kokemusta Kubernetesista, hyvä tapa oppia Istio on ottaa Kubernetes-klusteri -ei yksi on jo tuotannossa! - ja asenna Istio siihen Helm-kaavion avulla. Sitten voit ottaa käyttöön esimerkkisovelluksen, joka näyttää yleiset Istio-ominaisuudet, kuten älykäs liikenteen hallinta ja telemetria. Tämän pitäisi antaa sinulle jonkin verran kokemusta Istiosta, ennen kuin otat sen käyttöön palveluverkkoa varten sovellusklusterissasi.

Red Hat, joka on investoinut Istioon osana yrityksen Kubernetes-pohjaista OpenShift-projektia, tarjoaa oppaita, jotka opastavat sinut läpi yleiset Istion käyttöönotto- ja hallintaskenaariot.