NGINX Service Mesh havebla

NGINX Service Mesh havebla

Ni ĝojas prezenti antaŭprezentan version NGINX Servo Mesh (NSM), pakigita malpeza servomaŝo kiu uzas NGINX Plus-bazitan datumaviadilon por administri kontenertrafikon en Kubernetes-medioj.

NSM estas senpaga elŝuti ĉi tie. Ni esperas, ke vi provos ĝin por dev- kaj testaj medioj - kaj antaŭĝojos viajn komentojn sur GitHub.

La efektivigo de mikroservoj estas plena de malfacilaĵoj dum la skalo de livero kreskas, same kiel ĝia komplekseco. Komunikado inter servoj fariĝas pli kompleksa, sencimigaj problemoj fariĝas pli malfacilaj, kaj pli kaj pli da servoj postulas pli da rimedoj por administri.

NSM solvas ĉi tiujn problemojn provizante al vi:

  • Sekureco, kiu nun estas pli grava ol iam ajn. Datumrompo povas kosti al kompanio milionoj da dolaroj ĉiujare en perditaj enspezoj kaj reputacio. NSM certigas, ke ĉiuj konektoj estas ĉifritaj per mTLS, do ne ekzistas sentemaj datumoj, kiuj povas esti ŝtelitaj de retpiratoj tra la reto. Alirkontrolo permesas al vi agordi politikojn pri kiel servoj komunikas kun aliaj servoj.
  • trafikadministrado. Kiam vi sendas novan version de aplikaĵo, vi eble volas komenci limigante envenantan trafikon al ĝi en kazo de eraro. Kun la inteligenta kontenera trafikadministrado de NSM, vi povas agordi trafikan limigan politikon por novaj servoj, kiuj pliigos trafikon kun la tempo. Aliaj funkcioj, kiel rapido-limigo kaj ŝaltiloj, donas al vi plenan kontrolon pri la trafikfluo de ĉiuj viaj servoj.
  • Bildigo. Administri milojn da servoj povas esti sencimiga kaj bildiga koŝmaro. NSM helpas trakti ĉi tiun situacion per enkonstruita Grafana panelo, kiu montras ĉiujn funkciojn disponeblajn en NGINX Plus. Kaj ankaŭ la efektivigita Malferma Spurado permesas vin kontroli transakciojn detale.
  • Hibridaj liveroj, se via kompanio, kiel la plej multaj aliaj, ne uzas infrastrukturon kurantan tute sur Kubernetes. NSM certigas, ke heredaj aplikoj ne estas lasitaj neprizorgitaj. Kun la helpo de la efektivigita NGINX Kubernetes Ingress Controller, heredaj servoj povos komuniki kun mesh-servoj, kaj inverse.

NSM ankaŭ certigas aplikaĵsekurecon en nul-fidaj medioj travideble aplikante ĉifradon kaj aŭtentikigon al kontenera trafiko. Ĝi ankaŭ disponigas transakcian videblecon kaj analizon, helpante vin rapide kaj precize lanĉi deplojojn kaj solvi problemojn. Ĝi ankaŭ disponigas granulan trafikregadon, permesante al DevOps-teamoj disfaldi kaj optimumigi partojn de aplikoj ebligante al programistoj konstrui kaj facile konekti siajn distribuitajn aplikojn.

Kiel funkcias la NGINX Service Mesh?

NSM konsistas el unuigita datumaviadilo por horizontala (servo-al-serva) trafiko kaj enigita NGINX Plus Ingress Controller por vertikala trafiko, administrita per ununura kontrolaviadilo.

La kontrolaviadilo estas specife desegnita kaj optimumigita por la datumaviadilo NGINX Plus kaj difinas regulojn pri trafikregado distribuitaj tra NGINX Plus kromĉaroj.

En NSM, kromĉaroj prokuriloj estas instalitaj por ĉiu servo en la maŝo. Ili interagadas kun la sekvaj malfermfontaj solvoj:

  • Grafana, Prometheus-parametro-bildigo, enkonstruita NSM-panelo helpas vin kun via laboro;
  • Kubernetes Ingress Controllers, por administri envenantan kaj elirantan trafikon en la maŝo;
  • SPIRE, CA por administri, distribui kaj ĝisdatigi atestojn en la maŝo;
  • NATS, skalebla sistemo por sendado de mesaĝoj, kiel itinerĝisdatigoj, de la kontrolaviadilo ĝis kromĉaroj;
  • Open Tracing, distribuita senararigado (subtenataj Zipkin kaj Jaeger);
  • Prometheus, kolektas kaj konservas karakterizaĵojn de NGINX Plus kromĉaroj, kiel la nombro da petoj, konektoj kaj SSL-manpremoj.

Funkcioj kaj komponantoj

NGINX Plus kiel datumaviadilo kovras sidecar proxy (horizontala trafiko) kaj Ingress-regilo (vertikala), kaptante kaj administrante kontenera trafiko inter servoj.

Trajtoj inkluzivas:

  • Reciproka TLS (mTLS) aŭtentigo;
  • Ŝarĝbalancado;
  • Kulpo toleremo;
  • Rapida limo;
  • Circuit breaking;
  • Bluverdaj kaj kanariaj deplojoj;
  • Kontrolo de aliro.

Lanĉante NGINX Service Mesh

Por ruli NSM vi bezonas:

  • aliro al la medio de Kubernetes. NGINX Service Mesh estas subtenata sur multaj Kubernetes-platformoj, inkluzive de Amazon Elastic Container Service por Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere, kaj regulaj Kubernetes-grupoj deplojitaj sur aparataj serviloj;
  • Ilo kubectl, instalita sur la maŝino de kiu NSM estos instalita;
  • Aliro al eldonpakaĵoj de NGINX Service Mesh. La pakaĵo enhavas NSM-bildojn necesajn por alŝuti al privata registro por ujoj disponeblaj en la Kubernetes-grupo. La pakaĵo ankaŭ enhavas nginx-meshctl, bezonata por deploji NSM.

Por deploji NSM kun defaŭltaj agordoj, rulu la sekvan komandon. Dum deplojo, mesaĝoj estas montrataj indikante la sukcesan instaladon de komponantoj kaj, finfine, mesaĝo indikante, ke NSM funkcias en aparta nomspaco (vi devas unue скачать kaj metu ĝin en la registron, ĉ. tradukisto):

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

Por pli da ebloj, inkluzive de altnivelaj agordoj, rulu ĉi tiun komandon:

$ nginx-meshctl deploy –h

Kontrolu, ke la kontrolaviadilo funkcias ĝuste en la nomspaco nginx-mesh, vi povas ŝati ĉi tion:

$ 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

Depende de la disfaldaj agordoj, kiuj starigas manajn aŭ aŭtomatajn injektajn politikojn, NGINX-flankaj prokuriloj estos aldonitaj al aplikoj defaŭlte. Por malŝalti aŭtomatan aldonadon, legu tie

Ekzemple, se ni disfaldi la aplikaĵon dormo en nomspaco defaŭlte, kaj poste kontrolu la Pod - ni vidos du kurantajn ujojn, la aplikaĵon dormo kaj la rilata kromĉaro:

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

Ni ankaŭ povas monitori la aplikaĵon dormo en la panelo NGINX Plus, rulu ĉi tiun komandon por aliri kromĉaron de via loka maŝino:

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

Tiam ni nur eniru tie en la retumilo. Vi ankaŭ povas konektiĝi al Prometheus por kontroli la aplikaĵon dormo.

Vi povas uzi individuajn rimedojn de Kubernetes por agordi trafikpolitikojn, kiel ekzemple alirkontrolo, tariflimigo kaj cirkvito-rompado, por ĉi tio vidu dokumentado

konkludo

NGINX Service Mesh disponeblas senpage elŝutebla ĉe portalo F5. Provu ĝin en viaj dev- kaj testaj medioj kaj skribu al ni pri la rezultoj.

Por provi NGINX Plus Ingress Controller, aktivigu senpaga provperiodo dum 30 tagoj, aŭ Kontaktu nin por diskuti viajn uzkazojn.

Traduko de Pavel Demkovich, firmao-inĝeniero Southbridge. Sistemadministrado por 15 RUB monate. Kaj kiel aparta divido - trejna centro Slurm, praktiko kaj nenio krom ekzercado.

fonto: www.habr.com

Aldoni komenton