Mesh ya Huduma ya NGINX inapatikana

Mesh ya Huduma ya NGINX inapatikana

Tunafurahi kuwasilisha toleo la onyesho la kukagua Mesh ya Huduma ya NGINX (NSM), matundu ya huduma nyepesi yaliyounganishwa ambayo hutumia ndege ya data ya NGINX Plus kudhibiti trafiki ya kontena katika mazingira ya Kubernetes.

NSM ni bure shusha hapa. Tunatumai utaijaribu kwa mazingira ya uboreshaji na majaribio - na utarajie maoni yako kwenye GitHub.

Utekelezaji wa mbinu ya huduma ndogo umejaa ugumu kadiri ukubwa wa utoaji unavyokua, pamoja na ugumu wake. Mawasiliano kati ya huduma inakuwa ngumu zaidi, matatizo ya utatuzi yanakuwa magumu zaidi, na huduma zaidi na zaidi zinahitaji rasilimali zaidi ili kudhibiti.

NSM hutatua matatizo haya kwa kukupa:

  • usalama, ambayo sasa ni muhimu zaidi kuliko hapo awali. Ukiukaji wa data unaweza kugharimu kampuni mamilioni ya dola kila mwaka katika kupoteza mapato na sifa. NSM huhakikisha kwamba miunganisho yote imesimbwa kwa njia fiche kwa kutumia mTLS, kwa hivyo hakuna data nyeti inayoweza kuibwa na wadukuzi kwenye mtandao. Udhibiti wa ufikiaji hukuruhusu kuweka sera za jinsi huduma zinavyowasiliana na huduma zingine.
  • Usimamizi wa Trafiki. Wakati wa kusafirisha toleo jipya la programu, unaweza kutaka kuanza kwa kuzuia trafiki inayoingia ikiwa kuna hitilafu. Ukiwa na usimamizi mahiri wa trafiki wa vyombo vya NSM, unaweza kuweka sera ya vizuizi vya trafiki kwa huduma mpya ambazo zitaongeza trafiki kwa wakati. Vipengele vingine, kama vile kupunguza kasi na vivunja saketi, hukupa udhibiti kamili wa mtiririko wa huduma zako zote.
  • Visualization. Kudhibiti maelfu ya huduma kunaweza kuwa ndoto ya utatuzi na taswira. NSM husaidia kukabiliana na hali hii kwa kutumia dashibodi ya Grafana iliyojengewa ndani inayoonyesha vipengele vyote vinavyopatikana katika NGINX Plus. Na pia Ufuatiliaji Wazi uliotekelezwa hukuruhusu kufuatilia shughuli kwa undani.
  • Utoaji wa mseto, ikiwa kampuni yako, kama wengine wengi, haitumii miundombinu inayoendeshwa kabisa kwenye Kubernetes. NSM inahakikisha kwamba maombi ya urithi hayaachwe bila kushughulikiwa. Kwa usaidizi wa Kidhibiti cha Ingress cha NGINX Kubernetes kilichotekelezwa, huduma za urithi zitaweza kuwasiliana na huduma za mesh, na kinyume chake.

NSM pia huhakikisha usalama wa programu katika mazingira sifuri ya uaminifu kwa kutumia kwa uwazi usimbaji fiche na uthibitishaji kwenye trafiki ya kontena. Pia hutoa mwonekano na uchanganuzi wa muamala, huku kukusaidia kwa haraka na kwa usahihi kuzindua upelekaji na matatizo ya utatuzi. Pia hutoa udhibiti wa trafiki punjepunje, ikiruhusu timu za DevOps kupeleka na kuboresha sehemu za programu huku ikiwezesha wasanidi programu kuunda na kuunganisha kwa urahisi programu zao zinazosambazwa.

Je, Mesh ya Huduma ya NGINX inafanya kazi vipi?

NSM inajumuisha ndege ya data iliyounganishwa kwa trafiki mlalo (huduma-kwa-huduma) na Kidhibiti cha Ingress cha NGINX Plus kilichopachikwa kwa trafiki wima, inayodhibitiwa na ndege moja ya udhibiti.

Ndege ya udhibiti imeundwa mahususi na kuboreshwa kwa ajili ya ndege ya data ya NGINX Plus na inafafanua sheria za udhibiti wa trafiki zinazosambazwa kwenye kando za NGINX Plus.

Katika NSM, proksi za sidecars husakinishwa kwa kila huduma kwenye wavu. Wanaingiliana na suluhisho zifuatazo za chanzo wazi:

  • Grafana, taswira ya parameta ya Prometheus, paneli ya NSM iliyojengwa hukusaidia kwa kazi yako;
  • Kubernetes Ingress Controllers, kwa ajili ya kudhibiti trafiki zinazoingia na zinazotoka kwenye matundu;
  • SPIRE, CA kwa ajili ya kusimamia, kusambaza na kusasisha vyeti katika matundu;
  • NATS, mfumo scalable wa kutuma ujumbe, kama vile masasisho ya njia, kutoka kwa ndege ya udhibiti hadi sidecars;
  • Fungua Ufuatiliaji, utatuzi uliosambazwa (Zipkin na Jaeger wameungwa mkono);
  • Prometheus, hukusanya na kuhifadhi sifa kutoka kwa kando za NGINX Plus, kama vile idadi ya maombi, miunganisho na kupeana mkono kwa SSL.

Kazi na vipengele

NGINX Plus kama ndege ya data inashughulikia seva mbadala ya kando (trafiki mlalo) na kidhibiti cha Ingress (wima), kuingilia na kudhibiti trafiki ya kontena kati ya huduma.

Vipengele ni pamoja na:

  • uthibitishaji wa Mutual TLS (mTLS);
  • Kusawazisha mzigo;
  • Uvumilivu wa makosa;
  • Kikomo cha kasi;
  • Kuvunjika kwa mzunguko;
  • Bluu-kijani na kupelekwa kwa canary;
  • Udhibiti wa ufikiaji.

Inazindua Mesh ya Huduma ya NGINX

Ili kuendesha NSM unahitaji:

  • upatikanaji wa mazingira ya Kubernetes. NGINX Service Mesh inatumika kwenye majukwaa mengi ya Kubernetes, ikiwa ni pamoja na Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere, na makundi ya kawaida ya Kubernetes yaliyowekwa kwenye seva za maunzi;
  • Chombo kubectl, imewekwa kwenye mashine ambayo NSM itawekwa;
  • Ufikiaji wa vifurushi vya kutolewa vya Huduma ya NGINX. Kifurushi kina picha za NSM zinazohitajika kupakiwa kwenye sajili ya kibinafsi kwa vyombo vinavyopatikana katika kundi la Kubernetes. Kifurushi pia kina nginx-meshctl, inahitajika kupeleka NSM.

Ili kupeleka NSM na mipangilio chaguo-msingi, endesha amri ifuatayo. Wakati wa kupeleka, ujumbe unaonyeshwa unaonyesha usakinishaji uliofanikiwa wa vifaa na, mwishowe, ujumbe unaoonyesha kuwa NSM inafanya kazi katika nafasi tofauti ya majina (unahitaji kwanza. download na kuiweka kwenye rejista, takriban. mfasiri):

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

Kwa chaguzi zaidi, pamoja na mipangilio ya hali ya juu, endesha amri hii:

$ nginx-meshctl deploy –h

Angalia kuwa ndege ya kudhibiti inafanya kazi kwa usahihi katika nafasi ya majina nginx-mesh, unaweza kupenda hii:

$ 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

Kulingana na mipangilio ya uwekaji ambayo huweka sera za mwongozo au za sindano kiotomatiki, proksi za NGINX sidecars zitaongezwa kwa programu kwa chaguo-msingi. Ili kuzima kuongeza kiotomatiki, soma hapa

Kwa mfano, ikiwa tutapeleka programu kulala katika nafasi ya majina default, na kisha angalia Pod - tutaona vyombo viwili vinavyoendesha, programu kulala na sidecar inayohusika:

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

Tunaweza pia kufuatilia maombi kulala kwenye paneli ya NGINX Plus, inayoendesha amri hii ya kufikia sidecar kutoka kwa mashine yako ya karibu:

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

Kisha tunaingia tu hapa katika kivinjari. Unaweza pia kuunganishwa na Prometheus ili kufuatilia programu kulala.

Unaweza kutumia nyenzo mahususi za Kubernetes kusanidi sera za trafiki, kama vile udhibiti wa ufikiaji, kupunguza viwango na kuvunja mzunguko, kwa hili tazama. nyaraka

Hitimisho

NGINX Service Mesh inapatikana kwa kupakuliwa bila malipo kwa lango F5. Ijaribu katika mazingira yako ya usanidi na majaribio na tuandikie kuhusu matokeo.

Ili kujaribu Kidhibiti cha Kuingia cha NGINX Plus, washa kipindi cha majaribio bila malipo kwa siku 30, au Wasiliana nasi kujadili kesi zako za matumizi.

Tafsiri ya Pavel Demkovich, mhandisi wa kampuni Southbridge. Usimamizi wa mfumo kwa RUB 15 kwa mwezi. Na kama mgawanyiko tofauti - kituo cha mafunzo Slurm, mazoezi na hakuna ila mazoezi.

Chanzo: mapenzi.com

Kuongeza maoni