NGINX Service Mesh misy

NGINX Service Mesh misy

Faly izahay manolotra dikan-tsarimihetsika NGINX Service Mesh (NSM), harato serivisy maivana mitambatra izay mampiasa fiaramanidina angon-drakitra miorina amin'ny NGINX Plus hitantana ny fifamoivoizana amin'ny kaontenera ao amin'ny tontolo Kubernetes.

Maimaim-poana ny NSM download eto. Manantena izahay fa hanandrana izany ho an'ny dev sy ny tontolo fitsapana ianao - ary manantena ny valin-teninao amin'ny GitHub.

Ny fampiharana ny fomba fiasa microservice dia feno fahasarotana satria mitombo ny haavon'ny fanaterana, ary koa ny fahasarotany. Mihasarotra kokoa ny fifandraisana eo amin'ny serivisy, mihasarotra ny olana amin'ny debugging, ary mihamaro ny serivisy mitaky loharanon-karena bebe kokoa.

Ny NSM dia mamaha ireto olana ireto amin'ny fanomezana anao:

  • fiarovana, izay manan-danja kokoa noho ny hatramin'izay. Ny fanitsakitsahana ny angon-drakitra dia mety handany vola an-tapitrisany dolara isan-taona amin'ny fidiram-bola very sy ny lazany. Ny NSM dia miantoka fa ny fifandraisana rehetra dia voarakotra amin'ny fampiasana mTLS, noho izany dia tsy misy angon-drakitra saro-pady azo angalarin'ny hackers amin'ny tambajotra. Ny fanaraha-maso ny fidirana dia ahafahanao mametraka politika momba ny fomba fifandraisan'ny serivisy amin'ny serivisy hafa.
  • Fitantanana ny fifamoivoizana. Rehefa mandefa dika vaovao amin'ny rindranasa iray ianao dia azonao atao ny manomboka amin'ny famerana ny fifamoivoizana miditra aminy raha sendra misy hadisoana. Miaraka amin'ny fitantanana fifamoivoizana kaontenera manan-tsaina an'ny NSM, azonao atao ny mametraka politika famerana ny fifamoivoizana ho an'ny serivisy vaovao izay hampitombo ny fifamoivoizana rehefa mandeha ny fotoana. Ny endri-javatra hafa, toy ny famerana ny hafainganam-pandeha sy ny fiatoana amin'ny faritra, dia manome anao fifehezana feno amin'ny fivezivezen'ny serivisy rehetra.
  • fijerena. Ny fitantanana serivisy an'arivony dia mety ho nofinofy ratsy momba ny debugging sy sary. Ny NSM dia manampy amin'ny fiatrehana an'io toe-javatra io amin'ny alΓ lan'ny dashboard Grafana namboarina izay mampiseho ny endri-javatra rehetra misy ao amin'ny NGINX Plus. Ary koa ny fampiharana Open Tracing dia ahafahanao manara-maso ny fifampiraharahana amin'ny antsipiriany.
  • Fanaterana hybrid, raha tsy mampiasa fotodrafitrasa mandeha amin'ny Kubernetes tanteraka ny orinasanao, toy ny ankamaroan'ny hafa. Ny NSM dia miantoka fa ny fangatahana lova dia tsy avela ho voakarakara. Miaraka amin'ny fanampian'ny NGINX Kubernetes Ingress Controller, ny serivisy lova dia afaka mifandray amin'ny serivisy mesh, ary ny mifamadika amin'izany.

Ny NSM ihany koa dia miantoka ny fiarovana ny fampiharana amin'ny tontolo tsy misy fitokisana amin'ny alΓ lan'ny fampiharana mangarahara ny fanafenana sy ny fanamarinana amin'ny fifamoivoizana. Izy io koa dia manome fahitana sy famakafakana amin'ny fifanakalozana, manampy anao amin'ny fandefasana haingana sy marina ary hamaha olana. Izy io koa dia manome fanaraha-maso ny fifamoivoizana be dia be, ahafahan'ny ekipa DevOps mametraka sy manatsara ny ampahany amin'ny rindranasa ary mamela ny mpamorona hanangana sy hampifandray mora foana ny rindranasa nozarainy.

Ahoana no fiasan'ny NGINX Service Mesh?

Ny NSM dia misy fiaramanidina data mitambatra ho an'ny fifamoivoizana marindrano (service-to-service) ary NGINX Plus Ingress Controller ho an'ny fifamoivoizana mitsangana, tantanin'ny fiaramanidina tokana.

Ny fiaramanidina fanaraha-maso dia natao manokana sy namboarina ho an'ny fiaramanidina data NGINX Plus ary mamaritra ny fitsipiky ny fanaraha-maso ny fifamoivoizana zaraina amin'ny sidecars NGINX Plus.

Ao amin'ny NSM, ny proxies sidecars dia napetraka ho an'ny serivisy tsirairay ao anaty harato. Izy ireo dia mifandray amin'ireto vahaolana open source manaraka ireto:

  • Grafana, fampisehoana paramΓ¨tre Prometheus, tontonana NSM naorina dia manampy anao amin'ny asanao;
  • Kubernetes Ingress Controllers, amin'ny fitantanana ny fifamoivoizana miditra sy mivoaka amin'ny harato;
  • SPIRE, CA amin'ny fitantanana, fizarana ary fanavaozana ny mari-pankasitrahana amin'ny harato;
  • NATS, rafitra azo scalable handefasana hafatra, toy ny fanavaozana ny lalana, manomboka amin'ny fiaramanidina fanaraha-maso mankany amin'ny sidecars;
  • Open Tracing, fizarana debugging (Zipkin sy Jaeger tohanan);
  • Prometheus, manangona sy mitahiry toetra avy amin'ny sidecars NGINX Plus, toy ny isan'ny fangatahana, ny fifandraisana ary ny tΓ nana SSL.

Asa sy singa

Ny NGINX Plus ho toy ny fiaramanidina data dia mandrakotra ny proxy sidecar (trafa mitsivalana) sy ny Ingress controller (mitsangana), manakana sy mitantana ny fifamoivoizana eo amin'ny serivisy.

Anisan'izany ny:

  • Fanamarinana TLS (mTLS);
  • Load balancing;
  • Fandeferana diso;
  • fetra hafainganam-pandeha;
  • Fahatapahan'ny circuit;
  • Manga-maitso sy canary deployments;
  • Fanaraha-maso ny fidirana.

Manomboka ny NGINX Service Mesh

Mba hampandehanana ny NSM dia mila:

  • fidirana amin'ny tontolo Kubernetes. Ny NGINX Service Mesh dia tohanana amin'ny sehatra Kubernetes maro, anisan'izany ny Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere, ary ny cluster Kubernetes mahazatra napetraka amin'ny mpizara hardware;
  • fitaovana kubectl, napetraka amin'ny milina izay hametrahan'ny NSM;
  • Fidirana amin'ny fonosana famoahana NGINX Service Mesh. Ny fonosana dia misy sary NSM ilaina amin'ny fampiakarana any amin'ny rejisitra manokana ho an'ny kaontenera misy ao amin'ny cluster Kubernetes. Misy ihany koa ny fonosana nginx-meshctl, mila mametraka ny NSM.

Mba hametrahana NSM miaraka amin'ny fikandrana default, araho ity baiko manaraka ity. Mandritra ny fametrahana azy dia misy hafatra mampiseho fa nahomby ny fametrahana ireo singa ary farany, hafatra iray milaza fa ny NSM dia mandeha amin'ny toerana misy anarana manokana (mila aloha ianao ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ary apetraho ao amin'ny rejisitra, eo ho eo MPANDIKA TENY):

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

Raha mila safidy bebe kokoa, ao anatin'izany ny fanovana mandroso, araho ity baiko ity:

$ nginx-meshctl deploy –h

Hamarino fa miasa tsara ao amin'ny namespace ny fiaramanidina fanaraha-maso nginx-mesh, azonao atao izao:

$ 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

Miankina amin'ny toe-javatra fametrahana izay mametraka ny politikan'ny tsindrona manual na mandeha ho azy, ny NGINX sidecars proxy dia ampiana amin'ny fampiharana amin'ny alΓ lan'ny default. Mba hanesorana ny fanampiana mandeha ho azy, vakio eto

Ohatra, raha mametraka ny fampiharana isika torimaso amin'ny namespace toerana misy anao, ary jereo avy eo ny Pod - hahita fitoeran-javatra roa mihazakazaka isika, ny fampiharana torimaso ary ny sidecar mifandray:

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

Afaka manara-maso ny fampiharana ihany koa izahay torimaso ao amin'ny tontonana NGINX Plus, araho ity baiko ity mba hidirana sidecar amin'ny milina eo an-toerana:

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

Dia miditra fotsiny izahay eto ao amin'ny navigateur. Azonao atao ihany koa ny mifandray amin'ny Prometheus hanaraha-maso ny fampiharana torimaso.

Azonao atao ny mampiasa loharanon-karena Kubernetes tsirairay mba handrindrana ny politikan'ny fifamoivoizana, toy ny fanaraha-maso ny fidirana, ny famerana ny saran-dalana ary ny fanapahana ny fizaran-tany. tahirin-kevitra

famaranana

NGINX Service Mesh dia azo alaina maimaim-poana amin'ny vavahady F5. Andramo izany amin'ny devoanao sy ny tontolo fitsapana ary manorata aminay momba ny vokatra.

Raha te hanandrana ny NGINX Plus Ingress Controller, ampio fotoam-pitsapana maimaim-poana mandritra ny 30 andro, na Mifandraisa aminay mba hiresaka momba ny fampiasanao.

Dikantenin'i Pavel Demkovich, injenieran'ny orinasa tetezana atsimo. Fitantanana rafitra ho an'ny RUB 15 isam-bolana. Ary toy ny fizarana misaraka - foibe fanofanana Slurm, fanazaran-tena ary tsy misy afa-tsy fanao.

Source: www.habr.com

Add a comment