Programovanie

Čo je Istio? Vysvetlenie služby Kubernetes

Mikroslužobné architektúry riešia niektoré problémy, iné však predstavujú. Rozdelenie aplikácií na nezávislé služby zjednodušuje vývoj, aktualizácie a zmenu mierky. Zároveň vám poskytuje oveľa viac pohyblivých častí na pripojenie a zabezpečenie. Správa všetkých sieťových služieb - vyvažovanie záťaže, správa prenosu, autentifikácia a autorizácia atď. - sa môže stať ohromne zložitým.

Pre tento sieťový priestor existuje spoločný pojem medzi službami vo vašom klastri Kubernetes: a služobné pletivo. Projekt spoločnosti Google, Istio, sa zameriava na to, aby vám poskytol spôsob, ako spravovať sieť služieb vášho klastra skôr, ako sa z neho stane vrčanie.

Čo je sieť služieb?

S ľubovoľnou skupinou sieťovo prepojených aplikácií existuje množstvo bežných správ, ktoré sa okolo nich objavujú. Napríklad vyrovnávanie zaťaženia: Existuje niekoľko prípadov, keď to skupina sieťových služieb nepotrebuje. Rovnako tak schopnosť testovať A / B rôzne kombinácie služieb alebo nastaviť overovanie typu end-to-end naprieč reťazcami služieb. Tieto správanie sa súhrnne označujú ako aslužobné pletivo.

Správa siete služieb by sa nemala ponechať na samotné služby. Nikto z nich nie je v dobrej pozícii na to, aby robil niečo zhora nadol, a rovnako by to naozaj nemala byť ich práca. Je lepšie mať samostatný systém, ktorý by sa nachádzal medzi službami a sieťou, s ktorou sa rozprávajú. Tento systém by dodával dve kľúčové funkcie:

  1. Zabráňte samotným službám, aby sa museli zaoberať náročnou správou sieťového prenosu - vyvažovanie záťaže, smerovanie, pokusy atď.
  2. Poskytnite administrátorom vrstvu abstrakcie, ktorá uľahčuje prijímanie rozhodnutí na vysokej úrovni o sieťovom prenose v klastri - kontroly politík, metriky a protokolovanie, zisťovanie služieb, zabezpečená komunikácia medzi službami cez TLS atď.

Sieťové komponenty siete Istio

Istio funguje ako sieť služieb poskytovaním dvoch základných častí architektúry pre váš klaster, a dátová rovina a a riadiace lietadlo.

Dátová rovina spracováva sieťový prenos medzi službami v sieti. Celá táto prevádzka je zachytená a presmerovaná sieťovým serverom proxy. V prípade spoločnosti Istio poskytuje server proxy projekt s otvoreným zdrojom s názvom Envoy. Druhá zložka v dátovej rovine, Mixer, zhromažďuje telemetriu a štatistiku z Envoy a tok prenosu medzi službami.

Kontrolná rovina, jadro Istio, spravuje a zabezpečuje dátovú rovinu. Konfiguruje proxy serverov Envoy aj mixéry, ktoré vynucujú sieťové politiky pre služby, napríklad kto s kým a kedy bude hovoriť. Riadiaca rovina tiež poskytuje programovú abstrakčnú vrstvu pre dátovú rovinu a všetky jej chovania.

Mix doplňujú tri ďalšie služby Istio:

Istio Pilot

Istio Pilot prevezme pravidlá dopravného správania poskytované riadiacou rovinou a prevedie ich do konfigurácií aplikovaných vyslancom na základe toho, ako sa tieto veci spravujú lokálne. Pilot umožní spoločnosti Istio pracovať s rôznymi orchestračnými systémami okrem Kubernetes, ale bude sa medzi nimi správať konzistentne.

Citadela Istio

Citadela riadi autentifikáciu a správu identít medzi službami.

Istio Galley

Galéria preberá konfigurácie zadané používateľom pre Istio a prevádza ich do platných konfigurácií pre ďalšie komponenty riadiacej roviny. Toto je ďalší prvok, ktorý umožňuje spoločnosti Istio transparentne používať rôzne orchestračné systémy.

Možnosti siete Istio služieb

Prvou a najcennejšou výhodou, ktorú Istio poskytuje, je abstrakcia - spôsob riešenia zložitosti servisnej siete na dosah ruky. V sieti môžete programovo vykonávať akékoľvek zmeny tak, že rozkážete príkazu Istio. Služby spojené so sieťou nie je potrebné preprogramovať zvnútra, aby zodpovedali novým sieťovým pravidlám alebo kvótam, a sieťových priestorov medzi nimi sa tiež netreba priamo dotýkať.

Istio vám navyše umožňuje vykonávať nedeštruktívne alebo predbežné zmeny v konfigurácii siete klastra. Ak chcete zaviesť nové sieťové rozloženie, celé alebo jeho časti, alebo A / B otestovať aktuálnu konfiguráciu oproti novej, Istio vám to umožní zhora nadol. Tieto zmeny môžete tiež vrátiť späť, ak sa ukážu ako nezdravé.

Treťou výhodou je pozorovateľnosť. Istio poskytuje podrobné štatistiky a správy o tom, čo sa deje medzi kontajnermi a uzlami klastra. Ak dôjde k nepredvídateľnému problému, ak niečo nie je v súlade s pravidlami, alebo ak sa zmeny, ktoré ste vykonali, ukážu ako kontraproduktívne, budete o tom vedieť v krátkom čase.

Istio tiež poskytuje spôsoby, ako splniť bežné vzory, ktoré vidíte v sieti služieb. Jedným z príkladov je schéma prerušovača, spôsob, ako zabrániť bombardovaniu služby požiadavkami, ak back-end hlási problémy a nedokáže tieto požiadavky včas splniť. Istio poskytuje vzor ističa ako súčasť svojej štandardnej knižnice vynucovania politiky.

Nakoniec, zatiaľ čo Istio spolupracuje s Kubernetes najpriamejšie a najhlbšie, je navrhnutý tak, aby bol nezávislý na platforme. Istio sa pripája k rovnakým otvoreným štandardom, na ktoré sa spolieha sám Kubernetes. Istio môže tiež pracovať samostatne na jednotlivých systémoch alebo na iných orchestračných systémoch, ako sú Mesos a Nomad.

Ako začať s Istiom

Ak už máte skúsenosti s Kubernetes, dobrým spôsobom, ako sa naučiť Istio, je absolvovať Kubernetes cluster—nie jeden už je vo výrobe! - a nainštalujte na ňom Istio pomocou Helmovej tabuľky. Potom môžete nasadiť ukážkovú aplikáciu, ktorá demonštruje bežné funkcie Istio, ako je inteligentná správa prenosu a telemetria. To by vám malo poskytnúť niekoľko základných skúseností so serverom Istio pred jeho nasadením pre službu mesh vo vašom aplikačnom klastri.

Spoločnosť Red Hat, ktorá investovala do spoločnosti Istio v rámci projektu OpenShift spoločnosti Kubernetes, ponúka návody, ktoré vás prevedú bežnými scenármi nasadenia a správy Istio.

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