NGINX Service Mesh beskikber

NGINX Service Mesh beskikber

Wy binne bliid om in foarbyldferzje te presintearjen NGINX Service Mesh (NSM), in bondele lichtgewicht tsjinstmesh dat in NGINX Plus-basearre gegevensfleantúch brûkt om kontenerferkear te behearjen yn Kubernetes-omjouwings.

NSM is fergees download hjir. Wy hoopje dat jo it sille probearje foar dev- en testomjouwings - en sjogge út nei jo feedback op GitHub.

De ymplemintaasje fan mikrotsjinstmetodology is fol mei swierrichheden as de skaal fan levering groeit, lykas ek de kompleksiteit. Kommunikaasje tusken tsjinsten wurdt komplekser, debuggen problemen wurde dreger, en mear en mear tsjinsten fereaskje mear middels te beheare.

NSM lost dizze problemen op troch jo te leverjen mei:

  • Feiligens, dat is no wichtiger as ea. In gegevensbreuk kin in bedriuw jierliks ​​miljoenen dollars kostje oan ferlerne ynkomsten en reputaasje. NSM soarget derfoar dat alle ferbinings fersifere wurde mei mTLS, sadat der gjin gefoelige gegevens binne dy't troch hackers oer it netwurk stellen wurde kinne. Tagongskontrôle lit jo belied ynstelle foar hoe't tsjinsten kommunisearje mei oare tsjinsten.
  • ferkear behear. By it ferstjoeren fan in nije ferzje fan in applikaasje, kinne jo begjinne mei it beheinen fan ynkommende ferkear dêryn yn gefal fan in flater. Mei NSM's yntelliginte kontenerferkearbehear kinne jo in ferkearsbeheiningsbelied ynstelle foar nije tsjinsten dy't ferkear oer de tiid sille tanimme. Oare funksjes, lykas snelheidsbeheining en circuit breakers, jouwe jo folsleine kontrôle oer de ferkearsstream fan al jo tsjinsten.
  • Fisualisaasje. It behearen fan tûzenen tsjinsten kin in nachtmerje foar debuggen en fisualisaasje wêze. NSM helpt omgean mei dizze situaasje mei in ynboude Grafana dashboard dat toant alle funksjes beskikber yn NGINX Plus. En ek de ymplementearre Open Tracing lit jo transaksjes yn detail kontrolearje.
  • Hybride leveringen, as jo bedriuw, lykas de measte oaren, gjin ynfrastruktuer brûkt dy't folslein op Kubernetes rint. NSM soarget derfoar dat legacy applikaasjes wurde net ferlitten sûnder tafersjoch. Mei help fan 'e ymplementearre NGINX Kubernetes Ingress Controller sille legacy-tsjinsten kinne kommunisearje mei mesh-tsjinsten, en oarsom.

NSM soarget ek foar applikaasjefeiligens yn omjouwings mei nul fertrouwen troch transparant tapassen fan fersifering en autentikaasje op kontenerferkear. It jout ek transaksje sichtberens en analyze, en helpt jo fluch en sekuer lansearring ynset en problemen oplosse. It leveret ek granulêre ferkearskontrôle, wêrtroch DevOps-teams dielen fan applikaasjes kinne ynsette en optimalisearje, wylst ûntwikkelders har ferdielde applikaasjes bouwe en maklik ferbine kinne.

Hoe wurket de NGINX Service Mesh?

NSM bestiet út in ferienige gegevens fleantúch foar horizontaal (service-to-service) ferkear en in ynbêde NGINX Plus Ingress Controller foar fertikale ferkear, beheard troch ien kontrôle fleanmasine.

It kontrôlefleantúch is spesifyk ûntworpen en optimalisearre foar it NGINX Plus-gegevensfleantúch en definiearret ferkearskontrôleregels ferdield oer NGINX Plus-sidecars.

Yn NSM wurde sidecars-proxies ynstalleare foar elke tsjinst yn it gaas. Se ynterface mei de folgjende iepen boarne-oplossingen:

  • Grafana, Prometheus parameter fisualisaasje, ynboude NSM paniel helpt jo mei jo wurk;
  • Kubernetes Ingress Controllers, foar it behearen fan ynkommende en útgeande ferkear yn 'e mesh;
  • SPIRE, CA foar it behearen, fersprieden en bywurkjen fan sertifikaten yn it gaas;
  • NATS, in skalberber systeem foar it ferstjoeren fan berjochten, lykas rûte-updates, fan it kontrôlefleanmasine nei sidecars;
  • Iepen Tracing, ferspraat debuggen (Zipkin en Jaeger stipe);
  • Prometheus, sammelet en bewarret skaaimerken fan NGINX Plus-sidecars, lykas it oantal oanfragen, ferbiningen en SSL-handshakes.

Funksjes en komponinten

NGINX Plus as gegevensfleantúch beslacht sidecar-proxy (horizontaal ferkear) en Ingress-controller (fertikaal), ûnderskepping en behear fan kontenerferkear tusken tsjinsten.

Funksjes omfetsje:

  • Mutual TLS (mTLS) autentikaasje;
  • load balancing;
  • Marzje foar flaters;
  • Faasje limyt;
  • Circuit breaking;
  • Blau-grien en kanaryske ynset;
  • Tagongskontrôle.

NGINX Service Mesh lansearje

Om NSM út te fieren hawwe jo nedich:

  • tagong ta de Kubernetes-omjouwing. NGINX Service Mesh wurdt stipe op in protte Kubernetes platfoarms, ynklusyf Amazon Elastic Container Service foar Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere, en reguliere Kubernetes klusters ynset op hardware tsjinners;
  • Tool kubectl, ynstalleare op 'e masine wêrfan NSM ynstalleare sil;
  • Tagong ta NGINX Service Mesh release pakketten. It pakket befettet NSM-ôfbyldings dy't nedich binne foar it uploaden nei in privee register foar konteners beskikber yn it Kubernetes-kluster. It pakket befettet ek nginx-meshctl, nedich om NSM yn te setten.

Om NSM yn te setten mei standertynstellingen, útfiere it folgjende kommando. Tidens ynset wurde berjochten werjûn dy't oanjaan dat de komponinten mei súkses ynstallearre binne, en op it lêst in berjocht dat oanjout dat NSM yn in aparte nammeromte rint (jo moatte earst ien). скачать en pleats it yn it register, ca. oersetter):

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

Foar mear opsjes, ynklusyf avansearre ynstellings, útfiere dit kommando:

$ nginx-meshctl deploy –h

Kontrolearje dat it kontrôlefleanmasine goed wurket yn 'e nammeromte nginx-mesh, Do kinst dit:

$ 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

Ofhinklik fan 'e ynsetynstellingen dy't hânmjittich as automatysk ynjeksjebelied ynstelle, sille NGINX-sidecars-proxies standert wurde tafoege oan applikaasjes. Om automatysk tafoegjen út te skeakeljen, lês hjir

Bygelyks, as wy de applikaasje ynsette sliep yn nammeromte standert, en kontrolearje dan de Pod - wy sille twa rinnende konteners sjen, de applikaasje sliep en de byhearrende sidecar:

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

Wy kinne de applikaasje ek kontrolearje sliep yn it NGINX Plus-paniel, dit kommando útfiere om tagong te krijen ta sidecar fan jo lokale masine:

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

Dan geane wy ​​mar yn hjir yn 'e browser. Jo kinne ek ferbine mei Prometheus om de applikaasje te kontrolearjen sliep.

Jo kinne yndividuele Kubernetes-boarnen brûke om ferkearsbelied te konfigurearjen, lykas tagongskontrôle, taryfbeheining en circuit breaking, hjirfoar sjoch dokumintaasje

konklúzje

NGINX Service Mesh is beskikber foar fergese download by portal F5. Besykje it yn jo dev- en testomjouwings en skriuw ús oer de resultaten.

Om NGINX Plus Ingress Controller te besykjen, aktivearje frije proefperioade foar 30 dagen, of Kontakt mei ús opnimme om jo gebrûksgefallen te besprekken.

Oersetting troch Pavel Demkovich, bedriuwsingenieur súdlike brêge. Systeembehear foar RUB 15 per moanne. En as in aparte ôfdieling - in trainingssintrum Slurm, oefenje en neat oars as oefenje.

Boarne: www.habr.com

Add a comment