NGINX Service Mesh tilgjengelig

NGINX Service Mesh tilgjengelig

Vi er glade for å kunne presentere en forhåndsversjon NGINX Service Mesh (NSM), et medfølgende lettvektstjenestenettverk som bruker et NGINX Plus-basert dataplan for å administrere containertrafikk i Kubernetes-miljøer.

NSM er gratis Last ned her. Vi håper du vil prøve det for utvikler- og testmiljøer - og ser frem til tilbakemeldingen din på GitHub.

Implementeringen av mikrotjenestermetodikk er full av vanskeligheter ettersom omfanget av levering vokser, så vel som kompleksiteten. Kommunikasjon mellom tjenester blir mer kompleks, feilsøkingsproblemer blir vanskeligere, og flere og flere tjenester krever mer ressurser å administrere.

NSM løser disse problemene ved å gi deg:

  • Безопасность, som nå er viktigere enn noen gang. Et datainnbrudd kan koste et selskap millioner av dollar årlig i tapt inntekt og omdømme. NSM sørger for at alle tilkoblinger er kryptert med mTLS, så det er ingen sensitive data som kan stjeles av hackere over nettverket. Tilgangskontroll lar deg angi retningslinjer for hvordan tjenester kommuniserer med andre tjenester.
  • Trafikkstyring. Når du sender en ny versjon av en applikasjon, kan det være lurt å starte med å begrense innkommende trafikk til den i tilfelle feil. Med NSMs intelligente containertrafikkstyring kan du sette en trafikkrestriksjonspolicy for nye tjenester som vil øke trafikken over tid. Andre funksjoner, som hastighetsbegrensning og effektbrytere, gir deg full kontroll over trafikkflyten til alle tjenestene dine.
  • Visualisering. Å administrere tusenvis av tjenester kan være et feilsøkings- og visualiseringsmareritt. NSM hjelper til med å håndtere denne situasjonen med et innebygd Grafana-dashbord som viser alle funksjonene som er tilgjengelige i NGINX Plus. Og også den implementerte Open Tracing lar deg overvåke transaksjoner i detalj.
  • Hybrid leveranser, hvis bedriften din, som de fleste andre, ikke bruker infrastruktur som kjører helt på Kubernetes. NSM sørger for at eldre applikasjoner ikke blir stående uten tilsyn. Ved hjelp av den implementerte NGINX Kubernetes Ingress Controller vil eldre tjenester kunne kommunisere med mesh-tjenester, og omvendt.

NSM sikrer også applikasjonssikkerhet i miljøer med null tillit ved å bruke kryptering og autentisering på en transparent måte for containertrafikk. Den gir også transaksjonssynlighet og analyse, og hjelper deg raskt og nøyaktig å starte distribusjoner og feilsøke problemer. Det gir også granulær trafikkkontroll, slik at DevOps-team kan distribuere og optimalisere deler av applikasjoner samtidig som utviklere kan bygge og enkelt koble til sine distribuerte applikasjoner.

Hvordan fungerer NGINX Service Mesh?

NSM består av et enhetlig dataplan for horisontal (tjeneste-til-tjeneste) trafikk og en innebygd NGINX Plus Ingress Controller for vertikal trafikk, administrert av et enkelt kontrollplan.

Kontrollplanet er spesielt designet og optimalisert for NGINX Plus-dataplanet og definerer trafikkkontrollregler fordelt på NGINX Plus-sidevogner.

I NSM er det installert sidevogns proxyer for hver tjeneste i nettet. De har grensesnitt med følgende åpen kildekode-løsninger:

  • Grafana, Prometheus parametervisualisering, innebygd NSM-panel hjelper deg med arbeidet ditt;
  • Kubernetes Ingress Controllers, for å administrere innkommende og utgående trafikk i mesh;
  • SPIRE, CA for administrasjon, distribusjon og oppdatering av sertifikater i mesh;
  • NATS, et skalerbart system for å sende meldinger, for eksempel ruteoppdateringer, fra kontrollflyet til sidevogner;
  • Åpen sporing, distribuert feilsøking (Zipkin og Jaeger støttes);
  • Prometheus, samler inn og lagrer egenskaper fra NGINX Plus sidevogner, som antall forespørsler, tilkoblinger og SSL-håndtrykk.

Funksjoner og komponenter

NGINX Plus som et dataplan dekker sidevognproxy (horisontal trafikk) og Ingress-kontroller (vertikal), avskjærer og administrerer containertrafikk mellom tjenester.

Funksjoner inkluderer:

  • Gjensidig TLS (mTLS) autentisering;
  • Lastbalansering;
  • Feiltoleranse;
  • Fartsgrense;
  • Kretsbrudd;
  • Utplasseringer av blågrønne og kanarifugler;
  • Adgangskontroll.

Lanserer NGINX Service Mesh

For å kjøre NSM trenger du:

  • tilgang til Kubernetes-miljøet. NGINX Service Mesh støttes på mange Kubernetes-plattformer, inkludert Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere og vanlige Kubernetes-klynger distribuert på maskinvareservere;
  • Tool kubectl, installert på maskinen som NSM skal installeres fra;
  • Tilgang til NGINX Service Mesh-utgivelsespakker. Pakken inneholder NSM-bilder som trengs for opplasting til et privat register for containere som er tilgjengelige i Kubernetes-klyngen. Pakken inneholder også nginx-meshctl, nødvendig for å distribuere NSM.

For å distribuere NSM med standardinnstillinger, kjør følgende kommando. Under distribusjon vises meldinger som indikerer vellykket installasjon av komponenter, og til slutt en melding som indikerer at NSM kjører i et eget navneområde (du må først скачать og plasser den i registeret, ca. oversetter):

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

For flere alternativer, inkludert avanserte innstillinger, kjør denne kommandoen:

$ nginx-meshctl deploy –h

Sjekk at kontrollplanet fungerer riktig i navneområdet nginx-mesh, Du får til dette:

$ 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

Avhengig av distribusjonsinnstillingene som angir manuelle eller automatiske injeksjonspolicyer, vil NGINX sidevogns proxyer legges til applikasjoner som standard. For å deaktivere automatisk tilføyelse, les her

For eksempel hvis vi distribuerer applikasjonen sove i navneområdet standard~~POS=TRUNC, og sjekk deretter Pod - vi vil se to kjørende beholdere, applikasjonen sove og tilhørende sidevogn:

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

Vi kan også overvåke applikasjonen sove i NGINX Plus-panelet, kjør denne kommandoen for å få tilgang til sidevogn fra din lokale maskin:

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

Så går vi bare inn her i nettleseren. Du kan også koble til Prometheus for å overvåke applikasjonen sove.

Du kan bruke individuelle Kubernetes-ressurser til å konfigurere trafikkpolicyer, for eksempel tilgangskontroll, hastighetsbegrensning og kretsbrudd, for dette se dokumentasjon

Konklusjon

NGINX Service Mesh er tilgjengelig for gratis nedlasting på portal F5. Prøv det i utvikler- og testmiljøene dine og skriv til oss om resultatene.

For å prøve NGINX Plus Ingress Controller, aktiver gratis prøveperiode i 30 dager, eller Kontakt oss for å diskutere brukstilfellene dine.

Oversettelse av Pavel Demkovich, selskapets ingeniør Southbridge. Systemadministrasjon for RUB 15 000 per måned. Og som en egen avdeling - et treningssenter Slurm, øving og ingenting annet enn øvelse.

Kilde: www.habr.com

Legg til en kommentar