Dostupan je NGINX Service Mesh

Dostupan je NGINX Service Mesh

Zadovoljstvo nam je predstaviti pretpreglednu verziju NGINX Service Mesh (NSM), upakovani lagani servisni mesh koji koristi ravan podataka zasnovan na NGINX Plus za upravljanje kontejnerskim prometom u Kubernetes okruženjima.

NSM je besplatan preuzmite ovde. Nadamo se da ćete ga isprobati za razvojna i testna okruženja - i radujemo se vašim povratnim informacijama na GitHubu.

Implementacija metodologije mikroservisa je puna poteškoća kako obim isporuke raste, tako i njena složenost. Komunikacija između usluga postaje složenija, problemi s otklanjanjem greš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:

  • Sigurnost, što je sada važnije nego ikad. Kršenje podataka može koštati kompaniju milione dolara godišnje zbog gubitka prihoda i reputacije. 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 vam omogućava da postavite pravila o tome kako usluge komuniciraju sa drugim uslugama.
  • upravljanje saobraćajem. Kada šaljete novu verziju aplikacije, možda ćete htjeti početi ograničavanjem dolaznog prometa na nju u slučaju greške. Uz NSM-ovo inteligentno upravljanje prometom kontejnera, možete postaviti politiku ograničenja prometa za nove usluge koje će vremenom povećati promet. Ostale funkcije, kao što su ograničenje brzine i prekidači, daju vam potpunu kontrolu nad protokom saobraćaja svih vaših usluga.
  • Vizualizacija. Upravljanje hiljadama usluga može biti noćna mora za otklanjanje grešaka i vizualizaciju. NSM pomaže u rješavanju ove situacije s ugrađenom Grafana kontrolnom pločom koja prikazuje sve funkcije dostupne u NGINX Plus. Takođe implementirano otvoreno praćenje omogućava vam da detaljno pratite transakcije.
  • Hibridne isporuke, ako vaša kompanija, kao i većina drugih, ne koristi infrastrukturu koja se u potpunosti radi na Kubernetesu. NSM osigurava da naslijeđene aplikacije ne budu ostavljene bez nadzora. Uz pomoć implementiranog NGINX Kubernetes Ingress Controllera, zastarjeli servisi će moći komunicirati sa mesh servisima i obrnuto.

NSM također osigurava sigurnost aplikacija u okruženjima bez povjerenja transparentnom primjenom enkripcije i autentifikacije na promet kontejnera. Također pruža vidljivost i analizu transakcija, pomažući vam da brzo i precizno pokrenete implementacije i riješite probleme. Takođe pruža detaljnu kontrolu saobraćaja, omogućavajući DevOps timovima da implementiraju i optimizuju delove aplikacija, istovremeno omogućavajući programerima da izgrade i lako povežu svoje distribuirane aplikacije.

Kako radi NGINX Service Mesh?

NSM se sastoji od objedinjene ravni podataka za horizontalni (od usluge do usluge) saobraćaja i ugrađenog NGINX Plus Ingress Controllera za vertikalni saobraćaj, kojim upravlja jedna kontrolna ravnina.

Kontrolna ravan je posebno dizajnirana i optimizirana za NGINX Plus podatkovnu ravan i definira pravila kontrole prometa distribuirana kroz NGINX Plus bočne prikolice.

U NSM-u, sidecar proxy serveri su instalirani za svaku uslugu u mreži. Oni su povezani sa sljedećim open source rješenjima:

  • Grafana, vizualizacija Prometheus parametara, ugrađeni NSM panel vam pomaže u radu;
  • Kubernetes Ingress Controlleri, za upravljanje dolaznim i odlaznim saobraćajem u mreži;
  • SPIRE, CA za upravljanje, distribuciju i ažuriranje certifikata u mreži;
  • NATS, skalabilni sistem za slanje poruka, kao što su ažuriranja rute, od kontrolne ravni do bočnih prikolica;
  • Otvoreno praćenje, distribuirano otklanjanje grešaka (podržani Zipkin i Jaeger);
  • Prometheus, prikuplja i pohranjuje karakteristike iz NGINX Plus sidecara, kao što su broj zahtjeva, konekcija i SSL rukovanja.

Funkcije i komponente

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

Karakteristike uključuju:

  • Međusobna TLS (mTLS) autentikacija;
  • Balansiranje opterećenja;
  • Tolerancije grešaka;
  • Ograničenje brzine;
  • Prekid strujnog kruga;
  • Plavo-zeleno i kanarinac raspoređivanje;
  • Kontrole pristupa.

Pokretanje NGINX servisne mreže

Za pokretanje NSM-a potrebno vam je:

  • pristup Kubernetes okruženju. NGINX Service Mesh je podržan 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 obične Kubernetes klastere raspoređene na hardverskim serverima;
  • Alat kubectl, instaliran na mašini sa koje će biti instaliran NSM;
  • Pristup paketima izdanja NGINX Service Mesh. Paket sadrži NSM slike potrebne za otpremanje u privatni registar za kontejnere dostupne u Kubernetes klasteru. Pakovanje takođe sadrži nginx-meshctl, potrebno za implementaciju NSM-a.

Da biste implementirali NSM sa zadanim postavkama, pokrenite sljedeću naredbu. Tokom implementacije, prikazuju se poruke koje ukazuju na to da su komponente uspješno instalirane, i na kraju poruka koja ukazuje da se NSM izvodi u zasebnom imenskom prostoru (prvo vam je potreban). скачать i stavi ga u registar, cca. prevodilac):

$ 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 imenskom prostoru nginx-mesh, ti to možeš:

$ 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čne ili automatske politike ubrizgavanja, NGINX pomoćni proksiji će biti dodani aplikacijama prema zadanim postavkama. Da biste onemogućili automatsko dodavanje, pročitajte ovdje

Na primjer, ako implementiramo aplikaciju san u imenskom prostoru default, a zatim provjerite Pod - vidjet ćemo dva pokrenuta kontejnera, aplikaciju san i pripadajuća 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 NGINX Plus panelu, pokrenite ovu naredbu za pristup sidecaru sa vašeg lokalnog stroja:

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

Onda samo ulazimo ovdje u pretraživaču. Također se možete povezati na Prometheus da nadgledate aplikaciju san.

Možete koristiti pojedinačne Kubernetes resurse za konfiguriranje prometnih politika, kao što su kontrola pristupa, ograničavanje brzine i prekid kola, za ovo pogledajte dokumentaciju

zaključak

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

Da isprobate NGINX Plus Ingress Controller, aktivirajte besplatni probni period na 30 dana, ili Kontaktiraj nas da razgovarate o vašim slučajevima upotrebe.

Prevod Pavel Demkovich, inženjer kompanije Southbridge. Administracija sistema za 15 RUB mjesečno. I kao posebna divizija - centar za obuku Slurm, praksa i ništa osim prakse.

izvor: www.habr.com

Dodajte komentar