Dostupan NGINX Service Mesh

Dostupan NGINX Service Mesh

Zadovoljstvo nam je predstaviti verziju za pregled NGINX servisna mreža (NSM), upakovana lagana servisna mreža koja koristi podatkovnu ravninu temeljenu na NGINX Plus za upravljanje kontejnerskim prometom u Kubernetes okruženjima.

NSM je besplatan Skraćeni naziv. Nadamo se da ćete ga isprobati za razvojna i testna okruženja - i veselimo se vašim povratnim informacijama na GitHubu.

Implementacija metodologije mikroservisa prepuna je poteškoća kako raste opseg isporuke, kao i njena složenost. Komunikacija između usluga postaje složenija, problemi s otklanjanjem pogrešaka postaju sve teži, a sve više usluga zahtijeva više resursa za upravljanje.

NSM rješava ove probleme pružajući vam:

  • sigurnosti, što je sada važnije nego ikada. Povreda podataka može stajati tvrtku milijune dolara godišnje u gubitku prihoda i ugleda. NSM osigurava da su sve veze šifrirane pomoću mTLS-a, tako da nema osjetljivih podataka koje hakeri mogu ukrasti preko mreže. Kontrola pristupa omogućuje vam postavljanje pravila za komunikaciju usluga s drugim uslugama.
  • upravljanje prometom. Kada šaljete novu verziju aplikacije, možda ćete htjeti započeti s ograničavanjem dolaznog prometa prema njoj u slučaju pogreške. Uz NSM-ovo inteligentno upravljanje prometom spremnika, možete postaviti politiku ograničenja prometa za nove usluge koje će povećati promet tijekom vremena. Ostale značajke, poput ograničenja brzine i prekidača strujnog kruga, daju vam potpunu kontrolu nad protokom prometa svih vaših usluga.
  • Vizualizacija. Upravljanje tisućama usluga može biti noćna mora za otklanjanje pogrešaka i vizualizaciju. NSM pomaže u rješavanju ove situacije s ugrađenom nadzornom pločom Grafana koja prikazuje sve značajke dostupne u NGINX Plus. Također implementirano Open Tracing omogućuje vam detaljno praćenje transakcija.
  • Hibridne isporuke, ako vaša tvrtka, poput većine drugih, ne koristi infrastrukturu koja u potpunosti radi na Kubernetesu. NSM osigurava da naslijeđene aplikacije ne ostanu bez nadzora. Uz pomoć implementiranog NGINX Kubernetes Ingress Controllera, naslijeđene usluge moći će komunicirati s mrežastim uslugama i obrnuto.

NSM također osigurava sigurnost aplikacija u okruženjima bez povjerenja transparentnom primjenom enkripcije i autentifikacije na kontejnerski promet. Također pruža vidljivost i analizu transakcija, pomažući vam da brzo i točno pokrenete implementacije i otklonite probleme. Također pruža granularnu kontrolu prometa, dopuštajući DevOps timovima da implementiraju i optimiziraju dijelove aplikacija dok razvojnim programerima omogućuje izgradnju i jednostavno povezivanje svojih distribuiranih aplikacija.

Kako radi NGINX Service Mesh?

NSM se sastoji od objedinjene podatkovne ravnine za horizontalni promet (od usluge do usluge) i ugrađenog NGINX Plus Ingress Controllera za okomiti promet, kojim upravlja jedna kontrolna ravnina.

Kontrolna ravnina posebno je dizajnirana i optimizirana za podatkovnu ravninu NGINX Plus i definira pravila kontrole prometa raspoređena preko bočnih prikolica NGINX Plus.

U NSM-u, sidecars proxiji instalirani su za svaku uslugu u mreži. Surađuju sa sljedećim rješenjima otvorenog koda:

  • Grafana, Prometheus vizualizacija parametara, ugrađeni NSM panel pomaže vam u radu;
  • Kubernetes Ingress Controllers, za upravljanje dolaznim i odlaznim prometom u mreži;
  • SPIRE, CA za upravljanje, distribuciju i ažuriranje certifikata u mreži;
  • NATS, skalabilni sustav za slanje poruka, poput ažuriranja rute, od kontrolne ravnine do bočnih prikolica;
  • Open Tracing, distribuirano otklanjanje pogrešaka (podržani Zipkin i Jaeger);
  • Prometheus, prikuplja i pohranjuje karakteristike iz NGINX Plus sidecars, kao što su broj zahtjeva, veza i SSL rukovanja.

Funkcije i komponente

NGINX Plus kao podatkovna ravnina pokriva sidecar proxy (horizontalni promet) i Ingress kontroler (vertikalni), presretanje i upravljanje kontejnerskim prometom između usluga.

Značajke uključuju:

  • Uzajamna TLS (mTLS) provjera autentičnosti;
  • Balansiranje opterećenja;
  • Tolerancija kvarova;
  • Ograničenje brzine;
  • Prekid strujnog kruga;
  • Plavo-zeleni i kanarski rasporedi;
  • Kontrola pristupa.

Pokretanje NGINX Service Mesh

Za pokretanje NSM-a potrebno vam je:

  • pristup Kubernetes okruženju. NGINX Service Mesh podržan je na mnogim Kubernetes platformama, uključujući Amazon Elastic Container Service za Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere i regularne Kubernetes klastere raspoređene na hardverskim poslužiteljima;
  • Oruđe kubectl, instaliran na stroju s kojeg će se instalirati NSM;
  • Pristup paketima izdanja NGINX Service Mesh. Paket sadrži NSM slike potrebne za učitavanje u privatni registar za spremnike dostupne u Kubernetes klasteru. Paket također sadrži nginx-meshctl, potreban za implementaciju NSM-a.

Za implementaciju NSM-a sa zadanim postavkama, pokrenite sljedeću naredbu. Tijekom implementacije prikazuju se poruke koje pokazuju uspješnu instalaciju komponenti i, na kraju, poruka koja pokazuje da se NSM izvodi u zasebnom prostoru imena (morate prvo preuzimanje i smjestite ga u registar, cca. prevoditelj):

$ 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}"
Created namespace "nginx-mesh".
Created SpiffeID CRD.
Waiting for Spire pods to be running...done.
Deployed Spire.
Deployed NATS server.
Created traffic policy CRDs.
Deployed Mesh API.
Deployed Metrics API Server.
Deployed Prometheus Server nginx-mesh/prometheus-server.
Deployed Grafana nginx-mesh/grafana.
Deployed tracing server nginx-mesh/zipkin.
All resources created. Testing the connection to the Service Mesh API Server...

Connected to the NGINX Service Mesh API successfully.
NGINX Service Mesh is running.

Za više opcija, uključujući napredne postavke, pokrenite ovu naredbu:

$ nginx-meshctl deploy –h

Provjerite radi li kontrolna ravnina ispravno u prostoru imena nginx-mreža, možeš ti to:

$ kubectl get pods –n nginx-mesh
NAME                                 READY   STATUS    RESTARTS   AGE
grafana-6cc6958cd9-dccj6             1/1     Running   0          2d19h
mesh-api-6b95576c46-8npkb            1/1     Running   0          2d19h
nats-server-6d5c57f894-225qn         1/1     Running   0          2d19h
prometheus-server-65c95b788b-zkt95   1/1     Running   0          2d19h
smi-metrics-5986dfb8d5-q6gfj         1/1     Running   0          2d19h
spire-agent-5cf87                    1/1     Running   0          2d19h
spire-agent-rr2tt                    1/1     Running   0          2d19h
spire-agent-vwjbv                    1/1     Running   0          2d19h
spire-server-0                       2/2     Running   0          2d19h
zipkin-6f7cbf5467-ns6wc              1/1     Running   0          2d19h

Ovisno o postavkama implementacije koje postavljaju ručna ili automatska pravila ubrizgavanja, NGINX pomoćni proxyji bit će dodani aplikacijama prema zadanim postavkama. Da biste onemogućili automatsko dodavanje, pročitajte здесь

Na primjer, ako implementiramo aplikaciju san u imenskom prostoru zadani, a zatim provjerite Pod - vidjet ćemo dva pokrenuta spremnika, aplikaciju san i povezana bočna prikolica:

$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NAME                     READY   STATUS    RESTARTS   AGE
sleep-674f75ff4d-gxjf2   2/2     Running   0          5h23m

Također možemo pratiti aplikaciju san na ploči NGINX Plus, pokretanje ove naredbe za pristup prikolici s vašeg lokalnog računala:

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

Onda samo ulazimo ovdje u pregledniku. Također se možete povezati s Prometheusom za praćenje aplikacije san.

Možete koristiti pojedinačne Kubernetes resurse za konfiguriranje pravila prometa, kao što su kontrola pristupa, ograničavanje brzine i prekidanje strujnog kruga, za ovo pogledajte dokumentacija

Zaključak

NGINX Service Mesh dostupan je za besplatno preuzimanje na portal F5. Isprobajte to u svojim razvojnim i testnim okruženjima i pišite nam o rezultatima.

Da biste isprobali NGINX Plus Ingress Controller, aktivirajte besplatno probno razdoblje na 30 dana, odn svâžitesʹ s nami kako bismo razgovarali o vašim slučajevima upotrebe.

Prijevod Pavel Demkovich, inženjer tvrtke southbridge. Administracija sustava za 15 000 RUB mjesečno. I kao posebna divizija - trening centar Slutnja, praksa i ništa osim prakse.

Izvor: www.habr.com

Dodajte komentar