NGINX Service Mesh дастрас аст

NGINX Service Mesh дастрас аст

Мо хушнудем, ки версияи пешнамоишро пешниҳод кунем NGINX Хадамоти Mesh (NSM), як шабакаи сабуки хидматрасонии маҷмӯӣ, ки як ҳавопаймои иттилоотии NGINX Plus-ро барои идоракунии трафики контейнерӣ дар муҳити Kubernetes истифода мебарад.

NSM ройгон аст дар инҷо зеркашӣ. Мо умедворем, ки шумо онро барои таҳиякунанда ва муҳитҳои озмоишӣ месанҷед ва фикру мулоҳизаҳои худро бесаброна интизоред дар GitHub.

Татбиқи методологияи хидматрасонии микроэлементҳо бо зиёд шудани миқёси таҳвил ва инчунин мураккабии он бо мушкилот рӯ ба рӯ мешавад. Муоширати байни хадамот мураккабтар мешавад, мушкилоти ислоҳи хатогиҳо мушкилтар мешавад ва хидматҳои бештар ва бештар барои идора захираҳои бештарро талаб мекунанд.

NSM ин мушкилотро тавассути пешниҳоди шумо ҳал мекунад:

  • Амният, ки холо аз харвакта дида мухимтар аст. Вайрон кардани маълумот метавонад ҳар сол ба як ширкат миллионҳо доллар зарар расонад, ки даромад ва эътибори худро аз даст диҳад. NSM кафолат медиҳад, ки ҳама пайвастҳо бо истифода аз mTLS рамзгузорӣ карда мешаванд, бинобар ин ягон маълумоти ҳассос вуҷуд надорад, ки аз ҷониби ҳакерҳо тавассути шабака дуздида шаванд. Назорати дастрасӣ ба шумо имкон медиҳад, ки сиёсатҳоро барои муоширати хидматҳо бо хидматҳои дигар муқаррар кунед.
  • Идоракунии трафик. Ҳангоми интиқол додани версияи нави барнома, шумо метавонед бо маҳдуд кардани трафики воридотӣ ба он дар сурати хатогӣ оғоз кунед. Бо идоракунии оқилонаи трафики контейнерии NSM, шумо метавонед сиёсати маҳдудкунии трафикро барои хидматҳои нав муқаррар кунед, ки трафикро бо мурури замон афзоиш медиҳад. Дигар хусусиятҳо, аз қабили маҳдудияти суръат ва сӯзандоруҳо, ба шумо назорати пурраи ҷараёни трафики тамоми хидматҳои шуморо медиҳад.
  • Визуализатсия. Идоракунии ҳазорон хидматҳо метавонад як даҳшати ислоҳ ва визуализатсия бошад. NSM дар ҳалли ин вазъият бо панели дарунсохташудаи Grafana, ки тамоми хусусиятҳои дар NGINX Plus мавҷудбударо намоиш медиҳад, кӯмак мекунад. Ва инчунин Tracing Open ба шумо имкон медиҳад, ки транзаксияҳоро ба таври муфассал назорат кунед.
  • Интиқоли гибридӣ, агар ширкати шумо, мисли аксари дигарон, инфрасохтореро, ки пурра дар Kubernetes кор мекунад, истифода набарад. NSM кафолат медиҳад, ки замимаҳои кӯҳна беназорат намемонанд. Бо ёрии NGINX Kubernetes Ingress Controller татбиқшаванда, хидматҳои кӯҳна метавонанд бо хидматҳои mesh муошират кунанд ва баръакс.

NSM инчунин амнияти барномаҳоро дар муҳити эътимоди сифр тавассути татбиқи шаффоф рамзгузорӣ ва аутентификатсия ба трафики контейнерӣ таъмин мекунад. Он инчунин аёният ва таҳлили транзаксияҳоро таъмин мекунад, ки ба шумо барои зуд ва дақиқ оғоз кардани ҷойгиркунӣ ва ҳалли мушкилот кӯмак мекунад. Он инчунин назорати трафикро таъмин мекунад, ки ба гурӯҳҳои DevOps имкон медиҳад, ки қисмҳои барномаҳоро ҷойгир ва оптимизатсия кунанд ва ба таҳиягарон имкон диҳанд, ки замимаҳои тақсимшудаи худро созанд ва ба осонӣ пайваст кунанд.

Чӣ тавр NGINX Service Mesh кор мекунад?

NSM аз як ҳавопаймои ягонаи додаҳо барои трафики уфуқӣ (хизматрасонӣ ба хидмат) ва як контролери дохилии NGINX Plus Ingress барои трафики амудӣ иборат аст, ки аз ҷониби як ҳавопаймои назоратӣ идора карда мешавад.

Ҳавопаймои идоракунӣ махсусан барои ҳавопаймои додаҳои NGINX Plus тарҳрезӣ ва оптимизатсия карда шудааст ва қоидаҳои идоракунии трафикро, ки дар байни мошинҳои NGINX Plus тақсим карда шудаанд, муайян мекунад.

Дар NSM, проксиҳои канори мошинҳо барои ҳар як хидмат дар тор насб карда мешаванд. Онҳо бо ҳалли зерини кушодаасос интерфейс мекунанд:

  • Grafana, визуализатсияи параметрҳои Prometheus, панели дарунсохт NSM ба шумо дар кори шумо кӯмак мекунад;
  • Controllers Ingress Kubernetes, барои идоракунии трафики воридотӣ ва содиротӣ дар тор;
  • SPIRE, CA барои идора, паҳн ва навсозии сертификатҳо дар шабака;
  • NATS, як системаи миқёспазир барои ирсоли паёмҳо, аз қабили навсозии масир, аз ҳавопаймои идоракунӣ ба вагонҳо;
  • Tracing кушода, ислоҳи тақсимшуда (Zipkin ва Jaeger дастгирӣ карда мешавад);
  • Prometheus, аз NGINX Plus хусусиятҳо, аз қабили шумораи дархостҳо, пайвастҳо ва дастфишориҳои SSL ҷамъоварӣ ва нигоҳ медорад.

Функсияҳо ва ҷузъҳо

NGINX Plus ҳамчун як ҳавопаймои маълумот прокси канори мошин (трафики уфуқӣ) ва контролери Ingress (амудӣ) -ро дар бар мегирад, боздоштан ва идоракунии трафики контейнериро байни хидматҳо фаро мегирад.

Хусусиятҳо дар бар мегиранд:

  • Аутентификатсияи мутақобилаи TLS (mTLS);
  • Мувозинати сарборӣ;
  • Таҳаммулпазирии хатогиҳо;
  • маҳдудияти суръат;
  • шикастани схема;
  • Ҷойгиркунии кабуд-сабз ва канарӣ;
  • Назорати дастрасӣ.

Оғози NGINX Service Mesh

Барои ба кор даровардани NSM ба шумо лозим аст:

  • дастрасӣ ба муҳити Kubernetes. NGINX Service Mesh дар бисёр платформаҳои Kubernetes дастгирӣ карда мешавад, аз ҷумла Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere ва кластерҳои муқаррарии Kubernetes, ки дар серверҳои сахтафзор ҷойгир шудаанд;
  • Tool kubectl, дар мошине насб карда шудааст, ки аз он NSM насб карда мешавад;
  • Дастрасӣ ба бастаҳои нашри NGINX Service Mesh. Маҷмӯа тасвирҳои NSM-ро дар бар мегирад, ки барои боргузорӣ ба феҳристи хусусӣ барои контейнерҳои дар кластери Кубернетес мавҷудбуда лозиманд. Баста инчунин дорои nginx-meshctl, барои ҷойгиркунии NSM лозим аст.

Барои ҷойгиркунии NSM бо танзимоти пешфарз, фармони зеринро иҷро кунед. Ҳангоми ҷойгиркунӣ, паёмҳо нишон дода мешаванд, ки насби бомуваффақияти ҷузъҳоро нишон медиҳанд ва дар ниҳоят, паёме нишон медиҳад, ки NSM дар фазои номҳои алоҳида кор мекунад (аввал шумо бояд скачать ва онро дар реестр ҷойгир кунед, тақрибан. тарчумон):

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

Барои имконоти бештар, аз ҷумла танзимоти пешрафта, ин фармонро иҷро кунед:

$ nginx-meshctl deploy –h

Тафтиш кунед, ки ҳавопаймои идоракунӣ дар фазои ном дуруст кор мекунад nginx-mesh, шумо метавонед ин корро кунед:

$ 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

Вобаста аз танзимоти ҷойгиркунӣ, ки сиёсати сӯзандоруи дастӣ ё автоматиро муқаррар мекунад, проксиҳои NGINX ба таври нобаёнӣ ба барномаҳо илова карда мешаванд. Барои хомӯш кардани иловаи худкор, хонед дар ин ҷо

Масалан, агар мо барномаро ҷойгир кунем хоб дар фазои ном Пешфарз, ва сипас Pod -ро тафтиш кунед - мо ду контейнери коркунандаро мебинем, барнома хоб ва канори алоқаманд:

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

Мо инчунин метавонем барномаро назорат кунем хоб дар панели NGINX Plus, ин фармонро иҷро кунед, то аз мошини маҳаллии худ дастрасӣ пайдо кунед:

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

Он гоҳ мо танҳо ворид мешавем дар ин ҷо дар браузер. Шумо инчунин метавонед ба Prometheus пайваст шавед, то барномаро назорат кунед хоб.

Шумо метавонед захираҳои инфиродии Kubernetes-ро барои танзими сиёсати трафик, аз қабили назорати дастрасӣ, маҳдудияти суръат ва шикастани схема истифода баред, барои ин нигаред. ҳуҷҷатҳо

хулоса

NGINX Service Mesh барои зеркашии ройгон дар сайт дастрас аст портали F5. Онро дар муҳити таҳиякунанда ва озмоишии худ санҷед ва дар бораи натиҷаҳо ба мо нависед.

Барои санҷидани NGINX Plus Ingress Controller, фаъол созед давраи озмоиши ройгон барои 30 рӯз, ё Бо мо тамос гиред барои муҳокима кардани ҳолатҳои истифодаи шумо.

Тарҷумаи Павел Демкович, муҳандиси ширкат Саутбридж. Маъмурияти система барои 15 000 рубл дар як моҳ. Ва хамчун шуъбаи алохида — маркази таълимй Ширин, амалия ва чизе ҷуз амалия.

Манбаъ: will.com

Илова Эзоҳ