
Jemi të lumtur të paraqisim versionin paraprak (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 . ShpresojmĂ« qĂ« do ta provoni pĂ«r pĂ«rdorim nĂ« mjedise dev dhe testimi â dhe presim komentet tuaja .
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) 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 âhKontrolloni 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 2d19hNë 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
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 5h23mGjithashtu 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:8886Më pas thjesht bëni hyrje 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
Përfundimi
NGINX Service Mesh është në dispozit prim të lira për shkarkim në . Provojeni atë 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 mundësitë tuaja të përdorimit.
PĂ«rktimi nga Pavel Demkovich, inxhinier i kompanisĂ« . Administrimi i sistemeve pĂ«r 15 000 ✠nĂ« muaj. Dhe si njĂ« njĂ«si tĂ« veçantĂ« â qendra e trajnimit , praktikĂ« dhe asgjĂ« tjetĂ«r pĂ«rveç praktikĂ«s.
Burimi: habr.com
