NGINX Service Mesh beschikbaar

NGINX Service Mesh beschikbaar

Met genoegen presenteren wij u een preview-versie NGINX-servicegaas (NSM), een gebundelde lichtgewicht servicemesh die een op NGINX Plus gebaseerd datavlak gebruikt om containerverkeer in Kubernetes-omgevingen te beheren.

NSM is gratis Download hier. We hopen dat je het uitprobeert in ontwikkel- en testomgevingen en kijken uit naar je feedback op GitHub.

De implementatie van de microservices-methodologie is beladen met problemen naarmate de omvang van de levering groeit, evenals de complexiteit ervan. De communicatie tussen services wordt complexer, het debuggen van problemen wordt moeilijker, en steeds meer services vereisen meer middelen om te beheren.

NSM lost deze problemen op door u te voorzien van:

  • veiligheid, wat nu belangrijker is dan ooit. Een datalek kan een bedrijf jaarlijks miljoenen dollars aan verloren omzet en reputatie kosten. NSM zorgt ervoor dat alle verbindingen worden gecodeerd met behulp van mTLS, zodat er geen gevoelige gegevens zijn die door hackers via het netwerk kunnen worden gestolen. Met toegangscontrole kunt u beleid instellen voor de manier waarop services met andere services communiceren.
  • Verkeersmanagement. Wanneer u een nieuwe versie van een applicatie verzendt, wilt u wellicht beginnen met het beperken van inkomend verkeer ernaartoe in geval van een fout. Met het intelligente containerverkeersmanagement van NSM kunt u een verkeersbeperkingsbeleid instellen voor nieuwe diensten waardoor het verkeer in de loop van de tijd zal toenemen. Andere functies, zoals snelheidsbegrenzing en stroomonderbrekers, geven u volledige controle over de verkeersstroom van al uw diensten.
  • Visualisatie. Het beheren van duizenden services kan een nachtmerrie zijn op het gebied van foutopsporing en visualisatie. NSM helpt bij het omgaan met deze situatie met een ingebouwd Grafana-dashboard dat alle functies weergeeft die beschikbaar zijn in NGINX Plus. En dankzij de geïmplementeerde Open Tracing kunt u transacties tot in detail monitoren.
  • Hybride leveringen, als uw bedrijf, zoals de meeste anderen, geen infrastructuur gebruikt die volledig op Kubernetes draait. NSM zorgt ervoor dat oudere applicaties niet onbeheerd achterblijven. Met behulp van de geïmplementeerde NGINX Kubernetes Ingress Controller kunnen legacy-services communiceren met mesh-services, en vice versa.

NSM zorgt ook voor applicatiebeveiliging in zero trust-omgevingen door op transparante wijze encryptie en authenticatie toe te passen op containerverkeer. Het biedt ook zichtbaarheid en analyse van transacties, zodat u snel en nauwkeurig implementaties kunt starten en problemen kunt oplossen. Het biedt ook gedetailleerde verkeerscontrole, waardoor DevOps-teams delen van applicaties kunnen implementeren en optimaliseren, terwijl ontwikkelaars hun gedistribueerde applicaties kunnen bouwen en eenvoudig kunnen verbinden.

Hoe werkt de NGINX Service Mesh?

NSM bestaat uit een uniform datavlak voor horizontaal (service-to-service) verkeer en een ingebedde NGINX Plus Ingress Controller voor verticaal verkeer, beheerd door één enkel besturingsvlak.

Het besturingsvlak is specifiek ontworpen en geoptimaliseerd voor het NGINX Plus-datavlak en definieert verkeerscontroleregels verdeeld over NGINX Plus-zijspannen.

In NSM worden zijspanproxy's geïnstalleerd voor elke service in de mesh. Ze communiceren met de volgende open source-oplossingen:

  • Grafana, Prometheus parametervisualisatie, ingebouwd NSM-paneel helpt u bij uw werk;
  • Kubernetes Ingress Controllers, voor het beheren van inkomend en uitgaand verkeer in de mesh;
  • SPIRE, CA voor het beheren, distribueren en bijwerken van certificaten in de mesh;
  • NATS, een schaalbaar systeem voor het verzenden van berichten, zoals route-updates, van het besturingsvlak naar zijspannen;
  • Open Tracing, gedistribueerde foutopsporing (Zipkin en Jaeger ondersteund);
  • Prometheus verzamelt en bewaart kenmerken van NGINX Plus sidecars, zoals het aantal verzoeken, verbindingen en SSL-handshakes.

Functies en componenten

NGINX Plus als datavlak omvat zijspanproxy (horizontaal verkeer) en Ingress-controller (verticaal), waarbij containerverkeer tussen services wordt onderschept en beheerd.

Kenmerken omvatten:

  • Wederzijdse TLS (mTLS)-authenticatie;
  • Belastingverdeling;
  • Fouttolerantie;
  • Snelheidslimiet;
  • Circuitonderbreking;
  • Blauwgroene en kanarie-implementaties;
  • Toegangscontrole.

NGINX Service Mesh lanceren

Om NSM uit te voeren heeft u het volgende nodig:

  • toegang tot de Kubernetes-omgeving. NGINX Service Mesh wordt ondersteund op veel Kubernetes-platforms, waaronder Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere en reguliere Kubernetes-clusters die op hardwareservers zijn geïmplementeerd;
  • Gereedschap kubectl, geïnstalleerd op de machine waarop NSM wordt geïnstalleerd;
  • Toegang tot NGINX Service Mesh-releasepakketten. Het pakket bevat NSM-images die nodig zijn voor het uploaden naar een privéregister voor containers die beschikbaar zijn in het Kubernetes-cluster. Het pakket bevat ook nginx-meshctl, nodig om NSM in te zetten.

Voer de volgende opdracht uit om NSM met standaardinstellingen te implementeren. Tijdens de implementatie worden berichten weergegeven die de succesvolle installatie van componenten aangeven en ten slotte een bericht dat aangeeft dat NSM in een aparte naamruimte draait (u moet eerst скачать en plaats het in het register, ca. vertaler):

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

Voer deze opdracht uit voor meer opties, waaronder geavanceerde instellingen:

$ nginx-meshctl deploy –h

Controleer of het besturingsvlak correct werkt in de naamruimte nginx-mesh, je kan dit doen:

$ 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

Afhankelijk van de implementatie-instellingen die handmatig of automatisch injectiebeleid instellen, worden standaard NGINX-zijspanproxy's aan applicaties toegevoegd. Om automatisch toevoegen uit te schakelen, lees hier

Bijvoorbeeld als we de applicatie inzetten slaap in naamruimte verzuimen controleer vervolgens de Pod - we zullen twee actieve containers zien, de applicatie slaap en het bijbehorende zijspan:

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

Ook kunnen wij de aanvraag monitoren slaap in het NGINX Plus-paneel, voer deze opdracht uit om toegang te krijgen tot zijspan vanaf uw lokale machine:

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

Dan gaan wij gewoon naar binnen hier in de browser. U kunt ook verbinding maken met Prometheus om de applicatie te monitoren slaap.

U kunt individuele Kubernetes-bronnen gebruiken om verkeersbeleid te configureren, zoals toegangscontrole, snelheidsbeperking en circuitonderbreking. Zie hiervoor de documentatie

Conclusie

NGINX Service Mesh is gratis te downloaden op portaal F5. Probeer het in uw ontwikkel- en testomgevingen en schrijf ons over de resultaten.

Activeer om NGINX Plus Ingress Controller te proberen gratis proefperiode gedurende 30 dagen, of Neem contact op om uw gebruiksscenario's te bespreken.

Vertaling door Pavel Demkovich, bedrijfsingenieur Southbridge. Systeembeheer voor RUB 15 per maand. En als een aparte divisie - een trainingscentrum Sluimer, oefenen en niets anders dan oefenen.

Bron: www.habr.com

Voeg een reactie