
Mēs ar prieku prezentējam beta versiju (NSM), viegla service mesh, kas izmanto NGINX Plus balstītu datu plakni trafika pārvaldībai konteineros Kubernetes vidē.
NSM var bez maksas . Mēs ceram, ka jūs to izmēģināsiet dev un testēšanas vidēs — un gaidām jūsu atsauksmes .
Mikroservisu metodoloģijas ieviešana ir saistīta ar grūtībām palielinot piegādes apjomu un to sarežģītību. Saziņa starp pakalpojumiem kļūst sarežģītāka, kļūst grūtāk novērst kļūdas, un arvien vairāk pakalpojumu prasa vairāk resursu pārvaldībai.
NSM risina šīs problēmas, piedāvājot jums galvenokārt:
- Drošība, kas šobrīd ir svarīgāka nekā jebkad. Datu noplūde var izmaksāt uzņēmumam miljonus dolāru katru gadu zaudēto ienākumu un reputācijas dēļ. NSM nodrošina visu savienojumu šifrēšanu, izmantojot mTLS — tāpēc nav sensitīvu datu, kurus hakeri varētu nozagt tīklā. Pieejas kontrole ļauj jums noteikt politikas, kā pakalpojumi sazinās ar citiem pakalpojumiem.
- Trafika pārvaldība. Ieviešot jaunu programmatūras versiju, jūs varat vēlēties vispirms ierobežot ienākošo trafiku, lai izvairītos no kļūdām. Izmantojot NSM intelektuālo konteineru trafika pārvaldību, jūs varat noteikt trafika ierobežošanas politiku jaunajiem pakalpojumiem, kas pakāpeniski palielinās trafiku laikam ejot. Citas funkcijas, piemēram, ātruma ierobežošana un circuit breakers, dod jums pilnīgu piekļuvi visiem jūsu pakalpojumiem.
- Vizualizācija. Tūkstošu pakalpojumu pārvaldība var būt liela ķēpa, ja runa ir par novēršanu un vizualizāciju. NSM palīdz tikt galā ar šādām situācijām, izmantojot iebūvēto Grafana paneli, kurā tiek parādīti visi rādītāji, kas pieejami NGINX Plus. Tāpat iebūvētā Open Tracing ļauj detalizēti izsekot transakcijām.
- Hibrīdās piegādes, ja jūsu uzņēmums, tāpat kā lielākā daļa citu, neizmanto infrastruktūru, kas pilnībā balstīta uz Kubernetes. NSM nodrošina, ka vecās lietojumprogrammas netiks aizmirstas. Ar iebūvēto NGINX Kubernetes Ingress Controller vecie pakalpojumi varēs sazināties ar mesh pakalpojumiem un otrādi.
NSM arī nodrošina lietojumprogrammu drošību bez uzticības vidēs, caurspīdīgi piemērojot šifrēšanu un konteineru trafika autentifikāciju. Tas arī nodrošina transakciju novērošanu un analīzi, palīdzot ātri un precīzi izvietot un novērst problēmas. Turklāt tiek nodrošināta detalizēta trafika kontrole, ļaujot DevOps komandām izvietot un optimizēt lietojumprogrammu daļas, vienlaikus dodot izstrādātājiem iespēju izveidot un viegli savienot savus izplatītos lietojumus.
Kā darbojas NGINX Service Mesh?
NSM sastāv no apvienota datu loka horizontālajam (pakalpojums-pakalpojumam) trafikam un iebūvēta NGINX Plus Ingress Controller vertikālajam, ko pārvalda vienots kontrolējošais plāns.
Kontrolējošais plāns ir īpaši izstrādāts un optimizēts NGINX Plus datu lomam, nosakot trafika pārvaldības noteikumus, kas izdalīti pa NGINX Plus sānu proxy.
NSM sānu proxy tiek uzstādīti katram pakalpojumam tīklā. Tie sadarbojas ar šiem atvērta koda risinājumiem:
- Grafana, Prometheus parametru vizualizācija, iebūvēta NSM paneļa izmantošana palīdz jums darbā;
- Kubernetes Ingress Controllers, lai pārvaldītu ienākošo un izejošo trafiku tīklā;
- SPIRE, CA sertifikātu pārvaldīšanai, izplatīšanai un atjaunināšanai tīklā;
- NATS, mērogojama ziņojumu sūtīšanas sistēma, piemēram, maršrutu atjaunināšana no kontrolējošā plāna uz sānu proxy;
- Open Tracing, izplatīta atkļūdošana (atbalsta Zipkin un Jaeger);
- Prometheus, raksturojumu vākšana un uzglabāšana no NGINX Plus sānu proxy, piemēram, pieprasījumu skaits, savienojumi un SSL rokas spiedieni.
Funkcijas un komponenti
NGINX Plus kā datu plāns aptver sānu proxy (horizontālais trafiks) un Ingress controller (vertikālais), pārņemot un pārvaldot konteineru trafiku starp pakalpojumiem.
Funkcijas ietver:
- Savstarpējo TLS autentifikāciju (mTLS);
- Slodzes balansēšanu;
- Noturība;
- Ātruma ierobežošanu;
- Cirku laušana;
- Zilo-zaļo un kanāru izvietošanas;
- Piekļuves kontroli.
NGINX Service Mesh palaišana
Lai palaistu NSM, ir nepieciešams:
- pieeja Kubernetes videi. NGINX Service Mesh tiek atbalstīts daudzās Kubernetes platformās, tostarp Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere un parastajos Kubernetes klasteros, kas izvietoti uz "dzelzs" serveriem;
- Rīks
kubectl, uzstādītam mašīnā, no kuras tiks uzstādīts NSM; - Piekļuve NGINX Service Mesh laidienu pakotnēm. Pakotnē ir NSM tēli, kas nepieciešami augšupielādei slēgtā reģistrā, kas pieejama Kubernetes klasterī. Pakotne arī satur
nginx-meshctl, kas nepieciešams NSM izvietošanai.
Lai izvietotu NSM ar noklusējuma iestatījumiem, izpildiet sekojošo komandu. Izvietošanas laikā tiek parādīti ziņojumi par veiksmīgu komponentu instalāciju un, visbeidzot, ziņojums par to, ka NSM darbojas atsevišķā nosaukumu telpā (vispirms to jā un jāievieto reģistrā, piezīme tulkotājam):
$ 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}"
Izveidota nosaukumu telpa "nginx-mesh".
Izveidota SpiffeID CRD.
Gaidām, lai Spire pods darbotos...pabeigts.
Izvietots Spire.
Izvietots NATS serveris.
Izveidotas satiksmes politiku CRD.
Izvietots Mesh API.
Izvietots Metrics API serveris.
Izvietots Prometheus serveris nginx-mesh\/prometheus-server.
Izvietots Grafana nginx-mesh\/grafana.
Izvietots izsekošanas serveris nginx-mesh\/zipkin.
Visi resursi ir izveidoti. Pārbaude, vai ir savienojums ar Service Mesh API serveri...
Sekmīgi izveidots savienojums ar NGINX Service Mesh API.
NGINX Service Mesh darbojas.Lai iegūtu papildu parametrus, tostarp paplašinātus iestatījumus, izpildiet šo komandu:
$ nginx-meshctl deploy –hPārbaudīt, vai kontrolējošā plāksne darbojas pareizi nosaukumu telpā nginx-mesh, var izdarīt šādi:
$ kubectl get pods –n nginx-mesh
NOSAUKUMS GATAVS STĀVOKLIS PĀRSTARTI VECUMS
grafana-6cc6958cd9-dccj6 1\/1 Darbojas 0 2d19h
mesh-api-6b95576c46-8npkb 1\/1 Darbojas 0 2d19h
nats-server-6d5c57f894-225qn 1\/1 Darbojas 0 2d19h
prometheus-server-65c95b788b-zkt95 1\/1 Darbojas 0 2d19h
smi-metrics-5986dfb8d5-q6gfj 1\/1 Darbojas 0 2d19h
spire-agent-5cf87 1\/1 Darbojas 0 2d19h
spire-agent-rr2tt 1\/1 Darbojas 0 2d19h
spire-agent-vwjbv 1\/1 Darbojas 0 2d19h
spire-server-0 2\/2 Darbojas 0 2d19h
zipkin-6f7cbf5467-ns6wc 1\/1 Darbojas 0 2d19hAtkarībā no izvietošanas parametriem, kas nosaka manuālā vai automātiskā injekcijas politiku, NGINX sidecar proksi tiks pievienoti lietotnēm pēc noklusējuma. Lai atslēgtu automātisko pievienošanu, lasiet
Piemēram, ja mēs izvietojam lietotni sleep database default, tad pārbaudot Pod, redzēsim divus darbojošos konteinerus, lietotni sleep un saistīto sidecar:
$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NOSAUKUMS GATAVS STĀVOKLIS PĀRSTARTI VECUMS
sleep-674f75ff4d-gxjf2 2\/2 Darbojas 0 5h23mMēs arī varam sekot līdzi lietotnei sleep NGINX Plus panelī, izpildot šādu komandu, lai piekļūtu sidecar no jūsu lokālās mašīnas:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886Tad vienkārši ieejam pārlūkā. Jūs arī varat savienoties ar Prometheus, lai uzraudzītu lietojumprogrammu sleep.
Jūs varat izmantot atsevišķus Kubernetes resursus, lai konfigurētu satiksmes politikas, piemēram, piekļuves kontroli, ātruma ierobežošanu un circuit breaking; skatiet to
Secinājums
NGINX Service Mesh ir pieejams bez maksas lejupielādei . Izmēģiniet to savos izstrādes un testēšanas vidēs un .
Lai izmēģinātu NGINX Plus Ingress Controller, aktivizējiet uz 30 dienām vai diskusijai par jūsu pielietojuma iespējām.
Tulkojums Pavel Demkoviča, uzņēmuma inženiera, autorība. . Sistēmu administrēšana par 15 000 ₽ mēnesī. Un kā atsevišķa nodaļa — mācību centrs , prakse un nekas, izņemot praksi.
Avots: habr.com
