Мо хушнудем, ки версияи пешнамоишро пешниҳод кунем
NSM ройгон аст
Татбиқи методологияи хидматрасонии микроэлементҳо бо зиёд шудани миқёси таҳвил ва инчунин мураккабии он бо мушкилот рӯ ба рӯ мешавад. Муоширати байни хадамот мураккабтар мешавад, мушкилоти ислоҳи хатогиҳо мушкилтар мешавад ва хидматҳои бештар ва бештар барои идора захираҳои бештарро талаб мекунанд.
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
Он гоҳ мо танҳо ворид мешавем
Шумо метавонед захираҳои инфиродии Kubernetes-ро барои танзими сиёсати трафик, аз қабили назорати дастрасӣ, маҳдудияти суръат ва шикастани схема истифода баред, барои ин нигаред.
хулоса
NGINX Service Mesh барои зеркашии ройгон дар сайт дастрас аст
Барои санҷидани NGINX Plus Ingress Controller, фаъол созед
Тарҷумаи Павел Демкович, муҳандиси ширкат
Манбаъ: will.com