Beschikbaar NGINX Service Mesh

Beschikbaar NGINX Service Mesh

We zijn blij om de bètaversie voor te stellen NGINX Service Mesh (NSM), een lichtgewicht service mesh die een data plane op basis van NGINX Plus gebruikt voor het beheren van containerverkeer in Kubernetes-omgevingen.

NSM is gratis beschikbaar downloaded here. We hopen dat u het gaat gebruiken voor dev- en testomgevingen — en we kijken uit naar uw feedback op GitHub.

Het implementeren van microservices-methodologieën brengt uitdagingen met zich mee naarmate de leveringen groeien en complexer worden. De communicatie tussen services wordt ingewikkelder, debuggingproblemen worden moeilijker en meer services vereisen extra resources voor beheer.

NSM lost deze problemen op door u in de eerste plaats te voorzien van:

  • Beveiliging, wat nu belangrijker is dan ooit. Gegevenslekkages kunnen bedrijven jaarlijks miljoenen dollars kosten aan verlies van inkomsten en reputatie. NSM zorgt voor versleuteling van alle verbindingen met mTLS — zodat er geen gevoelige gegevens zijn die door hackers over het netwerk kunnen worden gestolen. Toegangscontrole stelt u in staat om het beleid vast te stellen over hoe services met andere services communiceren.
  • Verkeersbeheer. Bij het uitrollen van een nieuwe versie van een applicatie wilt u wellicht aanvankelijk de binnenkomende traffic beperken voor het geval er iets misgaat. Met de intelligente containerverkeermanagement van NSM kunt u een beleid instellen dat verkeer voor nieuwe services in de loop van de tijd opschaalt. Andere functies, zoals snelheidsbeperkingen en circuit breakers, geven u volledige controle over de verkeersstroom van al uw services.
  • Visualisatie. Het beheren van duizenden services kan een nachtmerrie zijn wat betreft debugging en visualisatie. NSM helpt deze situatie te beheersen met een ingebouwde Grafana-dashboard, waarop alle statistieken die beschikbaar zijn in NGINX Plus worden weergegeven. Daarnaast maakt de ingebouwde Open Tracing het mogelijk om transacties gedetailleerd te volgen.
  • Hybride leveringen, als uw bedrijf, net als de meeste anderen, geen infrastructuur heeft die volledig draait op Kubernetes. NSM zorgt ervoor dat oudere applicaties niet worden verwaarloosd. Met de ingebouwde NGINX Kubernetes Ingress Controller kunnen oudere services communiceren met mesh-services, en vice versa.

NSM biedt ook applicatieve beveiliging in omgevingen met zero trust, door transparant encryptie en authenticatie van containerverkeer toe te passen. Daarnaast maakt het observatie en analyse van transacties mogelijk, waardoor implementaties snel en nauwkeurig kunnen worden uitgevoerd en problemen opgelost. Tevens biedt het gedetailleerde verkeerscontrole, zodat DevOps-teams delen van applicaties kunnen implementeren en optimaliseren, terwijl ontwikkelaars hun gedistribueerde applicaties kunnen creëren en eenvoudig kunnen verbinden.

Hoe werkt NGINX Service Mesh?

NSM bestaat uit een geïntegreerd data plane voor horizontaal (service-naar-service) verkeer en een ingebouwde NGINX Plus Ingress Controller voor verticaal verkeer, beheerd door een enkele control plane.

De control plane is speciaal ontwikkeld en geoptimaliseerd voor het NGINX Plus data plane en definieert verkeersbeheerregels verspreid over de NGINX Plus sidecars.

In NSM worden sidecar proxies ingesteld voor elke service in het mesh. Ze communiceren met de volgende open source oplossingen:

  • Grafana, visualisatie van Prometheus metrics; het ingebouwde NSM-dashboard helpt bij het werken;
  • Kubernetes Ingress Controllers, voor het beheren van inkomend en uitgaand verkeer in het mesh;
  • SPIRE, CA voor het beheren, distribueren en bijwerken van certificaten in het mesh;
  • NATS, een schaalbaar berichtenverzendingssysteem, bijvoorbeeld voor route-updates, van control plane naar sidecars;
  • Open Tracing, gedistribueerde debugging (ondersteunt Zipkin en Jaeger);
  • Prometheus, het verzamelen en opslaan van metrics van NGINX Plus sidecars, zoals het aantal verzoeken, verbindingen en SSL handshakes.

Functies en componenten

NGINX Plus fungeert als data plane dat de sidecar proxies (horizontaal verkeer) en de Ingress controller (verticaal verkeer) omvat, waarmee verkeer tussen services wordt onderschept en beheerd.

De functies omvatten:

  • Mutual TLS-authenticatie (mTLS);
  • Load balancing;
  • Veerkracht;
  • Snelheidsbeperkingen;
  • Circuit breaking;
  • Blue-green en canary deployments;
  • Toegangscontrole.

Het starten van NGINX Service Mesh

Om NSM op te starten, moet u:

  • toegang hebben tot het Kubernetes-omgevingen. NGINX Service Mesh wordt ondersteund op meerdere Kubernetes-platformen, waaronder Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere en reguliere Kubernetes-clusters die zijn uitgerold op 'bare metal' servers;
  • Hulpmiddel kubectl, geïnstalleerd op de machine vanwaar NSM zal worden geïnstalleerd;
  • Toegang tot de NGINX Service Mesh releasepakketten. Het pakket bevat de NSM-afbeeldingen die nodig zijn voor opslag in een gesloten registry voor containers, toegankelijk in het Kubernetes-cluster. Het pakket bevat ook nginx-meshctl, nodig voor het uitrollen van NSM.

Om NSM met de standaardinstellingen uit te rollen, voert u de volgende opdracht uit. Tijdens het uitrollen worden berichten weergegeven over de succesvolle installatie van componenten en uiteindelijk een bericht dat NSM draait in een aparte namespace (u moet deze eerst downloaden en in de registry plaatsen, opmerking van de vertaler):

$ 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}"
Namespace "nginx-mesh" gemaakt.
SpiffeID CRD gemaakt.
Wachten op Spire-pods om te draaien...klaar.
Deployed Spire.
Deployed NATS-server.
Verkeersbeleid CRDs gemaakt.
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.
Alle middelen zijn gemaakt. De verbinding met de Service Mesh API Server testen...

Verbinding met de NGINX Service Mesh API succesvol.
NGINX Service Mesh draait.

Voor aanvullende parameters, inclusief uitgebreide instellingen, voert u deze opdracht uit:

$ nginx-meshctl deploy –h

Om te controleren of de control plane correct werkt in de namespace nginx-mesh, kunt u dit doen:

$ 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

Afhankelijk van de implementatieparameters die handmatige of automatische injectiebeleid instellen, zullen de NGINX sidecar-proxy's standaard aan de applicaties worden toegevoegd. Om automatische toevoeging uit te schakelen, lees hier

Bijvoorbeeld, als we een applicatie uitrollen sleep in de namespace default, en vervolgens de Pod controleren, zien we twee draaiende containers: de applicatie sleep en de bijbehorende sidecar:

$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NAME                     READY   STATUS    RESTARTS   AGE
sleep-674f75ff4d-gxjf2   2/2     Running   0          5h23m

We kunnen ook de applicatie volgen sleep In het NGINX Plus-paneel, voer deze opdracht uit om toegang te krijgen tot de sidecar vanaf uw lokale machine:

$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886

Ga dan simpelweg hierheen in de browser. U kunt ook verbinding maken met Prometheus om de applicatie te volgen. sleep.

U kunt afzonderlijke Kubernetes-resources gebruiken om verkeersbeleidsregels in te stellen, zoals toegangscontrole, snelheidsbeperkingen en circuit breaking, zie hiervoor documentatie

Conclusie

NGINX Service Mesh is gratis beschikbaar voor download op de F5-portal. Probeer het in actie in uw dev- en testomgevingen en laat ons weten wat u ervan vindt..

Om de NGINX Plus Ingress Controller uit te proberen, activeer de gratis proefperiode voor 30 dagen, of neem contact met ons op om uw gebruiksmogelijkheden te bespreken.

Vertaling door Pavel Demkovich, ingenieur bij Southbridge. Systeembeheer voor 15.000 ₽ per maand. En als afzonderlijke tak – een opleidingscentrum Sloerm, praktijk en niets dan praktijk.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster