NGINX Service Mesh dispunibule

NGINX Service Mesh dispunibule

Semu piacè di presentà una versione di anteprima NGINX Service Mesh (NSM), una maglia di serviziu ligera bundled chì usa un pianu di dati basatu in NGINX Plus per gestisce u trafficu di container in ambienti Kubernetes.

NSM hè liberu scaricà quì. Speremu chì pruvate per l'ambienti di sviluppu è di prova - è aspittemu i vostri feedback nantu à GitHub.

L'implementazione di a metodulugia di i microservizii hè piena di difficultà cum'è a scala di consegna cresce, è ancu a so cumplessità. A cumunicazione trà i servizii diventa più cumplessa, i prublemi di debugging diventanu più difficili, è più è più servizii necessitanu più risorse per gestisce.

NSM risolve questi prublemi fornendu vi:

  • Seguretat, chì hè avà più impurtante chè mai. Una violazione di dati pò custà una cumpagnia di milioni di dollari annu in perdita di rivenuti è reputazione. NSM assicura chì tutte e cunnessione sò criptate cù mTLS, cusì ùn ci hè micca dati sensibili chì ponu esse arrubati da i pirate di a reta. U cuntrollu di l'accessu permette di stabilisce e pulitiche per cumu i servizii cumunicanu cù altri servizii.
  • gestione di u trafficu. Quandu spedite una nova versione di una applicazione, pudete vulete principià per restringe u trafficu entrante in casu d'errore. Cù a gestione intelligente di u trafficu di u containeru di NSM, pudete stabilisce una pulitica di restrizzione di u trafficu per i novi servizii chì aumenteranu u trafficu cù u tempu. Altre caratteristiche, cum'è a limitazione di a velocità è i circuit breakers, vi danu un cuntrollu tutale di u flussu di trafficu di tutti i vostri servizii.
  • Visualizazione. A gestione di millaie di servizii pò esse un incubo di debugging è visualizazione. NSM aiuta à trattà sta situazione cù un dashboard Grafana integratu chì mostra tutte e funzioni dispunibili in NGINX Plus. È ancu l'Open Tracing implementatu permette di monitorà e transazzione in dettaglio.
  • Consegna ibrida, se a vostra cumpagnia, cum'è a maiò parte di l'altri, ùn usa micca l'infrastruttura chì funziona interamente in Kubernetes. NSM assicura chì l'applicazioni legacy ùn sò micca lasciate senza guardia. Cù l'aiutu di u NGINX Kubernetes Ingress Controller implementatu, i servizii legacy puderanu cumunicà cù servizii mesh, è vice versa.

NSM assicura ancu a sicurezza di l'applicazioni in ambienti di fiducia zero appiendu in modu trasparente a crittografia è l'autentificazione à u trafficu di container. Fornisce ancu visibilità è analisi di transazzione, aiutendu à lancià rapidamente e precisamente implementazioni è risolve i prublemi. Fornisce ancu un cuntrollu di trafficu granulare, chì permette à e squadre DevOps di implementà è ottimisà parti di l'applicazioni mentre permette à i sviluppatori di custruisce è cunnette facilmente e so applicazioni distribuite.

Cumu funziona u NGINX Service Mesh?

NSM hè custituitu da un pianu di dati unificatu per u trafficu horizontale (serviziu à serviziu) è un NGINX Plus Ingress Controller integratu per u trafficu verticale, gestitu da un unicu pianu di cuntrollu.

U pianu di cuntrollu hè specificamente cuncepitu è ​​ottimizatu per u pianu di dati NGINX Plus è definisce e regule di cuntrollu di trafficu distribuite in i sidecars NGINX Plus.

In NSM, i proxy sidecars sò stallati per ogni serviziu in a maglia. Interfaccianu cù e seguenti soluzioni open source:

  • Grafana, visualizazione di parametri Prometheus, pannellu NSM integratu vi aiuta cù u vostru travagliu;
  • Kubernetes Ingress Controllers, per a gestione di u trafficu in entrata è in uscita in a maglia;
  • SPIRE, CA per a gestione, a distribuzione è l'aghjurnamentu di i certificati in a maglia;
  • NATS, un sistema scalabile per mandà missaghji, cum'è l'aghjurnamenti di a strada, da u pianu di cuntrollu à i sidecars;
  • Open Tracing, debugging distribuitu (Zipkin è Jaeger supportati);
  • Prometheus, raccoglie è guarda e caratteristiche da i sidecars NGINX Plus, cum'è u numeru di richieste, cunnessione è SSL handshakes.

Funzioni è cumpunenti

NGINX Plus cum'è un pianu di dati copre proxy sidecar (traffico horizontale) è controller Ingress (verticale), interceptendu è gestione u trafficu di container trà servizii.

E caratteristiche includenu:

  • Autenticazione TLS mutuale (mTLS);
  • equilibriu di carica;
  • Tolleranza à i difetti;
  • limitu di vitezza;
  • Circuit breaking;
  • implementazioni blu-verde è canarini;
  • Cuntrolla di accessu.

Lanciamentu di NGINX Service Mesh

Per eseguisce NSM avete bisognu:

  • accessu à l'ambiente Kubernetes. NGINX Service Mesh hè supportatu in parechje piattaforme Kubernetes, cumpresu Amazon Elastic Container Service per Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere, è i cluster Kubernetes regulari implementati nantu à i servitori hardware;
  • Tool kubectl, installatu nantu à a macchina da quale NSM serà stallatu;
  • Accessu à i pacchetti di liberazione NGINX Service Mesh. U pacchettu cuntene l'imaghjini NSM necessarii per a carica in un registru privatu per i cuntenituri dispunibili in u cluster Kubernetes. U pacchettu cuntene ancu nginx-meshctl, necessariu per implementà NSM.

Per implementà NSM cù paràmetri predeterminati, eseguite u cumandimu seguitu. Durante l'implementazione, i missaghji sò visualizati chì indicanu l'installazione successu di cumpunenti è, infine, un missaghju chì indica chì NSM hè in esecuzione in un spaziu di nome separatu (avete bisognu di prima. скачать è mette in u registru, ca. traduttore):

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

Per più opzioni, cumprese paràmetri avanzati, eseguite stu cumandamentu:

$ nginx-meshctl deploy –h

Verificate chì u pianu di cuntrollu funziona bè in u namespace nginx-mesh, pudete piace cusì:

$ 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

Sicondu i paràmetri di implementazione chì stabiliscenu pulitiche di iniezione manuale o automatica, i proxy sidecars NGINX seranu aghjuntu à l'applicazioni per automaticamente. Per disattivà l'aghjunzione automatica, leghjite ccà

Per esempiu, se implementemu l'applicazione scoprinu in namespace automaticamente, è dopu verificate u Pod - vedemu dui cuntenituri in esecuzione, l'applicazione scoprinu è u sidecar assuciatu:

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

Pudemu ancu monitorà l'applicazione scoprinu in u pannellu NGINX Plus, eseguisce stu cumandamentu per accede à sidecar da a vostra macchina locale:

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

Allora andemu solu ccà in u navigatore. Pudete ancu cunnette à Prometheus per monitorizà l'applicazione scoprinu.

Pudete utilizà risorse individuali di Kubernetes per cunfigurà e pulitiche di trafficu, cum'è u cuntrollu di l'accessu, a limitazione di a tarifa è a rottura di circuitu, per questu vede documentazione

cunchiusioni

NGINX Service Mesh hè dispunibule per scaricà gratuitamente à portale F5. Pruvate in i vostri ambienti di dev è di prova è scriviteci nantu à i risultati.

Per pruvà NGINX Plus Ingress Controller, attivate periodu di prova gratuitu per 30 ghjorni, o Cuntatta ci per discutiri i vostri casi d'usu.

Traduzzione da Pavel Demkovich, ingegnere di a cumpagnia ponte sud. Amministrazione di u sistema per RUB 15 per mese. È cum'è una divisione separata - un centru di furmazione Slurm, pratica è nunda ma pratica.

Source: www.habr.com

Add a comment