S potěšením vám představujeme náhledovou verzi
NSM je zdarma
Implementace metodologie mikroslužeb je plná obtíží, protože rozsah poskytování roste a také jeho složitost. Komunikace mezi službami se stává složitější, problémy s laděním se stávají obtížnějšími a stále více služeb vyžaduje více zdrojů pro správu.
NSM řeší tyto problémy tím, že vám poskytuje:
- zabezpečení, která je nyní důležitější než kdy jindy. Narušení dat může společnost stát miliony dolarů ročně ve ztrátě příjmů a reputace. NSM zajišťuje, že všechna připojení jsou šifrována pomocí mTLS, takže neexistují žádná citlivá data, která by hackeři mohli ukrást přes síť. Řízení přístupu vám umožňuje nastavit zásady pro komunikaci služeb s jinými službami.
- řízení provozu. Když dodáváte novou verzi aplikace, možná budete chtít začít tím, že na ni omezíte příchozí provoz v případě chyby. S inteligentní správou kontejnerového provozu NSM můžete nastavit politiku omezení provozu pro nové služby, které časem zvýší provoz. Další funkce, jako je omezení rychlosti a jističe, vám poskytují plnou kontrolu nad provozem všech vašich služeb.
- Vizualizace. Správa tisíců služeb může být noční můrou ladění a vizualizace. NSM pomáhá tuto situaci řešit pomocí vestavěného řídicího panelu Grafana, který zobrazuje všechny funkce dostupné v NGINX Plus. A také implementovaný Open Tracing umožňuje detailně sledovat transakce.
- Hybridní dodávky, pokud vaše společnost, stejně jako většina ostatních, nepoužívá infrastrukturu běžící výhradně na Kubernetes. NSM zajišťuje, že starší aplikace nezůstanou bez dozoru. S pomocí implementovaného NGINX Kubernetes Ingress Controller budou moci starší služby komunikovat s mesh službami a naopak.
NSM také zajišťuje zabezpečení aplikací v prostředích s nulovou důvěrou transparentním používáním šifrování a ověřování na provoz kontejnerů. Poskytuje také viditelnost a analýzu transakcí, což vám pomáhá rychle a přesně spouštět nasazení a odstraňovat problémy. Poskytuje také granulární řízení provozu, což umožňuje týmům DevOps nasazovat a optimalizovat části aplikací a zároveň umožňuje vývojářům vytvářet a snadno propojovat své distribuované aplikace.
Jak funguje síť služeb NGINX?
NSM se skládá z jednotné datové roviny pro horizontální (service-to-service) provoz a vestavěného NGINX Plus Ingress Controller pro vertikální provoz, spravovaného jedinou řídicí rovinou.
Řídicí rovina je speciálně navržena a optimalizována pro datovou rovinu NGINX Plus a definuje pravidla řízení provozu distribuovaná napříč postranními vozíky NGINX Plus.
V NSM jsou pro každou službu v síti instalovány proxy postranních vozíků. Jsou propojeny s následujícími open source řešeními:
- Grafana, vizualizace parametrů Prometheus, vestavěný NSM panel vám pomůže s vaší prací;
- Kubernetes Ingress Controllers pro správu příchozího a odchozího provozu v síti;
- SPIRE, CA pro správu, distribuci a aktualizaci certifikátů v síti;
- NATS, škálovatelný systém pro odesílání zpráv, jako jsou aktualizace trasy, z řídicího letadla do postranních vozíků;
- Open Tracing, distribuované ladění (podpora Zipkin a Jaeger);
- Společnost Prometheus shromažďuje a ukládá charakteristiky vedlejších vozíků NGINX Plus, jako je počet požadavků, připojení a handshake SSL.
Funkce a komponenty
NGINX Plus jako datová rovina pokrývá proxy postranního vozíku (horizontální provoz) a Ingress controller (vertikální), zachycuje a řídí kontejnerový provoz mezi službami.
Mezi vlastnosti patří:
- Vzájemné ověřování TLS (mTLS);
- Vyvažování zátěže;
- Odolnost proti chybám;
- Omezení rychlosti;
- Přerušení obvodu;
- Modrozelené a kanárkové nasazení;
- Řízení přístupu.
Spuštění NGINX Service Mesh
Ke spuštění NSM potřebujete:
- přístup do prostředí Kubernetes. NGINX Service Mesh je podporována na mnoha platformách Kubernetes, včetně Amazon Elastic Container Service pro Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere a běžných clusterů Kubernetes nasazených na hardwarových serverech;
- Nástroj
kubectl
, nainstalovaný na počítači, ze kterého bude NSM instalován; - Přístup k balíčkům vydání NGINX Service Mesh. Balíček obsahuje obrazy NSM potřebné pro nahrání do soukromého registru pro kontejnery dostupné v clusteru Kubernetes. Balení také obsahuje
nginx-meshctl
, potřebné k nasazení NSM.
Chcete-li nasadit NSM s výchozím nastavením, spusťte následující příkaz. Během nasazení se zobrazí zprávy indikující, že komponenty byly úspěšně nainstalovány, a nakonec zpráva indikující, že NSM běží v samostatném jmenném prostoru (nejdříve jej potřebujete).
$ 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}"
Created namespace "nginx-mesh".
Created SpiffeID CRD.
Waiting for Spire pods to be running...done.
Deployed Spire.
Deployed NATS server.
Created traffic policy CRDs.
Deployed Mesh API.
Deployed Metrics API Server.
Deployed Prometheus Server nginx-mesh/prometheus-server.
Deployed Grafana nginx-mesh/grafana.
Deployed tracing server nginx-mesh/zipkin.
All resources created. Testing the connection to the Service Mesh API Server...
Connected to the NGINX Service Mesh API successfully.
NGINX Service Mesh is running.
Chcete-li získat další možnosti, včetně pokročilých nastavení, spusťte tento příkaz:
$ nginx-meshctl deploy –h
Zkontrolujte, zda řídicí rovina v oboru názvů funguje správně nginx-mesh, můžeš to udělat:
$ kubectl get pods –n nginx-mesh
NAME READY STATUS RESTARTS AGE
grafana-6cc6958cd9-dccj6 1/1 Running 0 2d19h
mesh-api-6b95576c46-8npkb 1/1 Running 0 2d19h
nats-server-6d5c57f894-225qn 1/1 Running 0 2d19h
prometheus-server-65c95b788b-zkt95 1/1 Running 0 2d19h
smi-metrics-5986dfb8d5-q6gfj 1/1 Running 0 2d19h
spire-agent-5cf87 1/1 Running 0 2d19h
spire-agent-rr2tt 1/1 Running 0 2d19h
spire-agent-vwjbv 1/1 Running 0 2d19h
spire-server-0 2/2 Running 0 2d19h
zipkin-6f7cbf5467-ns6wc 1/1 Running 0 2d19h
V závislosti na nastavení nasazení, která nastavují zásady ručního nebo automatického vkládání, budou do aplikací ve výchozím nastavení přidány proxy postranních vozíků NGINX. Chcete-li zakázat automatické přidávání, přečtěte si
Například pokud aplikaci nasadíme spát ve jmenném prostoru standardní, a pak zaškrtněte Pod - uvidíme dva běžící kontejnery, aplikaci spát a související postranní vozík:
$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NAME READY STATUS RESTARTS AGE
sleep-674f75ff4d-gxjf2 2/2 Running 0 5h23m
Můžeme také sledovat aplikaci spát na panelu NGINX Plus spuštěním tohoto příkazu získáte přístup k postrannímu vozíku z místního počítače:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886
Pak jen jdeme dovnitř
Jednotlivé zdroje Kubernetes můžete použít ke konfiguraci zásad provozu, jako je řízení přístupu, omezení rychlosti a přerušení obvodu, viz
Závěr
NGINX Service Mesh je k dispozici ke stažení zdarma na adrese
Chcete-li vyzkoušet NGINX Plus Ingress Controller, aktivujte
Překlad Pavel Demkovich, podnikový inženýr
Zdroj: www.habr.com