Dispozitiv NGINX Service Mesh

Dispozitiv NGINX Service Mesh

Jemi të lumtur të paraqisim versionin paraprak NGINX Service Mesh (NSM), një service mesh e lehtë, e lidhur me plane të dhënash të bazuara në NGINX Plus për menaxhimin e trafikut të kontejnerëve në mjedise Kubernetes.

NSM mund tĂ« pĂ«rdoret falas shkarkoni kĂ«tu. ShpresojmĂ« qĂ« do ta provoni pĂ«r pĂ«rdorim nĂ« mjedise dev dhe testimi — dhe presim komentet tuaja nĂ« GitHub.

Zbatimi i metodologjisë së mikroshërbimeve përballohet me sfida me rritjen e shkallës së ofrimeve dhe kompleksitetin e tyre. Komunikimi midis shërbimeve bëhet më i komplikuar, problemet me debuggin bëhen më të vështira, gjithnjë e më shumë shërbime kërkojnë më shumë burime për t'u menaxhuar.

NSM zgjidh këto probleme, duke ju ofruar kryesisht:

  • Siguria, qĂ« tani Ă«shtĂ« mĂ« e rĂ«ndĂ«sishme se kurrĂ«. ShkĂ«putja e tĂ« dhĂ«nave mund tĂ« kushtojĂ« miliona dollarĂ« pĂ«r kompaninĂ« çdo vit nĂ« formĂ«n e humbjeve tĂ« tĂ« ardhurave dhe reputacionit. NSM siguron enkriptimin e tĂ« gjitha lidhjeve me mTLS — kĂ«shtu qĂ« tĂ« dhĂ«nat e ndjeshme, tĂ« cilat hakerĂ«t mund t'i vjedhin pĂ«rmes rrjetit, thjesht nuk ekzistojnĂ«. Kontrolli i aksesit ju lejon tĂ« vendosni politika se si shĂ«rbimet do tĂ« komunikojnĂ« me shĂ«rbime tĂ« tjera.
  • Menaxhimi i trafikut. Kur lĂ«shoni njĂ« version tĂ« ri tĂ« aplikacionit, ndoshta do tĂ« donit fillimisht tĂ« kufizoni trafikun hyrĂ«s pĂ«r tĂ« shmangur ndonjĂ« gabim. Me menaxhimin inteligjent tĂ« trafikut tĂ« kontejnerĂ«ve nga NSM, mund tĂ« vendosni njĂ« politikĂ« kufizimi tĂ« trafikut pĂ«r shĂ«rbime tĂ« reja, e cila do tĂ« rritet me kalimin e kohĂ«s. Veçori tĂ« tjera, si kufizimi i shpejtĂ«sisĂ« dhe rupturat, ju japin qasje tĂ« plotĂ« nĂ« menaxhimin e kalimit tĂ« trafikut pĂ«r tĂ« gjitha shĂ«rbimet tuaja.
  • Vizualizimi. Menaxhimi i mijĂ«ra shĂ«rbimeve mund tĂ« bĂ«het njĂ« makthe pĂ«r de-buggim dhe vizualizim. NSM ndihmon nĂ« pĂ«rballimin e kĂ«saj situate me njĂ« panel tĂ« integruar kontrolli Grafana, ku shfaqen tĂ« gjitha karakteristikat e disponueshme nĂ« NGINX Plus. Po ashtu, Open Tracing e integruar lejon ndjekjen e detajuar tĂ« transaksioneve.
  • DĂ«rgesat hibride, nĂ«se kompanisĂ« suaj, ashtu si shumicĂ«s sĂ« tĂ« tjerave, nuk i shĂ«rben njĂ« infrastrukturĂ« e plotĂ« e nisur nĂ« Kubernetes. NSM siguron qĂ« aplikacionet e vjetra tĂ« mos mbeten jashtĂ« mbikĂ«qyrjes. Me ndihmĂ«n e NGINX Kubernetes Ingress Controller tĂ« integruar, shĂ«rbimet e vjetra do tĂ« mund tĂ« lidhen me shĂ«rbime mesh, dhe anasjelltas.

NSM gjithashtu siguron sigurinë e aplikacioneve në mjedise me besim zero, duke aplikuar në mënyrë transparente kriptimin dhe autentifikimin e trafikut të kontejnerëve. Ai gjithashtu ofron mundësinë për monitorim dhe analizë të transaksioneve, duke ndihmuar në lançimin e shpejtë dhe të saktë të shpërndarjeve dhe zgjidhjen e problemeve. Për më tepër, siguron kontroll të detajuar të trafikut, duke lejuar ekipet DevOps të shpërndajnë dhe optimizojnë pjesët e aplikacioneve, duke i mundësuar gjithashtu zhvilluesve të krijojnë dhe të lidhen lehtësisht me 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 (nga shërbimi në shërbim) dhe një NGINX Plus Ingress Controller të integruar për trafik vertikal, të menaxhuar nga një avion kontrolli të vetëm.

Avioni i kontrollit është projektuar dhe optimizuar veçanërisht për NGINX Plus të dhënat, përcakton rregulla të menaxhimit të trafikut, të shpërndara në sidecarët NGINX Plus.

Në NSM, proxy-t e sidecar vendosen për çdo shërbim në mesh. Ato ndërveprojnë me zgjidhjet e mëposhtme me burim të hapur:

  • Grafana, vizualizimi i parametrave tĂ« Prometheus, paneli i integruar NSM ju ndihmon gjatĂ« punĂ«s;
  • Kubernetes Ingress Controllers, pĂ«r menaxhimin e trafikut tĂ« ardhshĂ«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 pĂ«r dĂ«rgimin e mesazheve, si pĂ«r shembull pĂ«rditĂ«simet e rrugĂ«ve, nga avioni i kontrollit te sidecars;
  • Open Tracing, debugging i shpĂ«rndarĂ« (mbĂ«shteten Zipkin dhe Jaeger);
  • Prometheus, mbledhja dhe ruajtja e karakteristikave nga sidecarĂ«t NGINX Plus, si numri i kĂ«rkesave, lidhjeve dhe SSL handshakes.

Funksionet dhe komponentët

NGINX Plus si një plane të dhënash mbulon proxy-t e sidecar (trafiku horizontal) dhe kontrolluesin Ingress (trafik vertikal), duke kapur dhe menaxhuar trafikun e kontejnerëve ndërmjet shërbimeve.

Funksionet përfshijnë:

  • Autentikimin e ndĂ«rsjellĂ« TLS (mTLS);
  • Balancimin e ngarkesĂ«s;
  • QĂ«ndrueshmĂ«ri;
  • Kufizimin e shpejtĂ«sisĂ«;
  • Thyerje qarku;
  • ShpĂ«rndarje tĂ« gjelbĂ«r e blu dhe kanarinĂ«;
  • Kontrollin e qasjes.

Lëshimi i NGINX Service Mesh

Për të nisur NSM, ju nevojitet:

  • qĂ«llimi i aksesit nĂ« ambientin Kubernetes. NGINX Service Mesh mbĂ«shtetet nĂ« shumĂ« platforma Kubernetes, duke pĂ«rfshirĂ« ShĂ«rbimin Elastic Container tĂ« Amazon pĂ«r Kubernetes (EKS), ShĂ«rbimin Kubernetes tĂ« Azure (AKS), Motorin Kubernetes tĂ« Google (GKE), VMware vSphere dhe klastrat e zakonshĂ«m Kubernetes tĂ« instaluar nĂ« servera fizikĂ«;
  • Instrument kubectl, i instaluar nĂ« makinĂ«n nga ku do tĂ« vendoset NSM;
  • Qasja nĂ« paketat e lĂ«shimeve NGINX Service Mesh. NĂ« paketĂ« ka imazhe NSM, tĂ« nevojshme pĂ«r ngarkimin nĂ« njĂ« regjistrim tĂ« mbyllur pĂ«r kontejnerĂ«t, i aksesueshĂ«m nĂ« klasterin Kubernetes. Paketa gjithashtu pĂ«rmban nginx-meshctl, e nevojshme pĂ«r zhvillimin e NSM.

Për të zbatuar NSM me konfigurimet e paracaktuara, filloni komandën e mëposhtme. Gjatë zbatimit, do të shfaqen mesazhe për instalimin e suksesshëm të komponenteve dhe, përfundimisht, një mesazh që NSM funksionon në një hapësirë emri të veçantë (në fillim, duhet të krijohet ajo) shkarko dhe vendosni në registry, shënim i përkthyesit):

$ 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}"
Krijo hapësirën e emrit "nginx-mesh".
Krijo SpiffeID CRD.
Po presim që pod-et Spire të funksionojnë... përfunduar.
Instaluar Spire.
Instaluar serverin NATS.
Krijo politikat e trafikut CRDs.
Instaluar Mesh API.
Instaluar Serverin e Metrics API.
Instaluar Serverin Prometheus nginx-mesh/prometheus-server.
Instaluar Grafana nginx-mesh/grafana.
Instaluar serverin e gjurmimit nginx-mesh/zipkin.
Të gjitha burimet janë krijuar. Duke testuar lidhjen me Serverin e Mesh API...

Lidhur me NGINX Service Mesh API me sukses.
NGINX Service Mesh po funksionon.

Për të marrë informacione shtesë, duke përfshirë cilësimet e avancuara, filloni këtë komandë:

$ nginx-meshctl deploy –h

Kontrolloni që avioni i kontrollit të funksionojë siç duhet në hapësirën e emrit nginx-mesh, mund ta bëni kështu:

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

Në varësi të cilësimeve të zbatimit që vendosin politikat e injektimit manual ose automatike, NGINX sidecar do të shtohet automatikisht në aplikacione. Për ta çaktivizuar këtë, shikoni këtu

PĂ«r shembull, nĂ«se zbatojmĂ« aplikacionin gjumĂ« nĂ« hapĂ«sirĂ«n e emrave default, dhe mĂ« pas kontrollojmĂ« Pod-in — do tĂ« shohim dy kontejnerĂ« tĂ« aktivizuar, aplikacionin gjumĂ« dhe sidecar-in e lidhur me tĂ«:

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

Gjithashtu mund të monitorojmë aplikacionin gjumë në panelin NGINX Plus, duke ekzekutuar këtë komandë për t'u lidhur me sidecar nga makina juaj lokale:

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

Më pas thjesht bëni hyrje . Kërkesat e dërguara përmes mënyrave të tjera nuk do të shqyrtohen. në shfletues. Mund të lidheni edhe me Prometheus për të monitoruar aplikacionin gjumë.

Mund të përdorni burime të veçanta Kubernetes për të konfiguruar politikat e trafikut, si kontrolli i aksesit, kufizimi i shpejtësisë dhe ndërprerja e qarkut, për këtë shihni dokumentacioni

Përfundimi

NGINX Service Mesh është në dispozit prim të lira për shkarkim në portalin F5. Provojeni atë në ambientet tuaja dev dhe test dhe na informoni për rezultatet.

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

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

Burimi: habr.com

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