
Suntem încântați să prezentăm versiunea preliminară (NSM), o rețea de servicii ușoară, care utilizează planul de date bazat pe NGINX Plus pentru a gestiona traficul containerelor în medii Kubernetes.
NSM poate fi descărcat gratuit . Sperăm că îl veți încerca pentru medii de dezvoltare și testare — așteptăm cu interes feedback-ul dvs. .
Implementarea metodologiilor de microservicii vine cu dificultăți pe măsură ce livrările cresc în complexitate. Comunicațiile între servicii devin mai dificile, iar problemele de depanare sunt tot mai complicate; din ce în ce mai multe servicii necesită mai multe resurse pentru gestionare.
NSM abordează aceste probleme, oferindu-vă, în primul rând:
- Securitate, care este acum mai importantă ca niciodată. O breșă de date poate costa compania milioane de dolari anual în pierderi de venituri și reputație. NSM asigură criptarea tuturor conexiunilor prin intermediul mTLS — astfel că datele sensibile, pe care hackerii le-ar putea fura prin rețea, pur și simplu nu există. Controlul accesului vă permite să stabiliți politici despre cum vor comunica serviciile între ele.
- Gestionarea traficului. Atunci când livrați o nouă versiune a aplicației, este posibil să doriți să limitați inițial traficul de intrare pentru a evita o eroare. Cu ajutorul gestionării inteligente a traficului containerelor oferite de NSM, puteți stabili o politică de limitare a traficului pentru noile servicii, care va crește în timp. Alte funcții, cum ar fi limitarea vitezei și întrerupătoarele de circuit, vă oferă acces complet la gestionarea circulației de trafic pentru toate serviciile dvs.
- Vizualizare. Gestionarea unui număr mare de servicii poate fi un coșmar în ceea ce privește depanarea și vizualizarea. NSM ajută să gestionați această situație prin intermediul unui panou de control integrat Grafana, care afișează toate caracteristicile disponibile în NGINX Plus. De asemenea, Open Tracing integrat permite urmărirea detaliată a tranzacțiilor.
- Livrări hibride, dacă compania dvs. este ca majoritatea altora și nu folosește o infrastructură complet construită pe Kubernetes. NSM garantează că aplicațiile mai vechi nu vor rămâne neobservate. Cu ajutorul NGINX Kubernetes Ingress Controller integrat, serviciile mai vechi vor putea comunica cu serviciile din mesh și invers.
NSM asigură, de asemenea, securitatea aplicațiilor în medii cu încredere zero, aplicând în mod transparent criptarea și autentificarea traficului containerelor. De asemenea, oferă posibilitatea de monitorizare și analiză a tranzacțiilor, ajutând la desfășurarea rapidă și precisă a implementărilor și la rezolvarea problemelor. În plus, asigură un control detaliat al traficului, permițând echipelor DevOps să desfășoare și să optimizeze părțile aplicațiilor, în timp ce oferă dezvoltatorilor posibilitatea de a crea și de a conecta cu ușurință aplicațiile lor distribuite.
Cum funcționează NGINX Service Mesh?
NSM constă dintr-un plane de date unificat pentru traficul orizontal (serviciu la serviciu) și un NGINX Plus Ingress Controller integrat pentru cel vertical, gestionate de un control plane unic.
Control plane este special conceput și optimizat pentru data plane NGINX Plus, definind regulile de gestionare a traficului distribuite prin sidecar-urile NGINX Plus.
În NSM, sidecar-urile proxy sunt instalate pentru fiecare serviciu din mesh. Acestea interacționează cu următoarele soluții open-source:
- Grafana, vizualizarea parametrilor din Prometheus, panoul integrat NSM vă ajută în activitatea dvs.;
- Kubernetes Ingress Controllers, pentru gestionarea traficului de intrare și ieșire în mesh;
- SPIRE, CA pentru gestionarea, distribuția și actualizarea certificatelor în mesh;
- NATS, un sistem de mesagerie scalabil, cum ar fi actualizarea rutelor, dintre control plane și sidecar-uri;
- Open Tracing, depanare distribuită (suportă Zipkin și Jaeger);
- Prometheus, colectarea și stocarea caracteristicilor de la sidecar-urile NGINX Plus, cum ar fi numărul de cereri, conexiuni și SSL handshakes.
Funcții și componente
NGINX Plus, ca plane de date, acoperă sidecar proxy (trafic orizontal) și Ingress controller (trafic vertical), interceptând și gestionând traficul containerelor între servicii.
Funcțiile includ:
- Autentificare mutuală TLS (mTLS);
- Distribuirea încărcării;
- Rezistență la defecțiuni;
- Limitarea vitezei;
- Circuit breaking;
- Implementări blue-green și canary;
- Controlul accesului.
Lansarea NGINX Service Mesh
Pentru a lansa NSM, este necesar:
- acces la mediu Kubernetes. NGINX Service Mesh este suportat pe multe platforme Kubernetes, inclusiv Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere și clustere Kubernetes tradiționale desfășurate pe servere "bare metal";
- Instrument
kubectl, instalat pe mașina de pe care va fi instalat NSM; - Acces la pachetele de versiuni NGINX Service Mesh. Pachetul conține imagini NSM necesare pentru a fi descărcate în registry-ul privat pentru containere disponibile în clusterul Kubernetes. Pachetul conține de asemenea
nginx-meshctl, necesar pentru desfășurarea NSM.
Pentru a desfășura NSM cu setările implicite, rulați următoarea comandă. În timpul desfășurării vor fi afișate mesaje despre instalarea reușită a componentelor și, în final, un mesaj că NSM funcționează într-un spațiu de nume separat (mai întâi trebuie să-l și să-l plasați în registry, nota traducătorului):
$ 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}"
Spațiu de nume "nginx-mesh" creat.
CRD SpiffeID creat.
Așteptând ca podurile Spire să fie în execuție...finalizat.
Desfășurat Spire.
Desfășurat server NATS.
CRD-uri pentru politicile de trafic create.
Desfășurat Mesh API.
Desfășurat server API Metrics.
Desfășurat server Prometheus nginx-mesh\/prometheus-server.
Desfășurat Grafana nginx-mesh\/grafana.
Desfășurat server de trasare nginx-mesh\/zipkin.
Toate resursele au fost create. Testând conexiunea la serverul API al Service Mesh...
Conectat cu succes la API-ul NGINX Service Mesh.
NGINX Service Mesh este în execuție.Pentru a obține opțiuni suplimentare, inclusiv setări avansate, rulați această comandă:
$ nginx-meshctl deploy –hVerificați că control plane-ul funcționează corect în spațiul de nume nginx-mesh, astfel:
$ kubectl get pods –n nginx-mesh
NUME 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În funcție de opțiunile de desfășurare care stabilesc politicile de injectare manuală sau automată, proksi NGINX sidecars vor fi adăugați aplicațiilor în mod implicit. Pentru a dezactiva adăugarea automată, citiți
De exemplu, dacă desfășurăm aplicația sleep în spațiul de nume default, apoi verificăm Pod-ul — vom vedea două containere în execuție, aplicația sleep și sidecar-ul asociat:
$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NUME READY STATUS RESTARTS AGE
sleep-674f75ff4d-gxjf2 2\/2 Running 0 5h23mDe asemenea, putem monitoriza aplicația sleep în panoul NGINX Plus, executând această comandă pentru a accesa sidecar-ul de pe mașina dumneavoastră locală:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886Apoi, pur și simplu accesați în browser. De asemenea, puteți conecta la Prometheus pentru a monitoriza aplicația sleep.
Puteți utiliza resurse Kubernetes separate pentru a configura politicile de trafic, cum ar fi controlul accesului, limitarea vitezei și circuit breaking, pentru aceasta consultați
Concluzie
NGINX Service Mesh este disponibil gratuit pentru descărcare pe . Încercați-l în acțiune în mediile dumneavoastră dev și test și .
Pentru a încerca NGINX Plus Ingress Controller, activați de 30 de zile, sau pentru a discuta despre opțiunile dumneavoastră de utilizare.
Traducerea este realizată de Pavel Demkovich, inginer la companie . Administrarea sistemelor la 15 000 ₽ pe lună. Și ca o subdiviziune separată – centrul de formare , practică și nimic altceva decât practică.
Sursa: habr.com
