NGINX Service Mesh tilgængelig

NGINX Service Mesh tilgængelig

Vi er glade for at kunne præsentere en forhåndsvisningsversion NGINX Service Mesh (NSM), et bundtet letvægtsservicenet, der bruger et NGINX Plus-baseret dataplan til at styre containertrafik i Kubernetes-miljøer.

NSM er gratis download her. Vi håber, du vil prøve det til udvikler- og testmiljøer - og ser frem til din feedback på GitHub.

Implementeringen af ​​mikroservicemetodologi er fyldt med vanskeligheder, efterhånden som omfanget af levering vokser, såvel som dets kompleksitet. Kommunikation mellem tjenester bliver mere kompleks, fejlfindingsproblemer bliver vanskeligere, og flere og flere tjenester kræver flere ressourcer at administrere.

NSM løser disse problemer ved at give dig:

  • Безопасность, som nu er vigtigere end nogensinde. Et databrud kan koste en virksomhed millioner af dollars årligt i tabt omsætning og omdømme. NSM sikrer, at alle forbindelser er krypteret ved hjælp af mTLS, så der ikke er følsomme data, der kan stjæles af hackere over netværket. Adgangskontrol giver dig mulighed for at angive politikker for, hvordan tjenester kommunikerer med andre tjenester.
  • trafikstyring. Når du sender en ny version af en applikation, vil du måske starte med at begrænse indgående trafik til den i tilfælde af en fejl. Med NSMs intelligente containertrafikstyring kan du indstille en trafikbegrænsningspolitik for nye tjenester, der vil øge trafikken over tid. Andre funktioner, såsom hastighedsbegrænsning og afbrydere, giver dig fuld kontrol over trafikstrømmen af ​​alle dine tjenester.
  • Visualisering. At administrere tusindvis af tjenester kan være et fejlretnings- og visualiseringsmareridt. NSM hjælper med at håndtere denne situation med et indbygget Grafana-dashboard, der viser alle de funktioner, der er tilgængelige i NGINX Plus. Og også den implementerede Open Tracing giver dig mulighed for at overvåge transaktioner i detaljer.
  • Hybrid leveringer, hvis din virksomhed, som de fleste andre, ikke bruger infrastruktur, der kører udelukkende på Kubernetes. NSM sikrer, at ældre applikationer ikke efterlades uden opsyn. Ved hjælp af den implementerede NGINX Kubernetes Ingress Controller vil ældre tjenester være i stand til at kommunikere med mesh-tjenester og omvendt.

NSM sikrer også applikationssikkerhed i miljøer med nul tillid ved transparent at anvende kryptering og godkendelse til containertrafik. Det giver også transaktionssynlighed og -analyse, hvilket hjælper dig med hurtigt og præcist at starte implementeringer og fejlfinde problemer. Det giver også granulær trafikkontrol, hvilket giver DevOps-teams mulighed for at implementere og optimere dele af applikationer, samtidig med at udviklere kan bygge og nemt forbinde deres distribuerede applikationer.

Hvordan fungerer NGINX Service Mesh?

NSM består af et samlet dataplan for horisontal (service-til-service) trafik og en indlejret NGINX Plus Ingress Controller til vertikal trafik, styret af et enkelt kontrolplan.

Kontrolplanet er specifikt designet og optimeret til NGINX Plus dataplanet og definerer trafikkontrolregler fordelt på tværs af NGINX Plus sidevogne.

I NSM er sidevogns proxyer installeret for hver service i nettet. De interfacer med følgende open source-løsninger:

  • Grafana, Prometheus parametervisualisering, indbygget NSM panel hjælper dig med dit arbejde;
  • Kubernetes Ingress Controllere, til styring af indgående og udgående trafik i nettet;
  • SPIRE, CA til styring, distribution og opdatering af certifikater i nettet;
  • NATS, et skalerbart system til at sende beskeder, såsom ruteopdateringer, fra kontrolplanet til sidevogne;
  • Open Tracing, distribueret debugging (Zipkin og Jaeger understøttet);
  • Prometheus, indsamler og gemmer karakteristika fra NGINX Plus sidevogne, såsom antallet af anmodninger, forbindelser og SSL-håndtryk.

Funktioner og komponenter

NGINX Plus som dataplan dækker sidevognsproxy (vandret trafik) og Ingress-controller (lodret), opsnapper og administrere containertrafik mellem tjenester.

Funktionerne omfatter:

  • Gensidig TLS (mTLS) godkendelse;
  • Lastbalancering;
  • Fejltolerance;
  • Hastighedsgrænse;
  • Kredsløbsbrud;
  • Blå-grønne og kanariske anlæg;
  • Adgangskontrol.

Lancering af NGINX Service Mesh

For at køre NSM skal du bruge:

  • adgang til Kubernetes-miljøet. NGINX Service Mesh understøttes på mange Kubernetes-platforme, herunder Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere og almindelige Kubernetes-klynger installeret på hardwareservere;
  • Tool kubectl, installeret på den maskine, hvorfra NSM vil blive installeret;
  • Adgang til NGINX Service Mesh-udgivelsespakker. Pakken indeholder NSM-billeder, der er nødvendige for upload til et privat register for containere, der er tilgængelige i Kubernetes-klyngen. Pakken indeholder også nginx-meshctl, nødvendig for at implementere NSM.

For at implementere NSM med standardindstillinger skal du køre følgende kommando. Under implementeringen vises meddelelser, der angiver den vellykkede installation af komponenter, og endelig en meddelelse, der angiver, at NSM kører i et separat navneområde (du skal først скачать og placere det i registreringsdatabasen, ca. oversætter):

$ 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.

For flere muligheder, inklusive avancerede indstillinger, kør denne kommando:

$ nginx-meshctl deploy –h

Tjek at kontrolplanet fungerer korrekt i navnerummet nginx-mesh, Du kan gøre det:

$ 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

Afhængigt af de implementeringsindstillinger, der sætter manuel eller automatisk indsprøjtningspolitik, vil NGINX sidevognsproxyer blive tilføjet til applikationer som standard. For at deaktivere automatisk tilføjelse skal du læse her

For eksempel hvis vi implementerer applikationen søvn i navnerummet standard, og tjek derefter Pod'en - vi vil se to kørende containere, applikationen søvn og den tilhørende sidevogn:

$ 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 også overvåge ansøgningen søvn i NGINX Plus-panelet, kør denne kommando for at få adgang til sidevogn fra din lokale maskine:

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

Så går vi bare ind her i browseren. Du kan også oprette forbindelse til Prometheus for at overvåge applikationen søvn.

Du kan bruge individuelle Kubernetes-ressourcer til at konfigurere trafikpolitikker, såsom adgangskontrol, hastighedsbegrænsning og kredsløbsbrud, for dette se dokumentation

Konklusion

NGINX Service Mesh er tilgængelig til gratis download på portal F5. Prøv det i dine dev- og testmiljøer og skriv til os om resultaterne.

For at prøve NGINX Plus Ingress Controller skal du aktivere gratis prøveperiode i 30 dage, eller Kontakt os at diskutere dine use cases.

Oversættelse af Pavel Demkovich, virksomhedens ingeniør Southbridge. Systemadministration for 15 RUB om måneden. Og som en separat afdeling - et træningscenter Slurm, øvelse og intet andet end øvelse.

Kilde: www.habr.com

Tilføj en kommentar