Kemi kënaqësinë të paraqesim një version paraprak
NSM është falas
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ë
$ 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
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ë
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
Përfundim
NGINX Service Mesh është në dispozicion për shkarkim falas në
Për të provuar NGINX Plus Ingress Controller, aktivizojeni
Përkthim nga Pavel Demkovich, inxhinier i kompanisë
Burimi: www.habr.com