
Ne jemi të lumtur të prezantojmë versionin e parë (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Ă« . ShpresojmĂ« qĂ« do ta provoni pĂ«r pĂ«rdorim nĂ« zhvillim dhe testim â dhe presim feedback-un tuaj .
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 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 âhKontrolloni 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 2d19hNë 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
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 5h23mGjithashtu, 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:8886Më pas thjesht hyjmë 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
Përfundim
NGINX Service Mesh është në dispozicion për shkarkim falas në . Provojeni në ambientet tuaja dev dhe test dhe .
Për të provuar NGINX Plus Ingress Controller, aktivizoni për 30 ditë, ose për të diskutuar opsionet tuaja të përdorimit.
PĂ«rkthimi nga Pavel Demkovich, inxhinier i kompanisĂ« . Administrimi i sistemeve pĂ«r 15 000 ✠nĂ« muaj. Dhe si njĂ« njĂ«si e veçantĂ« â qendra e trajnimit , praktikĂ« dhe asgjĂ« tjetĂ«r veç praktikĂ«s.
Burimi: habr.com
