
Meil on hea meel tutvustada eelversiooni (NSM), kerge service mesh, mis kasutab NGINX Plusi pÔhinevat andmeplaani konteinerite liikluse haldamiseks Kubernetes keskkondades.
NSM-i saab tasuta . Loodame, et proovite seda dev ja test keskkondades â ja ootame teie tagasisidet .
Mikroteenuste rakendamine on seotud vĂ€ljakutsetega tarnete suurendamisel ja keerukuse kasvu tĂ”ttu. Teenuste vaheline suhtlus on keerulisem, silumisprobleemid muutuvad raskemaks ning ĂŒha rohkem teenuseid nĂ”uab suuremaid ressursse haldamiseks.
NSM lahendab need probleemid, pakkudes teile eelkÔige:
- Turvalisus, mis on nĂŒĂŒd olulisem kui kunagi varem. Andmelekke tagajĂ€rjed vĂ”ivad maksma minna ettevĂ”tetele miljoneid dollareid aastas tulu ja reputatsiooni kaotuse nĂ€ol. NSM tagab kĂ”ikide ĂŒhenduste krĂŒpteerimise mTLS-iga â nii et tundlikke andmeid, mida hĂ€kkerid vĂ”isid ĂŒle vĂ”rgu varastada, pole lihtsalt olemas. JuurdepÀÀsukontroll vĂ”imaldab teil mÀÀrata poliitikad, kuidas teenused omavahel suhtlevad.
- Liikluse haldamine. Uue rakenduse versiooni vĂ€ljaandmisel vĂ”iksite alguses piirata selle sisenemist liiklust, et vĂ€ltida vĂ”imalikke vigu. NSM-i arukate konteinerite liikluse halduse abil saate mÀÀrata liikumise piirangute poliitika uutele teenustele, mis suurendab liiklust ajas. Muud funktsioonid, nagu kiiruspiirangud ja circuit breakers, annavad teile tĂ€ieliku kontrolli kĂ”ikide teie teenuste liikluse haldamise ĂŒle.
- Visualiseerimine. Tuhandete teenuste haldamine vÔib olla silumis- ja visualiseerimisÔudus. NSM aitab sellises olukorras integreeritud Grafana juhtpaneeli abil, kus kuvatakse kÔik NGINX Plusi saadaval olevad omadused. Samuti vÔimaldab sisse ehitatud Open Tracing pÔhjalikult jÀlgida tehingute kulgu.
- HĂŒbriidtarned, kui teie ettevĂ”te, nagu enamik teisi, ei kasuta tĂ€ielikult Kubernetesel pĂ”hinevat infrastruktuuri. NSM tagab, et vanad rakendused ei jÀÀ tĂ€helepanuta. Sisse ehitatud NGINX Kubernetes Ingress Controller vĂ”imaldab vanadel teenustel suhelda mesh teenustega ja vastupidi.
NSM tagab ka rakenduste turvalisust null usaldusvÀÀrsuse keskkondades, rakendades lĂ€bipaistvalt konteinerite liikluse krĂŒpteerimist ja autentimist. Samuti vĂ”imaldab see tehingute jĂ€lgimist ja analĂŒĂŒsi, aidates kiiresti ja tĂ€pselt kĂ€ivitada juurutusi ning lahendada probleeme. Lisaks tagab see pĂ”hjaliku liikluse kontrolli, vĂ”imaldades DevOpsi meeskondadel juurutada ja optimeerida rakenduste osi, samas andes arendajatele vĂ”imaluse luua ja kergesti ĂŒhendada nende hajutatud rakendusi.
Kuidas töötab NGINX Service Mesh?
NSM koosneb integreeritud andmeplaadist horisontaalse (teenus-teenusele) liikluse jaoks ja integreeritud NGINX Plus Ingress Controller'ist vertikaalse liikluse jaoks, mida juhib ĂŒhine juhtplaan.
Juhtplaan on spetsiaalselt loodud ja optimeeritud NGINX Plus andmeplaandi jaoks, mÀÀrates liikluse juhtimise reeglid, mis on jaotatud NGINX Plus sidecar'ide vahel.
NSM sidecar'id paigaldatakse igale teenusele mesh'is. Need suhtlevad jÀrgmiste avatud lÀhtekoodiga lahendustega:
- Grafana, Prometheuse parameetrite visualiseerimine, sisseehitatud NSM paneel aitab teil töötada;
- Kubernetes Ingress Controller'id, et hallata sisenevat ja vÀljaminevat liiklust mesh'is;
- SPIRE, CA sertifikaatide haldamiseks, jagamiseks ja uuendamiseks mesh'is;
- NATS, skaleeritav sĂ”numite saatmise sĂŒsteem, nĂ€iteks marsruutide uuendused, juhtplaanist sidecar'ideni;
- Open Tracing, hajutatud silumine (toetatakse Zipkini ja Jaegerit);
- Prometheus, NGINX Plus sidecar'idelt parameetrite kogumine ja talletamine, nĂ€iteks pĂ€ringute arvu, ĂŒhenduste ja SSL-i kĂ€epigistuste arv.
Funktsioonid ja komponendid
NGINX Plus andmeplaana katab sidecar proxy (horisontaalne liiklus) ja Ingress controller (vertikaalne), katab ja haldab konteinerite liiklust teenuste vahel.
Funktsioonid hÔlmavad:
- TLS-i vastastikune autentimine (mTLS);
- Laadimise tasakaalustamine;
- Veakindlus;
- Kiiruspiiramine;
- Circuit breaking;
- Sinine-roheline ja kanarjane juurutamine;
- Juhtimise kontroll.
NGINX Service Mesh'i kÀivitamine
NSM-i kÀivitamiseks on vajalik:
- LigipÀÀs Kubernetes'i keskkonnale. NGINX Service Mesh'i toetatakse paljudel Kubernetes'i platvormidel, sealhulgas Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere ja tavapÀrastes Kubernetes'i klastrites, mis on juurutatud "raudserveritel";
- Tööriist
kubectl, paigaldatud masinas, kust NSM paigaldatakse; - PÀÀs NGINX Service Meshi vÀljaandepakettidesse. Pakett sisaldab NSM-i pilte, mida on vaja konteinerite privaatregistrisse laadimiseks, mis on saadaval Kubernetesi klastris. Pakett sisaldab ka
nginx-meshctl, mis on vajalik NSM-i juurutamiseks.
NSM-i juurutamiseks vaikeseadetega kÀivitage jÀrgmine kÀsk. Juurutamise ajal kuvatakse sÔnumeid komponentide eduka installimise kohta ja lÔpuks on sÔnum, et NSM töötab eraldi nimede ruumis (alguseks tuleb see ja laadida registrisse, tÔlkija mÀrkus):
$ 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}"
Loodud nimede ruum "nginx-mesh".
Loodud SpiffeID CRD.
Ootame, kuni Spire'i podid on töötavad...valmis.
Juurutatud Spire.
Juurutatud NATS server.
Loodud liikluspoliitika CRD-d.
Juurutatud Mesh API.
Juurutatud Metrics API Server.
Juurutatud Prometheus Server nginx-mesh\/prometheus-server.
Juurutatud Grafana nginx-mesh\/grafana.
Juurutatud jÀlgimisserver nginx-mesh\/zipkin.
KĂ”ik ressursid loodud. Testime ĂŒhendust Service Mesh API Serveriga...
Ăhendatud NGINX Service Mesh API-ga edukalt.
NGINX Service Mesh töötab.TÀpsemate parameetrite, sealhulgas laiendatud seadistuste saamiseks kÀivitage see kÀsk:
$ nginx-meshctl deploy âhKontrollige, et juhtimislennuk töötab korrektselt nimede ruumis nginx-mesh, saate seda teha:
$ kubectl get pods ân nginx-mesh
NIMI VALMIS SEISUND UUENDUSED VANUS
grafana-6cc6958cd9-dccj6 1\/1 Töötav 0 2d19h
mesh-api-6b95576c46-8npkb 1\/1 Töötav 0 2d19h
nats-server-6d5c57f894-225qn 1\/1 Töötav 0 2d19h
prometheus-server-65c95b788b-zkt95 1\/1 Töötav 0 2d19h
smi-metrics-5986dfb8d5-q6gfj 1\/1 Töötav 0 2d19h
spire-agent-5cf87 1\/1 Töötav 0 2d19h
spire-agent-rr2tt 1\/1 Töötav 0 2d19h
spire-agent-vwjbv 1\/1 Töötav 0 2d19h
spire-server-0 2\/2 Töötav 0 2d19h
zipkin-6f7cbf5467-ns6wc 1\/1 Töötav 0 2d19hSĂ”ltuvalt juurutusparameetritest, mis seadistavad kĂ€sitsi vĂ”i automaatse sĂŒstimise poliitikaid, lisatakse NGINX-i sidecar'id rakendustele vaikimisi. Automaatse lisamise keelamiseks lugege
NĂ€iteks kui me juurutame rakenduse sleep nimede ruumis SeejĂ€rel kĂ€ivitame exec kĂ€su ja ootame 5000 sekundit, et jĂ€tkata jĂ€lgimist:, ja siis kontrollime Pod'i â nĂ€eme kahte töötavat konteinerit, rakenduse sleep ja sellega seotud sidecar'i:
$ kubectl apply âf sleep.yaml
$ kubectl get pods ân default
NIMI VALMIS SEISUND UUENDUSED VANUS
sleep-674f75ff4d-gxjf2 2\/2 Töötav 0 5h23mSamuti saame jÀlgida rakendust sleep NGINX Plus paneelil, kÀivitades selle kÀsu, et saada juurdepÀÀs sidecar'ile oma lokaalsest masinast:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886SeejĂ€rel lihtsalt avame brauseris. Samuti saate ĂŒhendada Prometheus'ega, et jĂ€lgida rakendust sleep.
Saate kasutada eraldi Kubernetes'i ressursse liiklussuunamisreeglite seadistamiseks, nÀiteks juurdepÀÀsu kontrollimiseks, kiiruspiiramiseks ja circuit breaking'iks. Selle jaoks vaadake
KokkuvÔte
NGINX Service Mesh on tasuta allalaadimiseks saadaval . Proovige seda oma dev ja test keskkondades ning .
NGINX Plus Ingress Controller'i proovimiseks aktiveerige 30 pÀevaks vÔi oma kasutusvÔimaluste arutamiseks.
TĂ”lke autoriks on Pavel Demkovich, ettevĂ”tte insener . SĂŒsteemihaldus 15 000 ✠kuus. Ja eraldi ĂŒksusena â koolitus- ja praktiline keskus , praktika ja mitte midagi muud kui praktika.
Allikas: habr.com
