NGINX Service Mesh është i disponueshëm

NGINX Service Mesh është i disponueshëm

Ne jemi të lumtur të prezantojmë versionin e parë NGINX Service Mesh (NSM), një mesh shërbimi të lehtë, që përdor një data plane të bazuar në NGINX Plus për të menaxhuar trafikun e kontejnerëve në mjediset Kubernetes.

NSM mund tĂ« shkarkohet kĂ«tu. ShpresojmĂ« qĂ« do ta provoni pĂ«r pĂ«rdorim nĂ« zhvillim dhe testim — dhe presim feedback-un tuaj nĂ« GitHub.

Zbatimi i metodologjive të mikroshërbimeve vjen me vështirësi gjatë rritjes së shkallës së shpërndarjeve, si dhe kompleksiteteve të tjera. Komunikimi mes shërbimeve bëhet më i ndërlikuar, problemet me debugging bëhen më të vështira, gjithnjë e më shumë shërbime kërkojnë më shumë burime për menaxhim.

NSM zgjidh këto probleme duke ju ofruar përparësitë:

  • Siguria, qĂ« tani Ă«shtĂ« mĂ« e rĂ«ndĂ«sishme se kurrĂ«. NjĂ« shkrim i dhĂ«nash mund t'i kushtojĂ« kompanisĂ« miliona dollarĂ« çdo vit nĂ« formĂ« humbjesh tĂ« ardhurash dhe reputacionit. NSM siguron enkriptimin e tĂ« gjitha lidhjeve me mTLS — kĂ«shtu qĂ« nuk ka tĂ« dhĂ«na tĂ« ndjeshme qĂ« mund tĂ« vidhen nga hakerĂ«t nĂ« rrjet. Kontrolli i aksesit ju lejon tĂ« vendosni politika pĂ«r mĂ«nyrĂ«n si shĂ«rbimet do tĂ« komunikojnĂ« me shĂ«rbime tĂ« tjera.
  • Menaxhimi i trafikut. Kur shpĂ«rndani njĂ« version tĂ« ri tĂ« aplikacionit, ndoshta do tĂ« dĂ«shironi fillimisht tĂ« kufizoni trafikun qĂ« merr nĂ« rast gabimi. Me menaxhimin inteligjent tĂ« trafikĂ«ve tĂ« kontejnerĂ«ve nga NSM, mund tĂ« vendosni njĂ« politikĂ« pĂ«r tĂ« kufizuar trafikun e shĂ«rbimeve tĂ« reja, e cila do tĂ« rritet me kalimin e kohĂ«s. Funksione tĂ« tjera, si kufizimi i shpejtĂ«sisĂ« dhe circuit breakers, ju japin qasje tĂ« plotĂ« pĂ«r menaxhimin e kalimit tĂ« trafikĂ«ve nĂ« tĂ« gjitha shĂ«rbimet tuaja.
  • Vizualizimi. Menaxhimi i mijĂ«ra shĂ«rbimeve mund tĂ« jetĂ« njĂ« ndihmĂ« e madhe pĂ«r debugging dhe vizualizim. NSM ndihmon tĂ« pĂ«rballoni njĂ« situatĂ« tĂ« tillĂ« me njĂ« panel menaxhimi tĂ« integruar Grafana, ku shfaqen tĂ« gjitha karakteristikat nĂ« dispozicion nĂ« NGINX Plus. Po ashtu, integrimi i Open Tracing ju lejon tĂ« ndiqni detajisht transaksionet.
  • ShkĂ«mbimet hibride, nĂ«se kompanisĂ« tuaj, si shumica tjetĂ«r, nuk e pĂ«rdor infrastrukturĂ«n e plotĂ« tĂ« bazuar nĂ« Kubernetes. NSM siguron qĂ« aplikacionet mĂ« tĂ« vjetra tĂ« mos mbeten tĂ« papĂ«rkujdesura. Me ndihmĂ«n e NGINX Kubernetes Ingress Controller, shĂ«rbimet mĂ« tĂ« vjetra do tĂ« kenĂ« mundĂ«sinĂ« tĂ« lidhen me shĂ«rbimet mesh, dhe e kundĂ«rta.

NSM gjithashtu siguron sigurinë e aplikacioneve në mjedise me besim zero, duke zbatuar në mënyrë transparente enkriptimin dhe autentikimin e trafikut të konteinerëve. Ai gjithashtu ofron aftësi për monitorimin dhe analizimin e transaksioneve, duke ndihmuar në lançimin e shpejtë dhe të saktë të shpërndarjeve dhe zgjidhjen e problemeve. Për më tepër, ai ofron kontroll të detajuar të trafikut, duke i lejuar ekipet DevOps të shpërndajnë dhe optimizojnë pjesët e aplikacioneve, duke mundësuar gjithashtu zhvilluesit që të krijojnë dhe lidhin lehtësisht aplikacionet e tyre të shpërndara.

Si funksionon NGINX Service Mesh?

NSM përbëhet nga një plane të dhënash të bashkuar për trafikun horizontal (shërbim pas shërbimi) dhe një NGINX Plus Ingress Controller të integruar për trafikun vertical, të menaxhuar nga një plane kontrolli të vetme.

Plani i kontrollit është projektuar dhe optimizuar posaçërisht për planin e të dhënave NGINX Plus, përcakton rregullat për menaxhimin e trafikut, të shpërndara përmes sidecars NGINX Plus.

Në NSM, sidecars proxy vendosen për çdo shërbim në mesh. Ato ndërveprojnë me zgjidhje të tjera me burim të hapur:

  • Grafana, vizualizimi i parametrave tĂ« Prometheus, panelet e integruara NSM ju ndihmojnĂ« gjatĂ« punĂ«s;
  • Kubernetes Ingress Controllers, pĂ«r tĂ« menaxhuar trafikun e hyshĂ«m dhe dalĂ«s nĂ« mesh;
  • SPIRE, CA pĂ«r menaxhimin, shpĂ«rndarjen dhe pĂ«rditĂ«simin e certifikatave nĂ« mesh;
  • NATS, njĂ« sistem i shkallĂ«zueshĂ«m i dĂ«rgimit tĂ« mesazheve, pĂ«r shembull pĂ«r pĂ«rditĂ«simet e rrugĂ«ve, nga plani i kontrollit te sidecars;
  • Open Tracing, debuggimi i shpĂ«rndarĂ« (pĂ«rkrah Zipkin dhe Jaeger);
  • Prometheus, mbledhja dhe ruajtja e karakteristikave nga sidecars NGINX Plus, pĂ«r shembull numri i kĂ«rkesave, lidhjeve dhe SSL handshakes.

Funksionet dhe komponentët

NGINX Plus si plan të dhënash mbulon sidecar proxy (trafik horizontal) dhe Ingress controller (trafik vertical), duke kapur dhe menaxhuar trafikun e konteinerëve midis shërbimeve.

Funksionet përfshijnë:

  • Autentikimin e ndĂ«rsjellĂ« TLS (mTLS);
  • Balancimin e ngarkesĂ«s;
  • QĂ«ndrueshmĂ«rinĂ«;
  • Kufizimin e shpejtĂ«sisĂ«;
  • KĂ«putje cirku;
  • ShpĂ«rndarjet blu-grenĂ« dhe kanarinĂ«;
  • Kontrollin e aksesit.

Lançimi i NGINX Service Mesh

Për të lançuar NSM, nevojitet:

  • qasje nĂ« mjedisin Kubernetes. NGINX Service Mesh mbĂ«shtetet nĂ« shumĂ« platforma Kubernetes, duke pĂ«rfshirĂ« Amazon Elastic Container Service pĂ«r Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere dhe klasterĂ« tĂ« zakonshĂ«m Kubernetes, tĂ« shpĂ«rndara nĂ« serverĂ« "metalĂ«";
  • Mjeti kubectl, i instaluar nĂ« makinĂ« nga ku do tĂ« instalohet NSM;
  • Aksesi nĂ« paketat e lĂ«shimeve tĂ« NGINX Service Mesh. Paketa pĂ«rmban imazhe NSM, tĂ« nevojshme pĂ«r eksportimin nĂ« njĂ« registri tĂ« mbyllur pĂ«r kontejnerĂ«t, tĂ« disponueshme nĂ« klasterin Kubernetes. Paketa gjithashtu pĂ«rmban nginx-meshctl, tĂ« nevojshme pĂ«r zbĂ«rthimin e NSM.

Për të zbërthyer NSM me cilësimet e paracaktuara, ekzekutoni komandën e mëposhtme. Gjatë zbërthimit, do të shfaqen mesazhe për instalimin e suksesshëm të komponenteve dhe, në fund, një mesazh që tregon se NSM funksionon në një hapësirë të veçantë emërtimi (së pari duhet ta shkarkoni dhe ta vendosni në registrin e shën. e përkthyesit):

$ DOCKER_REGISTRY=regjistri-i-juaj-Docker ; 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}"
Krijuar hapësirën "nginx-mesh".
Krijuar SpiffeID CRD.
Duke pritur që pods të Spire të jenë duke funksionuar...përfunduar.
Zbatuar Spire.
Zbatuar serverin NATS.
Krijuar politikat e trafikut CRDs.
Zbatuar Mesh API.
Zbatuar Serverin e Metrics API.
Zbatuar serverin Prometheus nginx-mesh/prometheus-server.
Zbatuar Grafana nginx-mesh/grafana.
Zbatuar serverin e gjurmimit nginx-mesh/zipkin.
Të gjitha burimet janë krijuar. Duke testuar lidhjen me Serverin e Mesh API...

Lidhur me sukses me API-në NGINX Service Mesh.
NGINX Service Mesh është duke funksionuar.

Për parametra të tjerë, duke përfshirë cilësimet e avancuara, ekzekutoni këtë komandë:

$ nginx-meshctl deploy –h

Kontrolloni nëse plana e kontrollit po funksionon saktë në hapësirën e emërtimit nginx-mesh, mund ta kontrolloni kështu:

$ kubectl get pods –n nginx-mesh
EMRI                                  GATI   STATUS    RIKTHIME   MOSHA
grafana-6cc6958cd9-dccj6             1/1     Duke funksionuar   0          2d19h
mesh-api-6b95576c46-8npkb            1/1     Duke funksionuar   0          2d19h
nats-server-6d5c57f894-225qn         1/1     Duke funksionuar   0          2d19h
prometheus-server-65c95b788b-zkt95   1/1     Duke funksionuar   0          2d19h
smi-metrics-5986dfb8d5-q6gfj         1/1     Duke funksionuar   0          2d19h
spire-agent-5cf87                    1/1     Duke funksionuar   0          2d19h
spire-agent-rr2tt                    1/1     Duke funksionuar   0          2d19h
spire-agent-vwjbv                    1/1     Duke funksionuar   0          2d19h
spire-server-0                       2/2     Duke funksionuar   0          2d19h
zipkin-6f7cbf5467-ns6wc              1/1     Duke funksionuar   0          2d19h

Në varësi të parametrave të zbërthimit, të cilat vendosin politikat e injektimit manual ose automatik, proxy-t NGINX sidecars do të shtohen në aplikacione sipas parazgjedhjes. Për të çaktivizuar shtimin automatik, lexoni këtu

PĂ«r shembull, nĂ«se ne zbĂ«rthejmĂ« aplikacionin fjetje nĂ« hapĂ«sirĂ«n e emĂ«rtimit default, dhe pastaj kontrollojmĂ« Pod-in — do tĂ« shohim dy kontejnerĂ« tĂ« ekzekutuar, aplikacionin fjetje dhe sidecar-in pĂ«rkatĂ«s:

$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
EMRI                     GATI   STATUS    RIKTHIME   MOSHA
sleep-674f75ff4d-gxjf2   2/2     Duke funksionuar   0          5h23m

Gjithashtu, ne mund të ndjekim aplikacionin fjetje në panelin NGINX Plus, duke e ekzekutuar këtë komandë për të hyrë në sidecar nga makina juaj lokale:

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

Më pas thjesht hyjmë këtu në shfletues. Ju gjithashtu mund të lidheni me Prometheus për të ndjekur aplikacionin fjetje.

Ju mund të përdorni burime të veçanta Kubernetes për të konfiguruar politikat e trafikut, si për shembull kontrollin e aksesit, kufizimin e shpejtësisë dhe circuit breaking, për këtë shihni dokumentacion

Përfundim

NGINX Service Mesh është në dispozicion për shkarkim falas në portal F5. Provojeni në ambientet tuaja dev dhe test dhe na shkruani rreth rezultateve.

Për të provuar NGINX Plus Ingress Controller, aktivizoni periudhën provuese falas për 30 ditë, ose kontaktoni me ne për të diskutuar opsionet tuaja të përdorimit.

PĂ«rkthimi nga Pavel Demkovich, inxhinier i kompanisĂ« Southbridge. Administrimi i sistemeve pĂ«r 15 000 ₜ nĂ« muaj. Dhe si njĂ« njĂ«si e veçantĂ« — qendra e trajnimit Slurm, praktikĂ« dhe asgjĂ« tjetĂ«r veç praktikĂ«s.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster