Programování

Co je Istio? Vysvětlení sítě služeb Kubernetes

Architektury mikroslužeb řeší některé problémy, ale zavádějí další. Rozdělení aplikací na nezávislé služby zjednodušuje vývoj, aktualizace a škálování. Současně vám poskytuje mnohem více pohyblivých částí pro připojení a zabezpečení. Správa všech síťových služeb - vyvažování zátěže, správa provozu, ověřování a autorizace atd. - se může stát neuvěřitelně složitým.

Pro tento síťový prostor existuje společný termín mezi službami ve vašem klastru Kubernetes: a servisní síť. Projekt Google, Istio, je o tom, že vám dá způsob, jak spravovat síť služeb vašeho clusteru, než se promění v ostružinu.

Co je síť služeb?

S jakoukoli skupinou síťových aplikací existuje spousta běžného chování, které se kolem nich objevuje. Vyrovnávání zatížení, například: Existuje několik případů, kdy to skupina síťových služeb nepotřebuje. Podobně schopnost testovat různé kombinace služeb A / B nebo nastavit end-to-end autentizaci napříč řetězci služeb. Tato chování se souhrnně označují jako aservisní síť.

Správa sítě služeb by neměla být ponechána na samotných službách. Nikdo z nich není v dobré pozici, aby mohl dělat něco takového shora dolů, a stejně by to neměla být jejich práce. Lepší je mít samostatný systém, který se nachází mezi službami a sítí, se kterou hovoří. Tento systém by dodával dvě klíčové funkce:

  1. Zabraňte samotným službám, aby se musely vypořádat s hloupostí správy síťového provozu - vyvažování zátěže, směrování, opakování atd.
  2. Poskytněte administrátorům vrstvu abstrakce, která usnadňuje přijímání rozhodnutí na vysoké úrovni o síťovém provozu v klastru - ovládací prvky zásad, metriky a protokolování, zjišťování služeb, zabezpečená komunikace mezi službami prostřednictvím TLS atd.

Součásti sítě Istio service

Istio funguje jako síť služeb poskytnutím dvou základních částí architektury pro váš cluster, a datová rovina a kontrolní letadlo.

Datová rovina zpracovává síťový provoz mezi službami v síti. Veškerý tento provoz je zachycen a přesměrován síťovým systémem proxy. V případě Istia je proxy poskytován projektem s otevřeným zdrojovým kódem s názvem Envoy. Druhá součást v datové rovině, Mixer, shromažďuje telemetrii a statistiky z Envoy a tok provozu mezi službami.

Řídicí rovina, jádro Istio, spravuje a zajišťuje datovou rovinu. Konfiguruje jak zástupce Envoy, tak mixéry, které vynucují zásady sítě pro služby, například kdo s kým a kdy bude mluvit. Řídicí rovina také poskytuje programovou abstrakční vrstvu pro datovou rovinu a všechna její chování.

Mix doplňují tři další služby Istio:

Istio Pilot

Istio Pilot převezme pravidla pro dopravní chování poskytované řídicí rovinou a převede je do konfigurací aplikovaných vyslancem na základě toho, jak jsou takové věci spravovány místně. Pilot umožní Istio pracovat s různými orchestračními systémy kromě Kubernetes, ale chovat se mezi nimi konzistentně.

Citadela Istio

Citadel řídí ověřování a správu identit mezi službami.

Istio Galley

Galerie převezme uživatelem zadané konfigurace pro Istio a převede je do platných konfigurací pro ostatní součásti řídicí roviny. Toto je další prvek, který umožňuje Istio transparentně používat různé orchestrační systémy.

Funkce sítě Istio služeb

První a nejcennější výhodou, kterou Istio poskytuje, je abstrakce - způsob řešení složitosti sítě služeb na délku paže. Pomocí příkazu Istio můžete provádět jakékoli změny v síti programově. Služby připojené k síti není nutné přeprogramovat zevnitř, aby bylo možné dodržovat nové zásady nebo kvóty sítě, a síťových prostorů mezi nimi se také nemusíte přímo dotýkat.

Kromě toho vám Istio umožňuje provádět nedestruktivní nebo předběžné změny v konfiguraci sítě clusteru. Pokud chcete zavést nové síťové rozložení, zcela nebo zčásti, nebo A / B otestovat aktuální konfiguraci proti novému, Istio vám to umožní shora dolů. Tyto změny můžete také vrátit zpět, pokud se ukáží jako nezdravé.

Třetí výhodou je pozorovatelnost. Istio poskytuje podrobné statistiky a zprávy o tom, co se děje mezi kontejnery a uzly clusteru. Pokud dojde k nepředvídatelnému problému, pokud něco nedodržuje zásady, nebo pokud se změny, které jste provedli, ukáží jako kontraproduktivní, budete o tom schopni zjistit v krátké době.

Istio také poskytuje způsoby, jak splnit běžné vzory, které vidíte v síti služeb. Jedním příkladem je vzor jističe, způsob, jak zabránit bombardování služby požadavky, pokud back-end hlásí potíže a nemůže splnit požadavky včas. Istio poskytuje jistič jako součást své standardní knihovny vynucování zásad.

A konečně, zatímco Istio pracuje nejpříměji a nejhlubší s Kubernetes, je navržen tak, aby byl nezávislý na platformě. Istio se připojuje ke stejným otevřeným standardům, na které spoléhá sám Kubernetes. Istio může také pracovat samostatně na jednotlivých systémech nebo na jiných orchestračních systémech, jako jsou Mesos a Nomad.

Jak začít s Istio

Pokud již máte zkušenosti s Kubernetes, dobrým způsobem, jak se naučit Istio, je vzít si Kubernetes cluster—ne jeden již ve výrobě! - a nainstalujte do něj Istio pomocí Helmova grafu. Pak můžete nasadit ukázkovou aplikaci, která ukazuje běžné funkce Istio, jako je inteligentní správa provozu a telemetrie. To by vám mělo poskytnout nějaké základní zkušenosti s Istio před jeho nasazením pro povinnost služby sítě ve vašem clusteru aplikací.

Red Hat, který do společnosti Istio investoval jako součást projektu OpenShift založeného na Kubernetes, nabízí výukové programy, které vás provedou běžnými scénáři nasazení a správy Istio.