NGINX Service Mesh disponibil

NGINX Service Mesh disponibil

Ne face plăcere să vă prezentăm o versiune de previzualizare NGINX Service Mesh (NSM), o rețea de servicii ușoară care utilizează un plan de date bazat pe NGINX Plus pentru a gestiona traficul de containere în mediile Kubernetes.

NSM este gratuit Скачать здесь. Sperăm că îl veți încerca pentru medii de dezvoltare și de testare - și așteptăm cu nerăbdare feedbackul dvs pe GitHub.

Implementarea metodologiei de microservicii este plină de dificultăți pe măsură ce amploarea livrării crește, precum și complexitatea acesteia. Comunicarea între servicii devine mai complexă, problemele de depanare devin mai dificile și tot mai multe servicii necesită mai multe resurse pentru a fi gestionate.

NSM rezolvă aceste probleme oferindu-vă:

  • Безопасность, care acum este mai important ca niciodată. O încălcare a datelor poate costa o companie milioane de dolari anual în pierderi de venituri și reputație. NSM se asigură că toate conexiunile sunt criptate folosind mTLS, astfel încât nu există date sensibile care să poată fi furate de hackeri prin rețea. Controlul accesului vă permite să setați politici pentru modul în care serviciile comunică cu alte servicii.
  • Administrarea traficului. Când expediați o nouă versiune a unei aplicații, este posibil să doriți să începeți prin a restricționa traficul de intrare către aceasta în cazul unei erori. Cu gestionarea inteligentă a traficului de containere NSM, puteți seta o politică de restricție a traficului pentru noile servicii care vor crește traficul în timp. Alte caracteristici, cum ar fi limitarea vitezei și întreruptoarele de circuit, vă oferă control deplin asupra fluxului de trafic al tuturor serviciilor dumneavoastră.
  • Vizualizare. Gestionarea a mii de servicii poate fi un coșmar de depanare și vizualizare. NSM ajută la rezolvarea acestei situații cu un tablou de bord Grafana încorporat care afișează toate caracteristicile disponibile în NGINX Plus. Și, de asemenea, Open Tracing implementat vă permite să monitorizați tranzacțiile în detaliu.
  • Livrări hibride, dacă compania dvs., ca majoritatea altora, nu utilizează infrastructura care rulează în întregime pe Kubernetes. NSM se asigură că aplicațiile vechi nu sunt lăsate nesupravegheate. Cu ajutorul NGINX Kubernetes Ingress Controller implementat, serviciile vechi vor putea comunica cu serviciile mesh și invers.

NSM asigură, de asemenea, securitatea aplicațiilor în medii de încredere zero prin aplicarea transparentă a criptării și autentificării traficului containerului. De asemenea, oferă vizibilitate și analiză tranzacțiilor, ajutându-vă să lansați rapid și precis implementările și să depanați problemele. De asemenea, oferă un control granular al traficului, permițând echipelor DevOps să implementeze și să optimizeze părți ale aplicațiilor, permițând în același timp dezvoltatorilor să creeze și să conecteze cu ușurință aplicațiile lor distribuite.

Cum funcționează NGINX Service Mesh?

NSM constă dintr-un plan de date unificat pentru traficul orizontal (de la serviciu la serviciu) și un controler de intrare NGINX Plus încorporat pentru trafic vertical, gestionat de un singur plan de control.

Planul de control este proiectat și optimizat special pentru planul de date NGINX Plus și definește regulile de control al traficului distribuite pe sidecar-urile NGINX Plus.

În NSM, proxy-urile sidecars sunt instalate pentru fiecare serviciu din rețea. Acestea interacționează cu următoarele soluții open source:

  • Grafana, vizualizarea parametrilor Prometheus, panoul NSM încorporat vă ajută în munca dvs.;
  • Controlere de intrare Kubernetes, pentru gestionarea traficului de intrare și de ieșire în rețea;
  • SPIRE, CA pentru gestionarea, distribuirea și actualizarea certificatelor în plasă;
  • NATS, un sistem scalabil pentru trimiterea de mesaje, cum ar fi actualizări de rută, de la avionul de control la sidecar;
  • Open Tracing, depanare distribuită (suportate Zipkin și Jaeger);
  • Prometheus, colectează și stochează caracteristici de la sidecar-urile NGINX Plus, cum ar fi numărul de solicitări, conexiuni și strângeri de mână SSL.

Funcții și componente

NGINX Plus ca plan de date acoperă proxy sidecar (trafic orizontal) și controlerul de intrare (vertical), interceptând și gestionând traficul de containere între servicii.

Caracteristicile includ:

  • Autentificare TLS reciprocă (mTLS);
  • Echilibrarea sarcinii;
  • Toleranta la erori;
  • Limita de viteza;
  • Întreruperea circuitului;
  • Desfăşurări albastru-verde şi canar;
  • Controlul accesului.

Se lansează NGINX Service Mesh

Pentru a rula NSM aveți nevoie de:

  • acces la mediul Kubernetes. NGINX Service Mesh este acceptat pe multe platforme Kubernetes, inclusiv Amazon Elastic Container Service pentru Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere și clustere Kubernetes obișnuite implementate pe servere hardware;
  • Instrument kubectl, instalat pe mașina de pe care va fi instalat NSM;
  • Acces la pachetele de lansare NGINX Service Mesh. Pachetul conține imagini NSM necesare pentru încărcare într-un registru privat pentru containerele disponibile în cluster-ul Kubernetes. Pachetul contine si nginx-meshctl, necesare pentru implementarea NSM.

Pentru a implementa NSM cu setările implicite, executați următoarea comandă. În timpul implementării, sunt afișate mesaje care indică instalarea reușită a componentelor și, în final, un mesaj care indică faptul că NSM rulează într-un spațiu de nume separat (mai întâi trebuie să descărca și plasați-l în registru, aproximativ traducător):

$ 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.

Pentru mai multe opțiuni, inclusiv setări avansate, rulați această comandă:

$ nginx-meshctl deploy –h

Verificați dacă planul de control funcționează corect în spațiul de nume nginx-mesh, puteți face acest lucru:

$ 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

În funcție de setările de implementare care stabilesc politicile de injecție manuală sau automată, proxy-urile NGINX sidecars vor fi adăugate la aplicații în mod implicit. Pentru a dezactiva adăugarea automată, citiți aici

De exemplu, dacă implementăm aplicația dormi în spațiul de nume lipsă, și apoi verificați Pod - vom vedea două containere care rulează, aplicația dormi și sidecar-ul asociat:

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

De asemenea, putem monitoriza aplicația dormi în panoul NGINX Plus, rulați această comandă pentru a accesa sidecar de pe mașina dvs. locală:

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

Apoi doar intrăm aici în browser. De asemenea, vă puteți conecta la Prometheus pentru a monitoriza aplicația dormi.

Puteți utiliza resurse Kubernetes individuale pentru a configura politicile de trafic, cum ar fi controlul accesului, limitarea ratei și întreruperea circuitului, pentru aceasta consultați documentație

Concluzie

NGINX Service Mesh este disponibil pentru descărcare gratuită la portalul F5. Încercați-l în mediile dvs. de dezvoltare și de testare și scrie-ne despre rezultate.

Pentru a încerca NGINX Plus Ingress Controller, activați perioadă de probă gratuită timp de 30 de zile sau Contactează-ne pentru a discuta cazurile dvs. de utilizare.

Traducere de Pavel Demkovich, inginer al companiei Southbridge. Administrarea sistemului pentru 15 RUB pe lună. Și ca o divizie separată - un centru de formare Slurm, practică și nimic altceva decât practică.

Sursa: www.habr.com

Adauga un comentariu