NGINX Service Mesh on saadaval

NGINX Service Mesh on saadaval

Meil on hea meel tutvustada eelversiooni NGINX Service Mesh (NSM), kergekaaluline teenuse mesh, mis kasutab NGINX Plusi andmeplaani konteinerite liikluse haldamiseks Kubernetes'i keskkondades.

NSM on tasuta saadaval siit alla laadida. Loodame, et proovite seda kasutada arendus- ja testkeskkondades — ning ootame teie tagasisidet. GitHub'is.

Mikroteenuste metodoloogia juurutamine toob endaga kaasa väljakutseid, kui tarnimine laieneb ja muutub keerulisemaks. Teenuste vaheline suhtlus muutub keerulisemaks, tõrkeotsinguga on raskem toime tulla, järjest rohkem teenuseid nõuab rohkem ressursse haldamiseks.

NSM lahendab need probleemid, pakkudes teile eelkõige:

  • Ohutus, mis on nüüd olulisem kui kunagi varem. Andmeleke võib maksta ettevõttele iga-aastaselt miljoneid dollareid tulude ja maine kaotamise näol. NSM tagab kõigi ühenduste krüpteerimise mTLS abil – seega ei ole tundlikke andmeid, mida häkkerid võiksite veebis varastada. Juurdepääsukontroll võimaldab teil määrata poliitikad, kuidas teenused omavahel suhtlevad.
  • Liiklustugevdus. Uue rakenduse versiooni tarnimisel võiksite alguses piirata selle sissetulevat liiklust võimalike vigade vältimiseks. NSM-i konteinerite nutikas liikluse haldamine võimaldab teil määrata liikluse piiramisreeglid uutele teenustele, mis kasvavad aja jooksul. Teised funktsioonid, nagu kiiruspiirang ja circuit breakers, annavad teile täieliku kontrolli liikluse haldamise üle kõigi teie teenuste jaoks.
  • Visualiseerimine. Tuhandeid teenuseid haldamine võib olla tõeliselt keeruline vigade otsimise ja visualiseerimise osas. NSM aitab sellistes olukordades, pakkudes sisseehitatud Grafana juhtpaneeli, kus kuvatakse kõik NGINX Plusi omadused. Samuti on integreeritud Open Tracing, mis võimaldab detailset jälgimist tehingute üle.
  • Hübriidset tarnimist, kui teie ettevõte, nagu enamik teisi, ei kasuta täielikult Kubernetesel põhinevat infrastruktuuri. NSM tagab, et vanad rakendused ei jää tähelepanuta. NGINX Kubernetes Ingress Controller-i integreerimisega saavad vanad teenused suhelda mesh-teenustega ja vastupidi.

NSM tagab ka rakenduste turvalisuse nullusalduslike keskkondade hulgas, rakendades läbipaistvalt krüpteerimist ja konteinerite liikluse autentimist. Samuti võimaldab see jälgida ja analüüsida tehinguid, aidates kiiresti ja täpselt käivitada juurutusi ja lahendada probleeme. Lisaks pakub see detailset liikluse kontrolli, võimaldades DevOps meeskondadel juurutada ja optimeerida rakenduste komponente, samal ajal võimaldades arendajatel luua ja hõlpsasti ühendada jaotatud rakendusi.

Kuidas on üles ehitatud NGINX Service Mesh?

NSM koosneb ühendatud andmeplaanist horisontaalse (teenus-teenusele) liikluse jaoks ja integreeritud NGINX Plus sissepääsu kontrollereist vertikaalse liikluse jaoks, mis on hallatud ühise kontrollplaani kaudu.

Kontrollplaan on spetsiaalselt loodud ja optimeeritud NGINX Plus andmeplaani jaoks, määratleb liikluse juhtimise reeglid, mis on jaotatud NGINX Plus sidecaride vahel.

NSM sidecarid on paigaldatud iga teenuse jaoks mesh-is. Need suhtlevad järgmiste avatud lähtekoodiga lahendustega:

  • Grafana, Prometheuse parameetrite visualiseerimine, sisseehitatud NSM armatuurlauad aitavad teid töös;
  • Kubernetes Ingress Controllers, sissetuleva ja väljaminev liiklus mesh-i haldamiseks;
  • SPIRE, CA sertifikaatide haldamiseks, levitamiseks ja värskendamiseks mesh-is;
  • NATS, skaleeritav sõnumite edastamise süsteem, näiteks marsruutide värskendused control plane'ist sidecar'ide juurde;
  • Open Tracing, jaotatud häireraport (toetatakse Zipkini ja Jaeger'i);
  • Prometheus, omaduste kogumine ja salvestamine NGINX Plus sidecar'idelt, näiteks päringute arv, ühendused ja SSL handshake'id.

Funktsioonid ja komponendid

NGINX Plus andmeplaanina katab sidecar proxy (horisontaalne liiklus) ja Ingress controller (vertikaalne), edastades ja hallates konteinerite liiklust teenuste vahel.

Funktsioonid hõlmavad:

  • TLS (mTLS) üksteise autentimist;
  • Koormuse tasandamine;
  • Vea taluvus;
  • Kiiruspiirang;
  • Circuit breaking;
  • Sinine-roheline ja kanarbiku juurutamine;
  • Juurdepääsukontroll.

NGINX Service Meshi käivitamine

NGINX Service Meshi käivitamiseks on vajalik:

  • juurdepääs Kubernetes'i keskkonnale. NGINX Service Mesh on toetatud mitmetes Kubernetes platvormides, sealhulgas Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere ja tavalised Kubernetes klastrid, mis on juurutatud "rauda" serverites;
  • Tööriista kubectl, installeeritud masinasse, kust NSM paigaldatakse;
  • Juurdepääs NGINX Service Meshi väljaannete pakettidele. Paketis on NSMi pildid, mida on vaja konteinerite suletud registry jaoks, mis on saadaval Kubernetes'i klastris. Pakett sisaldab ka nginx-meshctl, mis on vajalik NSM-i juurutamiseks.

NSM-i juurutamiseks vaikeseadistustega käivitage järgmine käsk. Juurutamise ajal kuvatakse sõnumid komponentide eduka installimise kohta ja lõpuks sõnum, et NSM töötab eraldi nimede ruumis (esialgu tuleb see lae alla ja paigutada registry, tõlkija märk.):

$ 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 Spire'i podide töötamist... tehtud.
Asetatud Spire.
Asetatud NATS server.
Loodud liiklusreeglite CRD-d.
Asetatud Mesh API.
Asetatud Metrics API Server.
Asetatud Prometheus Server nginx-mesh/prometheus-server.
Asetatud Grafana nginx-mesh/grafana.
Asetatud 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 seadete, sealhulgas laiendatud seadete saamiseks käivitage see käsk:

$ nginx-meshctl deploy –h

Kontrollige, et kontrolltase töötab korrektselt nimepindades nginx-mesh, seda saab teha nii:

$ kubectl get pods –n nginx-mesh
NIMI                                VALMIS   OLEK      KORDUSED   VANUS
grafana-6cc6958cd9-dccj6             1/1     Töötamine  0          2d19h
mesh-api-6b95576c46-8npkb            1/1     Töötamine  0          2d19h
nats-server-6d5c57f894-225qn         1/1     Töötamine  0          2d19h
prometheus-server-65c95b788b-zkt95   1/1     Töötamine  0          2d19h
smi-metrics-5986dfb8d5-q6gfj         1/1     Töötamine  0          2d19h
spire-agent-5cf87                    1/1     Töötamine  0          2d19h
spire-agent-rr2tt                    1/1     Töötamine  0          2d19h
spire-agent-vwjbv                    1/1     Töötamine  0          2d19h
spire-server-0                       2/2     Töötamine  0          2d19h
zipkin-6f7cbf5467-ns6wc              1/1     Töötamine  0          2d19h

Sõltuvalt juurutamise parameetritest, mis määravad käsitsi või automaatse sisestamise poliitikad, lisatakse NGINX sidecar'ide vahetükid rakendustele automaatselt. Automaatse lisamise välja lülitamiseks lugege siit

Näiteks, kui me juurutame rakenduse uni nimeserveris default, ja seejärel kontrollime Pod'i — näeme kahte töötavat konteinerit, rakendus uni ja sellega seotud sidecar:

$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NIMI                     VALMIS   OLEK      KORDUSED   VANUS
sleep-674f75ff4d-gxjf2   2/2     Töötamine  0          5h23m

Saame samuti jälgida rakendust uni в панели NGINX Plus, запуская эту команду для получения доступа к sidecar с вашей локальной машины:

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

Затем просто заходим siia в браузере. Вы также можете соединиться с Prometheus чтобы следить за приложением uni.

Вы можете использовать отдельные ресурсы Kubernetes для настройки политик трафика, например контроля доступа, ограничения скорости и circuit breaking, для этого смотрите dokumentatsiooni

Kokkuvõte

NGINX Service Mesh бесплатно доступна для загрузки на портале F5. Попробуйте ее в работе на ваших dev и test окружениях и напишите нам о результатах.

Чтобы попробовать NGINX Plus Ingress Controller, активируйте бесплатный испытательный период на 30 дней, или võtke meiega ühendust для обсуждения ваших вариантов использования.

Перевод в авторстве Павла Демковича, инженера компании Southbridge. Системное администрирование за 15 000 ₽ в месяц. И как отдельное подразделение — обучающий центр Slöärm, практика и ничего, кроме практики.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster