Ofrohet rrjetë shërbimi NGINX

Ofrohet rrjetë shërbimi NGINX

Kemi kënaqësinë të paraqesim një version paraprak Rrjetë e shërbimit NGINX (NSM), një rrjet shërbimi i lehtë i bashkuar që përdor një plan të dhënash të bazuar në NGINX Plus për të menaxhuar trafikun e kontejnerëve në mjediset Kubernetes.

NSM është falas shkarko këtu. Shpresojmë që do ta provoni për mjediset e zhvilluesit dhe testimit - dhe mezi presim komentet tuaja në GitHub.

Zbatimi i metodologjisë së mikroshërbimeve është i mbushur me vështirësi ndërsa shkalla e ofrimit rritet, si dhe kompleksiteti i saj. Komunikimi ndërmjet shërbimeve bëhet më kompleks, problemet e korrigjimit bëhen më të vështira dhe gjithnjë e më shumë shërbime kërkojnë më shumë burime për t'u menaxhuar.

NSM i zgjidh këto probleme duke ju ofruar:

  • siguri, e cila tani është më e rëndësishme se kurrë. Një shkelje e të dhënave mund t'i kushtojë një kompanie miliona dollarë në vit në humbje të të ardhurave dhe reputacionit. NSM siguron që të gjitha lidhjet janë të koduara duke përdorur mTLS, kështu që nuk ka të dhëna të ndjeshme që mund të vidhen nga hakerat në rrjet. Kontrolli i aksesit ju lejon të vendosni politika për mënyrën se si shërbimet komunikojnë me shërbimet e tjera.
  • Menaxhimi i Trafikut. Kur dërgoni një version të ri të një aplikacioni, mund të dëshironi të filloni duke kufizuar trafikun në hyrje në të në rast të një gabimi. Me menaxhimin inteligjent të trafikut të kontejnerëve të NSM-së, mund të vendosni një politikë të kufizimit të trafikut për shërbimet e reja që do të rrisin trafikun me kalimin e kohës. Karakteristika të tjera, si kufizimi i shpejtësisë dhe ndërprerësit, ju japin kontroll të plotë mbi rrjedhën e trafikut të të gjitha shërbimeve tuaja.
  • Vizualizimi. Menaxhimi i mijëra shërbimeve mund të jetë një makth korrigjimi dhe vizualizimi. NSM ndihmon në përballimin e kësaj situate me një panel të integruar Grafana që shfaq të gjitha veçoritë e disponueshme në NGINX Plus. Dhe gjithashtu Open Tracing i zbatuar ju lejon të monitoroni transaksionet në detaje.
  • Dërgesat hibride, nëse kompania juaj, si shumica e të tjerave, nuk përdor infrastrukturë që funksionon tërësisht në Kubernetes. NSM siguron që aplikacionet e vjetra të mos lihen pa mbikëqyrje. Me ndihmën e zbatuar NGINX Kubernetes Ingress Controller, shërbimet e vjetra do të jenë në gjendje të komunikojnë me shërbimet rrjetë dhe anasjelltas.

NSM siguron gjithashtu sigurinë e aplikacionit në mjediset e besimit zero duke aplikuar në mënyrë transparente enkriptimin dhe vërtetimin në trafikun e kontejnerëve. Ai gjithashtu ofron shikueshmëri dhe analizë të transaksioneve, duke ju ndihmuar të nisni shpejt dhe me saktësi vendosjet dhe të zgjidhni problemet. Ai gjithashtu siguron kontroll të grimcuar të trafikut, duke lejuar ekipet e DevOps të vendosin dhe optimizojnë pjesë të aplikacioneve ndërsa u mundëson zhvilluesve të ndërtojnë dhe lidhin lehtësisht aplikacionet e tyre të shpërndara.

Si funksionon rrjeta e shërbimit NGINX?

NSM përbëhet nga një plan i unifikuar i të dhënave për trafikun horizontal (shërbim në shërbim) dhe një kontrollues i hyrjes NGINX Plus të integruar për trafikun vertikal, i menaxhuar nga një plan i vetëm kontrolli.

Plani i kontrollit është projektuar dhe optimizuar posaçërisht për planin e të dhënave NGINX Plus dhe përcakton rregullat e kontrollit të trafikut të shpërndara nëpër karriget anësore të NGINX Plus.

Në NSM, proxies sidecars janë instaluar për çdo shërbim në rrjetë. Ato ndërlidhen me zgjidhjet e mëposhtme me burim të hapur:

  • Grafana, vizualizimi i parametrave Prometheus, paneli i integruar NSM ju ndihmon me punën tuaj;
  • Kubernetes Ingress Controllers, për menaxhimin e trafikut hyrës dhe dalës në rrjetë;
  • SPIRE, CA për menaxhimin, shpërndarjen dhe përditësimin e certifikatave në rrjetë;
  • NATS, një sistem i shkallëzueshëm për dërgimin e mesazheve, të tilla si përditësimet e rrugës, nga avioni i kontrollit në karriget anësore;
  • Gjurmimi i hapur, korrigjimi i shpërndarë (mbështetur Zipkin dhe Jaeger);
  • Prometheus, mbledh dhe ruan karakteristika nga karriget anësore NGINX Plus, të tilla si numri i kërkesave, lidhjet dhe shtrëngimet e duarve SSL.

Funksionet dhe komponentët

NGINX Plus si një plan të dhënash mbulon proxy sidecar (trafiku horizontal) dhe kontrolluesin e hyrjes (vertikal), duke përgjuar dhe menaxhuar trafikun e kontejnerëve midis shërbimeve.

Karakteristikat përfshijnë:

  • Autentifikimi i ndërsjellë TLS (mTLS);
  • Balancimi i ngarkesës;
  • Toleranca ndaj gabimeve;
  • Kufiri i shpejtësisë;
  • Thyerja e qarkut;
  • Vendosjet blu-jeshile dhe kanarinë;
  • Kontrolli i aksesit.

Nisja e rrjetit të shërbimit NGINX

Për të ekzekutuar NSM ju duhet:

  • qasje në mjedisin Kubernetes. NGINX Service Mesh mbështetet në shumë platforma Kubernetes, duke përfshirë Amazon Elastic Container Service për Kubernetes (EKS), Shërbimi Azure Kubernetes (AKS), Google Kubernetes Engine (GKE), VMware vSphere dhe grupe të rregullta Kubernetes të vendosura në serverët e harduerit;
  • Mjet kubectl, i instaluar në makinën nga e cila do të instalohet NSM;
  • Qasje në paketat e lëshimit të NGINX Service Mesh. Paketa përmban imazhe NSM të nevojshme për t'u ngarkuar në një regjistër privat për kontejnerët e disponueshëm në grupin Kubernetes. Paketa përmban gjithashtu nginx-meshctl, e nevojshme për të vendosur NSM.

Për të vendosur NSM me cilësimet e paracaktuara, ekzekutoni komandën e mëposhtme. Gjatë vendosjes, shfaqen mesazhe që tregojnë instalimin e suksesshëm të komponentëve dhe, së fundi, një mesazh që tregon se NSM po funksionon në një hapësirë ​​emri të veçantë (së pari duhet të shkarko dhe vendoseni në regjistër, përafërsisht. përkthyes):

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

Për më shumë opsione, duke përfshirë cilësimet e avancuara, ekzekutoni këtë komandë:

$ nginx-meshctl deploy –h

Kontrolloni që rrafshi i kontrollit të funksionojë saktë në hapësirën e emrave nginx-rrjetë, ti mund ta besh kete:

$ 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

Në varësi të cilësimeve të vendosjes që përcaktojnë politikat e injektimit manual ose automatik, proxies NGINX sidecars do t'u shtohen aplikacioneve si parazgjedhje. Për të çaktivizuar shtimin automatik, lexoni këtu

Për shembull, nëse vendosim aplikacionin fle në hapësirën e emrave parazgjedhur, dhe më pas kontrolloni Pod - do të shohim dy kontejnerë që funksionojnë, aplikacionin fle dhe karroca anësore e lidhur:

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

Ne gjithashtu mund të monitorojmë aplikacionin fle në panelin NGINX Plus, ekzekutoni këtë komandë për të hyrë në karrigen anësore nga makina juaj lokale:

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

Pastaj thjesht hyjmë këtu në shfletuesin. Ju gjithashtu mund të lidheni me Prometheus për të monitoruar aplikacionin fle.

Ju mund të përdorni burime individuale të Kubernetes për të konfiguruar politikat e trafikut, të tilla si kontrolli i aksesit, kufizimi i shpejtësisë dhe ndërprerja e qarkut, për këtë shih dokumentacionin

Përfundim

NGINX Service Mesh është në dispozicion për shkarkim falas në portali F5. Provojeni në mjediset tuaja të zhvilluesit dhe testimit dhe na shkruani për rezultatet.

Për të provuar NGINX Plus Ingress Controller, aktivizojeni periudhë prove falas për 30 ditë, ose Na kontaktoni për të diskutuar rastet tuaja të përdorimit.

Përkthim nga Pavel Demkovich, inxhinier i kompanisë Southbridge. Administrimi i sistemit për 15 rubla në muaj. Dhe si një ndarje e veçantë - një qendër trajnimi Sllum, praktikë dhe asgjë tjetër veç praktikë.

Burimi: www.habr.com

Shto një koment