
Jsme rádi, že vám můžeme představit předběžnou verzi (NSM), lehkou service mesh, která využívá datovou rovinu založenou na NGINX Plus pro správu provozu kontejnerů v prostředích Kubernetes.
NSM je dostupné zdarma . Doufáme, že ho vyzkoušíte pro vývojová a testovací prostředí — a čekáme na vaše názory .
Implementace metodologie mikroservisů je spojena s obtížemi při škálování dodávek a jejich ztížení. Komunikace mezi službami se komplikuje, problémy s laděním se stávají obtížnějšími, stále více služeb vyžaduje více zdrojů na správu.
NSM tyto problémy řeší tím, že vám poskytuje především:
- Bezpečnost, což je nyní důležitější než kdy jindy. Únik dat může firmu stát miliony dolarů ročně ztrátou příjmů a reputace. NSM zajišťuje šifrování všech spojení pomocí mTLS — takže citlivá data, která by mohla být hackery ukradena přes síť, zkrátka nejsou. Řízení přístupu vám umožňuje nastavit politiky, jak budou služby komunikovat s ostatními službami.
- Správa provozu. Při dodání nové verze aplikace možná budete chtít zpočátku omezit příchozí provoz pro případ chyby. S inteligentním řízením provozu kontejnerů od NSM můžete nastavit politiku omezování provozu pro nové služby, která bude v průběhu času zvyšovat provoz. Další funkce, jako například omezení rychlosti a circuit breakers, vám dávají plný přístup k řízení průchodu provozu všem vašim službám.
- Vizualizace. Správa tisíců služeb může být noční můrou pro ladění a vizualizaci. NSM pomáhá zvládat takovou situaci prostřednictvím integrovaného dashboardu Grafana, který zobrazuje všechny metriky dostupné v NGINX Plus. A navíc integrované Open Tracing umožňuje detailní sledování transakcí.
- Hybridní dodávky, pokud vaše firma, stejně jako většina ostatních, nepoužívá infrastrukturu plně spuštěnou na Kubernetes. NSM zajišťuje, že staré aplikace nezůstanou bez dozoru. Pomocí integrovaného NGINX Kubernetes Ingress Controller budou staré služby schopny komunikovat s mesh službami, a naopak.
NSM také zajišťuje bezpečnost aplikací v prostředích s nulovou důvěrou, transparentně používá šifrování a autentizaci provozu kontejnerů. Dále poskytuje možnosti sledování a analýzy transakcí, čímž pomáhá rychle a přesně spouštět nasazení a řešit problémy. Navíc poskytuje podrobnou kontrolu provozu, což umožňuje týmům DevOps nasazovat a optimalizovat části aplikací, zatímco vývojářům dává možnost vytvářet a snadno propojit své distribuované aplikace.
Jak funguje NGINX Service Mesh?
NSM se skládá z integrované datové vrstvy pro horizontální (služba ke službě) provoz a implementovaného NGINX Plus Ingress Controller pro vertikální, řízené jedním řídicím panelem.
Řídicí panel je speciálně navržen a optimalizován pro datovou vrstvu NGINX Plus, určuje pravidla pro správu provozu, rozložené mezi NGINX Plus sidecary.
V NSM jsou proxy sidecary nastavovány pro každou službu v mesh. Tyto interagují s následujícími řešeními s otevřeným zdrojovým kódem:
- Grafana, vizualizace parametrů Prometheus, integrovaný panel NSM vám pomáhá při práci;
- Kubernetes Ingress Controllers, pro správu příchozího a odchozího provozu v mesh;
- SPIRE, CA pro správu, distribuci a aktualizaci certifikátů v mesh;
- NATS, škálovatelný systém zasílání zpráv, například aktualizace tras, z řídícího panelu k sidecarům;
- Open Tracing, distribuované ladění (podporují Zipkin a Jaeger);
- Prometheus, shromažďování a ukládání charakteristik z NGINX Plus sidecarů, například počet požadavků, připojení a SSL handshakes.
Funkce a komponenty
NGINX Plus jako datová vrstva pokrývá sidecar proxy (horizontální provoz) a Ingress controller (vertikální), zachycuje a spravuje provoz kontejnerů mezi službami.
Funkce zahrnují:
- Vzájemnou autentizaci TLS (mTLS);
- Vyvažování zátěže;
- Odolnost proti chybám;
- Omezení rychlosti;
- Circuit breaking;
- Blue-green a kanárková nasazení;
- Kontrolu přístupu.
Zahájení NGINX Service Mesh
Pro spuštění NSM je potřeba:
- přístup k prostředí Kubernetes. NGINX Service Mesh je podporován na mnoha platformách Kubernetes, včetně Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere a běžných klastrů Kubernetes nasazených na "železných" serverech;
- Náklad
kubectl, nainstalovaný na stroji, odkud bude NSM instalováno; - Přístup k balíčkům vydání NGINX Service Mesh. Balíček obsahuje obrazy NSM potřebné pro nahrání do uzavřené registry pro kontejnery, dostupné v кластре Kubernetes. Balíček také obsahuje
nginx-meshctl, potřebné pro nasazení NSM.
Chcete-li nasadit NSM s výchozími nastaveními, spusťte následující příkaz. Během nasazení se zobrazí zprávy o úspěšné instalaci komponent a nakonec zpráva o tom, že NSM běží v odděleném jmenném prostoru (nejprve je třeba ho a umístit do registry, pozn. překladatele):
$ DOCKER_REGISTRY=your-Docker-registry ; MESH_VER=0.6.0 ;
./nginx-meshctl deploy
--nginx-mesh-api-image "${DOCKER_REGISTRY}/nginx-mesh-api:${MESH_VER}"
--nginx-mesh-sidecar-image "${DOCKER_REGISTRY}/nginx-mesh-sidecar:${MESH_VER}"
--nginx-mesh-init-image "${DOCKER_REGISTRY}/nginx-mesh-init:${MESH_VER}"
--nginx-mesh-metrics-image "${DOCKER_REGISTRY}/nginx-mesh-metrics:${MESH_VER}"
Vytvořen jmenný prostor "nginx-mesh".
Vytvořen SpiffeID CRD.
Čekání na spuštění podů Spire... hotovo.
Nasazen Spire.
Nasazen server NATS.
Vytvořeny CRD pro pravidla provozu.
Nasazen Mesh API.
Nasazen server API pro metriky.
Nasazen server Prometheus nginx-mesh/prometheus-server.
Nasazen Grafana nginx-mesh/grafana.
Nasazen server sledování nginx-mesh/zipkin.
Všechny prostředky byly vytvořeny. Testování připojení k serveru API Service Mesh...
Úspěšně připojeno k API NGINX Service Mesh.
NGINX Service Mesh běží.Pro další parametry, včetně pokročilých nastavení, spusťte tento příkaz:
$ nginx-meshctl deploy –hZkontrolujte, zda control plane funguje správně v jmenném prostoru nginx-mesh, můžete takto:
$ kubectl get pods –n nginx-mesh
NAME READY STATUS RESTARTS AGE
grafana-6cc6958cd9-dccj6 1/1 Běží 0 2d19h
mesh-api-6b95576c46-8npkb 1/1 Běží 0 2d19h
nats-server-6d5c57f894-225qn 1/1 Běží 0 2d19h
prometheus-server-65c95b788b-zkt95 1/1 Běží 0 2d19h
smi-metrics-5986dfb8d5-q6gfj 1/1 Běží 0 2d19h
spire-agent-5cf87 1/1 Běží 0 2d19h
spire-agent-rr2tt 1/1 Běží 0 2d19h
spire-agent-vwjbv 1/1 Běží 0 2d19h
spire-server-0 2/2 Běží 0 2d19h
zipkin-6f7cbf5467-ns6wc 1/1 Běží 0 2d19hV závislosti na parametrech nasazení, které nastavují politiky manuálního nebo automatického injektování, budou proxy NGINX sidecar přidávány k aplikacím jako výchozí. Pro deaktivaci automatického přidávání čtěte
Například pokud nasadíme aplikaci sleep v jmenném prostoru default, poté zkontrolujeme Pod – uvidíme dva spuštěné kontejnery, aplikaci sleep a s ní spojený sidecar:
$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NAME READY STATUS RESTARTS AGE
sleep-674f75ff4d-gxjf2 2/2 Běží 0 5h23mMůžeme také sledovat aplikaci sleep v paneli NGINX Plus spusťte tento příkaz pro přístup k sidecar z vašeho lokálního počítače:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886Pak jednoduše navštivte v prohlížeči. Můžete se také připojit k Prometheovi, abyste sledovali aplikaci sleep.
Můžete použít samostatné prostředky Kubernetes pro nastavení politiky provozu, například řízení přístupu, omezení rychlosti a circuit breaking, pro to se podívejte na
Závěr
NGINX Service Mesh je k dispozici ke stažení zdarma na . Vyzkoušejte jej v práci ve vašich dev a testovacích prostředích a .
Chcete-li vyzkoušet NGINX Plus Ingress Controller, aktivujte na 30 dní, nebo pro diskusi o vašich možnostech využití.
Překlad od Pavla Demkovicha, inženýra společnosti . Systémová administrace za 15 000 Kč měsíčně. A jako samostatná jednotka — vzdělávací centrum , praxe a nic jiného než praxe.
Zdroj: habr.com
