Dostupan NGINX Service Mesh

Dostupan NGINX Service Mesh

Zadovoljstvo nam je predstaviti preliminarnu verziju NGINX Service Mesh (NSM), lagana servisna mreža povezana s data plane-om temeljenim na NGINX Plus za upravljanje prometom kontejnera u okruženjima Kubernetes.

NSM se može besplatno preuzeti ovdje. Nadamo se da ćete ga koristiti za razvojna i testna okruženja — i očekujemo vaše povratne informacije na GitHubu.

Implementacija metodologije mikroservisa povezana je s poteškoćama prilikom povećanja obujma isporuka, kao i njihovim kompliciranjem. Komunikacija između servisa postaje složenija, problemi s debagiranjem postaju teži, a svaki servis zahtijeva više resursa za upravljanje.

NSM rješava te probleme pružajući vam na prvom mjestu:

  • Sigurnost, što je sada važnije nego ikad. Curjenje podataka može koštati tvrtku milijune dolara godišnje u obliku gubitka prihoda i reputacije. NSM osigurava enkripciju svih veza putem mTLS — tako da osjetljivih podataka koji mogu biti ukradeni tijekom prijenosa jednostavno nema. Kontrola pristupa omogućuje vam postavljanje pravila o tome kako će servisi komunicirati jedni s drugima.
  • Upravljanje prometom. Kada isporučujete novu verziju aplikacije, možda ćete htjeti prvo ograničiti ulazni promet u slučaju greške. Pomoću inteligentnog upravljanja prometom kontejnera od strane NSM-a, možete definirati politiku ograničavanja prometa novim servisima koja će postupno povećavati promet tijekom vremena. Druge funkcije, kao što su ograničenje brzine i circuit breakers, daju vam potpunu kontrolu nad upravljanjem prometa svim vašim servisima.
  • Vizualizacija. Upravljanje tisućama servisa može biti noćna mora za debagiranje i vizualizaciju. NSM pomaže u takvim situacijama putem integriranog Grafana kontrolnog panela, koji prikazuje sve značajke dostupne u NGINX Plus. Također, integrirana Open Tracing omogućuje detaljno praćenje transakcija.
  • Hibridne isporuke, ako vaša tvrtka, poput većine drugih, ne koristi infrastrukturu koja je potpuno pokrenuta na Kubernetesu. NSM jamči da stariji aplikacije neće ostati bez nadzora. Koristeći integrirani NGINX Kubernetes Ingress Controller, stari servisi će moći komunicirati s mesh servisima, i obrnuto.

NSM također osigurava sigurnost aplikacija u okruženjima s nultim povjerenjem, transparentno primjenjujući enkripciju i autentifikaciju prometa kontejnera. Također omogućuje nadzor i analizu transakcija, pomažući brzo i točno pokretanje implementacija i rješavanje problema. Osim toga, osigurava detaljnu kontrolu prometa, omogućavajući DevOps timovima da implementiraju i optimiziraju dijelove aplikacija, omogućujući programerima da kreiraju i lako povezuju svoje distribuirane aplikacije.

Kako funkcionira NGINX Service Mesh?

NSM se sastoji od objedinjene data plane za horizontalni (servis-k-servisu) promet i ugrađenog NGINX Plus Ingress Controller-a za vertikalni, upravljani jedinstvenim control plane-om.

Control plane je posebno razvijen i optimiziran za NGINX Plus data plane, određuje pravila upravljanja prometom, distribuirana preko NGINX Plus sidecara.

U NSM sidecarovi proxy se postavljaju za svaku uslugu u mesh-u. Oni komuniciraju s sljedećim rješenjima otvorenog koda:

  • Grafana, vizualizacija parametara Prometheus, ugrađena ploča NSM pomaže vam prilikom rada;
  • Kubernetes Ingress Controllers za upravljanje ulaznim i izlaznim prometom u mesh-u;
  • SPIRE, CA za upravljanje, distribuciju i ažuriranje certifikata u mesh-u;
  • NATS, skalabilni sustav razmjene poruka, npr. ažuriranja ruta, od control plane-a do sidecara;
  • Open Tracing, distribuirano otklanjanje pogrešaka (podržani Zipkin i Jaeger);
  • Prometheus, prikupljanje i pohrana metrika od NGINX Plus sidecara, kao što su broj zahtjeva, veza i SSL handshakes.

Funkcije i komponente

NGINX Plus kao data plane obuhvaća sidecar proxy (horizontalni promet) i Ingress kontroler (vertikalni), presrećući i upravljajući prometom kontejnera među uslugama.

Funkcije uključuju:

  • Međusobnu autentifikaciju TLS (mTLS);
  • Uravnoteženje opterećenja;
  • Otpornost na greške;
  • Ograničenje brzine;
  • Circuit breaking;
  • Blue-green i kanarske implementacije;
  • Kontrolu pristupa.

Pokretanje NGINX Service Mesh

Za pokretanje NSM potrebna je:

  • pristup Kubernetes okruženju. NGINX Service Mesh podržava mnoge platforme Kubernetes, uključujući Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere i klasične Kubernetes klastere implementirane na "hardverskim" poslužiteljima;
  • Alat kubectl, instaliran na računalu s kojeg će se instalirati NSM;
  • Pristup paketima izdanja NGINX Service Mesh. U paketu se nalaze NSM slike potrebne za isporuku u zatvoreni registry za kontejnere, dostupan u Kubernetes klasteru. Paket također sadrži nginx-meshctl, neophodan za postavljanje NSM-a.

Da biste postavili NSM s postavkama prema zadanim vrijednostima, pokrenite sljedeću naredbu. Tijekom postavljanja ispisuju se poruke o uspješnom instaliranju komponenti i na kraju poruka da NSM radi u zasebnom prostoru imena (prvo ga treba preuzimanje i smjestiti u registry, nap. prevoditelja):

$ DOCKER_REGISTRY=vaš-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}"
Stvoren namespace "nginx-mesh".
Stvoren SpiffeID CRD.
Čekanje da Spire podovi rade...završeno.
Implementiran Spire.
Implementiran NATS server.
Stvorene politike prometa CRD-a.
Implementiran Mesh API.
Implementiran Metrics API Server.
Implementiran Prometheus Server nginx-mesh\/prometheus-server.
Implementiran Grafana nginx-mesh\/grafana.
Implementiran tracing server nginx-mesh\/zipkin.
Svi resursi su stvoreni. Testiranje veze s API Serverom usluge Mesh...

Uspješno povezano s NGINX Service Mesh API-jem.
NGINX Service Mesh radi.

Za dodatne opcije, uključujući napredne postavke, pokrenite ovu naredbu:

$ nginx-meshctl deploy –h

Provjerite da control plane ispravno radi u prostoru imena nginx-mesh, možete to učiniti ovako:

$ kubectl get pods –n nginx-mesh
IME                                 SPREMAN   STATUS    PONOVNI POKRET   STAROST
grafana-6cc6958cd9-dccj6             1\/1     Radi   0          2d19h
mesh-api-6b95576c46-8npkb            1\/1     Radi   0          2d19h
nats-server-6d5c57f894-225qn         1\/1     Radi   0          2d19h
prometheus-server-65c95b788b-zkt95   1\/1     Radi   0          2d19h
smi-metrics-5986dfb8d5-q6gfj         1\/1     Radi   0          2d19h
spire-agent-5cf87                    1\/1     Radi   0          2d19h
spire-agent-rr2tt                    1\/1     Radi   0          2d19h
spire-agent-vwjbv                    1\/1     Radi   0          2d19h
spire-server-0                       2\/2     Radi   0          2d19h
zipkin-6f7cbf5467-ns6wc              1\/1     Radi   0          2d19h

Ovisno o postavkama implementacije koje postavljaju politike ručnog ili automatskog umetanja, NGINX sidecars proxy će se po defaultu dodavati aplikacijama. Da biste onemogućili automatsko dodavanje, pročitajte ovdje

Na primjer, ako implementiramo aplikaciju sleep u prostoru imena default, a zatim provjerimo Pod — vidjet ćemo dva pokrenuta kontenera, aplikaciju sleep i povezani sidecar:

$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
IME                     SPREMAN   STATUS    PONOVNI POKRET   STAROST
sleep-674f75ff4d-gxjf2   2\/2     Radi   0          5h23m

Također možemo pratiti aplikaciju sleep u NGINX Plus paneli, pokrenite ovu komandu za pristup sidecar-u s vašeg lokalnog računala:

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

Zatim jednostavno idite ovde u pregledniku. Također se možete povezati s Prometheus-om kako biste pratili aplikaciju sleep.

Možete koristiti odvojene Kubernetes resurse za konfiguraciju politika prometa, kao što su kontrola pristupa, ograničenja brzine i circuit breaking, za to pogledajte dokumentaciju

Zaključak

NGINX Service Mesh je besplatno dostupna za preuzimanje na F5 portalu. Isprobajte je u radu na vašim dev i test okruženjima i javite nam o rezultatima.

Da biste isprobali NGINX Plus Ingress Controller, aktivirajte besplatno probno razdoblje od 30 dana, ili kontaktirajte nas da razgovaramo o vašim mogućnostima korištenja.

Prijevod u autorstvu Pavla Demkovicha, inženjera kompanije Southbridge. Sistemskom administracijom za 15 000 ₽ mjesečno. I kao zaseban odjel — obrazovni centar Slurm, praksa i ništa osim prakse.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster