Vi är glada att kunna presentera en förhandsversion
NSM är gratis
Implementeringen av mikrotjänsters metodik är kantad av svårigheter när leveransomfattningen växer, liksom dess komplexitet. Kommunikation mellan tjänster blir mer komplex, felsökningsproblem blir svårare och fler och fler tjänster kräver mer resurser att hantera.
NSM löser dessa problem genom att förse dig med:
- Безопасность, vilket nu är viktigare än någonsin. Ett dataintrång kan kosta ett företag miljontals dollar årligen i förlorade intäkter och anseende. NSM ser till att alla anslutningar krypteras med mTLS, så det finns ingen känslig data som kan stjälas av hackare över nätverket. Åtkomstkontroll låter dig ställa in policyer för hur tjänster kommunicerar med andra tjänster.
- Trafikledning. När du skickar en ny version av en applikation kanske du vill börja med att begränsa inkommande trafik till den i händelse av ett fel. Med NSM:s intelligenta containertrafikhantering kan du sätta en trafikbegränsningspolicy för nya tjänster som kommer att öka trafiken över tid. Andra funktioner, som hastighetsbegränsning och strömbrytare, ger dig full kontroll över trafikflödet för alla dina tjänster.
- Visualisering. Att hantera tusentals tjänster kan vara en mardröm för felsökning och visualisering. NSM hjälper till att hantera denna situation med en inbyggd Grafana-dashboard som visar alla funktioner som finns tillgängliga i NGINX Plus. Och även den implementerade Open Tracing låter dig övervaka transaktioner i detalj.
- Hybridleveranser, om ditt företag, som de flesta andra, inte använder infrastruktur som körs helt på Kubernetes. NSM säkerställer att äldre applikationer inte lämnas obevakade. Med hjälp av den implementerade NGINX Kubernetes Ingress Controller kommer äldre tjänster att kunna kommunicera med mesh-tjänster och vice versa.
NSM säkerställer också applikationssäkerhet i miljöer med noll förtroende genom att på ett transparent sätt tillämpa kryptering och autentisering på containertrafik. Det ger också transaktionssynlighet och analys, vilket hjälper dig att snabbt och exakt starta implementeringar och felsöka problem. Det tillhandahåller också granulär trafikkontroll, vilket gör att DevOps-teamen kan distribuera och optimera delar av applikationer samtidigt som det gör det möjligt för utvecklare att bygga och enkelt ansluta sina distribuerade applikationer.
Hur fungerar NGINX Service Mesh?
NSM består av ett enhetligt dataplan för horisontell (tjänst-till-tjänst) trafik och en inbyggd NGINX Plus Ingress Controller för vertikal trafik, som hanteras av ett enda kontrollplan.
Kontrollplanet är specifikt designat och optimerat för NGINX Plus-dataplanet och definierar trafikkontrollregler fördelade över NGINX Plus-sidovagnar.
I NSM installeras sidovagnsproxies för varje tjänst i nätet. De gränssnitt med följande öppen källkodslösningar:
- Grafana, Prometheus parametervisualisering, inbyggd NSM-panel hjälper dig med ditt arbete;
- Kubernetes Ingress Controllers, för att hantera inkommande och utgående trafik i mesh;
- SPIRE, CA för hantering, distribution och uppdatering av certifikat i nätet;
- NATS, ett skalbart system för att skicka meddelanden, såsom ruttuppdateringar, från kontrollplanet till sidovagnar;
- Open Tracing, distribuerad felsökning (Zipkin och Jaeger stöds);
- Prometheus, samlar in och lagrar egenskaper från NGINX Plus sidvagnar, såsom antalet förfrågningar, anslutningar och SSL-handskakningar.
Funktioner och komponenter
NGINX Plus som ett dataplan täcker sidovagnsproxy (horisontell trafik) och Ingress-kontroller (vertikal), avlyssnar och hanterar containertrafik mellan tjänster.
Funktioner inkluderar:
- Ömsesidig TLS (mTLS) autentisering;
- Lastbalansering;
- Feltolerans;
- Hastighetsgräns;
- Kretsbrytning;
- Blågröna och kanariefågelutbyggnader;
- Åtkomstkontroll.
Lanserar NGINX Service Mesh
För att köra NSM behöver du:
- tillgång till Kubernetes-miljön. NGINX Service Mesh stöds på många Kubernetes-plattformar, inklusive Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere och vanliga Kubernetes-kluster distribuerade på hårdvaruservrar;
- Verktyg
kubectl
, installerad på maskinen från vilken NSM kommer att installeras; - Tillgång till NGINX Service Mesh-versionspaket. Paketet innehåller NSM-bilder som behövs för uppladdning till ett privat register för behållare tillgängliga i Kubernetes-klustret. Paketet innehåller även
nginx-meshctl
, behövs för att distribuera NSM.
För att distribuera NSM med standardinställningar, kör följande kommando. Under distributionen visas meddelanden som indikerar framgångsrik installation av komponenter och slutligen ett meddelande som indikerar att NSM körs i ett separat namnutrymme (du måste först
$ 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.
För fler alternativ, inklusive avancerade inställningar, kör det här kommandot:
$ nginx-meshctl deploy –h
Kontrollera att kontrollplanet fungerar korrekt i namnområdet nginx-mesh, du kan göra det här:
$ 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
Beroende på distributionsinställningarna som ställer in manuella eller automatiska injektionspolicyer, kommer NGINX sidovagnsproxies att läggas till applikationer som standard. För att inaktivera automatisk tillägg, läs
Till exempel om vi distribuerar applikationen sova i namnutrymmet standard, och kontrollera sedan Pod - vi kommer att se två körande behållare, applikationen sova och tillhörande sidovagn:
$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NAME READY STATUS RESTARTS AGE
sleep-674f75ff4d-gxjf2 2/2 Running 0 5h23m
Vi kan också övervaka applikationen sova i NGINX Plus-panelen, kör det här kommandot för att komma åt sidovagnen från din lokala maskin:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886
Sen går vi bara in
Du kan använda individuella Kubernetes-resurser för att konfigurera trafikpolicyer, såsom åtkomstkontroll, hastighetsbegränsning och kretsavbrott, för detta se
Slutsats
NGINX Service Mesh är tillgängligt för gratis nedladdning på
För att prova NGINX Plus Ingress Controller, aktivera
Översättning av Pavel Demkovich, företagets ingenjör
Källa: will.com