NGINX Service Mesh eskuragarri

NGINX Service Mesh eskuragarri

Atsegin handiz aurrebista bertsio bat aurkezten dugu NGINX Zerbitzu Sarea (NSM), kubernetes inguruneetako edukiontzien trafikoa kudeatzeko NGINX Plus-en oinarritutako datu-hegazkina erabiltzen duen zerbitzu-sare arina.

NSM doakoa da deskargatu hemen. Garatzaileentzako eta proba-inguruneetarako probatuko duzula espero dugu, eta zure iritzia espero dugu GitHub-en.

Mikrozerbitzuen metodologia ezartzeak zailtasunez beteta dago entrega-eskala hazten den heinean, baita bere konplexutasuna ere. Zerbitzuen arteko komunikazioa konplexuagoa bihurtzen da, arazketa arazoak zaildu egiten dira eta gero eta zerbitzu gehiagok baliabide gehiago behar dituzte kudeatzeko.

NSM-k arazo hauek konpontzen ditu honako hauek emanez:

  • Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, orain inoiz baino garrantzitsuagoa dena. Datu-hauste batek urtero milioi dolar kosta diezaioke enpresa bati diru-sarrerak eta ospe galtzeari dagokionez. NSM-k konexio guztiak mTLS erabiliz enkriptatuta daudela ziurtatzen du, beraz, ez dago sarean hackerrek lapurtu dezaketen datu sentikorrik. Sarbide-kontrolak zerbitzuak beste zerbitzu batzuekin nola komunikatzeko politikak ezartzeko aukera ematen du.
  • trafikoaren kudeaketa. Aplikazio baten bertsio berri bat bidaltzen duzunean, akatsen bat gertatuz gero sarrerako trafikoa mugatzen hasi nahi duzu. NSMren edukiontzien trafikoaren kudeaketa adimendunarekin, trafikoa mugatzeko politika ezar dezakezu denboran zehar trafikoa handituko duten zerbitzu berrietarako. Beste funtzio batzuek, hala nola, abiadura mugatzea eta etengailuak, zure zerbitzu guztien trafiko-fluxuaren kontrol osoa ematen dizute.
  • Bistaratzea. Milaka zerbitzu kudeatzea arazketa eta bistaratzeko amesgaiztoa izan daiteke. NSM-k egoera honi aurre egiten laguntzen du NGINX Plus-en eskuragarri dauden eginbide guztiak bistaratzen dituen Grafana panel bateratu batekin. Eta inplementatutako Open Tracing-ek transakzioak zehatz-mehatz kontrolatzeko aukera ematen du.
  • Bidalketa hibridoak, zure enpresak, beste gehienek bezala, Kubernetesen guztiz exekutatzen den azpiegiturarik erabiltzen ez badu. NSMk bermatzen du ondareko aplikazioak ez direla arretarik gabe uzten. Inplementatutako NGINX Kubernetes Ingress Controller-aren laguntzaz, ondareko zerbitzuak sareko zerbitzuekin komunikatu ahal izango dira, eta alderantziz.

NSM-k aplikazioen segurtasuna ere bermatzen du konfiantzarik gabeko inguruneetan, edukiontzien trafikoari enkriptatzea eta autentifikazioa gardentasunez aplikatuz. Transakzioen ikusgarritasuna eta analisia ere eskaintzen ditu, inplementazioak azkar eta zehaztasunez abiarazten eta arazoak konpontzen laguntzen dizu. Trafiko kontrol zehatza ere eskaintzen du, eta DevOps taldeei aplikazioen zatiak zabaltzea eta optimizatzea ahalbidetzen die, garatzaileek banatutako aplikazioak erraz eraiki eta erraz konektatzeko aukera ematen die.

Nola funtzionatzen du NGINX Service Mesh-ek?

NSM trafiko horizontalerako (zerbitzutik zerbitzurako) datu-plano bateratu batez eta trafiko bertikalerako NGINX Plus Ingress Controller txertatuta dago, kontrol-plano bakar batek kudeatzen duena.

Kontrol-hegazkina NGINX Plus datu-planorako bereziki diseinatu eta optimizatuta dago eta NGINX Plus sidecar-etan banatutako trafiko-kontrol-arauak definitzen ditu.

NSMn, sidecars proxyak sareko zerbitzu bakoitzeko instalatzen dira. Kode irekiko irtenbide hauekin interfazea dute:

  • Grafana, Prometheus parametroen bistaratzea, NSM panel integratua zure lanean laguntzen dizu;
  • Kubernetes Ingress Controllers, sarean sarrerako eta irteerako trafikoa kudeatzeko;
  • SPIRE, CA sarean ziurtagiriak kudeatu, banatu eta eguneratzeagatik;
  • NATS, kontrol-hegazkinetik sidecar-etara mezuak bidaltzeko sistema eskalagarria, hala nola ibilbideen eguneraketak;
  • Open Tracing, banatutako arazketa (Zipkin eta Jaeger onartzen dira);
  • Prometheus-ek NGINX Plus sidecar-en ezaugarriak biltzen eta gordetzen ditu, hala nola, eskaera kopurua, konexioa eta SSL esku-ematea.

Funtzioak eta osagaiak

NGINX Plus datu-plano gisa sidecar proxy (trafiko horizontala) eta Ingress kontrolatzailea (bertikala) estaltzen ditu, zerbitzuen arteko edukiontzien trafikoa atzematen eta kudeatzen du.

Ezaugarriak hauek dira:

  • Elkarrekiko TLS (mTLS) autentifikazioa;
  • Karga orekatzea;
  • Akatsen tolerantzia;
  • Abiadura muga;
  • Zirkuitu haustura;
  • Urdin-berde eta kanariar hedapenak;
  • Sarbide kontrola.

NGINX Service Mesh abiarazten

NSM exekutatzeko:

  • Kubernetes ingurunerako sarbidea. NGINX Service Mesh Kubernetes plataforma askotan onartzen da, besteak beste, Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere eta hardware zerbitzarietan inplementatutako Kubernetes kluster arruntetan;
  • Tool kubectl, NSM instalatuko den makinan instalatuta;
  • NGINX Service Mesh kaleratzeko paketeetarako sarbidea. Paketeak Kubernetes klusterrean dauden edukiontzietarako erregistro pribatu batera kargatzeko beharrezkoak diren NSM irudiak ditu. Paketeak ere badu nginx-meshctl, NSM zabaldu behar da.

NSM ezarpen lehenetsiekin zabaltzeko, exekutatu komando hau. Inplementazioan zehar, osagaiak ongi instalatu direla adierazten duten mezuak bistaratzen dira eta, azkenik, NSM izen-eremu bereizi batean exekutatzen ari dela adierazten duen mezu bat (lehenik deskargatu eta jarri erregistroan, gutxi gorabehera. itzultzailea):

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

Aukera gehiago lortzeko, ezarpen aurreratuak barne, exekutatu komando hau:

$ nginx-meshctl deploy –h

Egiaztatu kontrol-planoak behar bezala funtzionatzen duela izen-espazioan nginx-mesh, hau atsegin dezakezu:

$ 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

Eskuzko edo automatikoki injekzio politikak ezartzen dituzten inplementazio-ezarpenen arabera, NGINX sidecars proxyak aplikazioetan gehituko dira lehenespenez. Gehitze automatikoa desgaitzeko, irakurri Hemen

Adibidez, aplikazioa zabaltzen badugu lo egin izen-eremuan lehenetsi, eta gero egiaztatu Pod - martxan dauden bi edukiontzi ikusiko ditugu, aplikazioa lo egin eta lotutako sidecar:

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

Aplikazioaren jarraipena ere egin dezakegu lo egin NGINX Plus panelean, exekutatu komando hau zure tokiko makinatik sidecar atzitzeko:

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

Orduan sartzen gara Hemen arakatzailean. Prometheusera ere konekta zaitezke aplikazioa kontrolatzeko lo egin.

Kubernetes baliabide indibidualak erabil ditzakezu trafiko-politikak konfiguratzeko, hala nola, sarbide-kontrola, tasa mugatzea eta zirkuitu-haustea, horretarako, ikus dokumentazioa

Ondorioa

NGINX Service Mesh doan deskargatu daiteke hemen ataria F5. Probatu zure garatzaile eta proba inguruneetan eta idatz iezaguzu emaitzei buruz.

NGINX Plus Ingress Controller probatzeko, aktibatu doako proba-aldia 30 egunez, edo Jarri gurekin harremanetan zure erabilera kasuak eztabaidatzeko.

Itzulpena Pavel Demkovich, konpainiako ingeniaria Southbridge. Sistemaren administrazioa 15 RUB hilean. Eta aparteko zati gisa - prestakuntza zentro bat Slurm, praktika eta praktika besterik ez.

Iturria: www.habr.com

Gehitu iruzkin berria