NGINX Service Mesh жеткиликтүү

NGINX Service Mesh жеткиликтүү

Биз алдын ала көрүү версиясын тартуулоого кубанычтабыз NGINX Кызмат Mesh (NSM), Kubernetes чөйрөлөрүндө контейнердик трафикти башкаруу үчүн NGINX Plus негизиндеги маалымат учагын колдонгон, топтомдогу жеңил кызматтык тор.

NSM акысыз бул жерден жүктөп алуу. Аны иштеп чыгуу жана сыноо чөйрөлөрү үчүн сынап көрөсүз деп үмүттөнөбүз жана пикириңизди чыдамсыздык менен күтөбүз GitHub боюнча.

Микросервистердин методологиясын ишке ашыруу, жеткирүүнүн масштабы, ошондой эле анын татаалдыгы чоңойгон сайын кыйынчылыктар менен коштолууда. Кызматтардын ортосундагы байланыш татаалдашып, мүчүлүштүктөрдү оңдоо көйгөйлөрү татаалдашат жана барган сайын көбүрөөк кызматтар башкаруу үчүн көбүрөөк ресурстарды талап кылат.

NSM сизди камсыз кылуу менен бул көйгөйлөрдү чечет:

  • коопсуздук, бул азыр болуп көрбөгөндөй маанилүү. Маалыматтын бузулушу компанияга жыл сайын миллиондогон долларларды жоготушу мүмкүн. NSM бардык туташуулардын mTLS аркылуу шифрленгендигин камсыздайт, андыктан тармак аркылуу хакерлер тарабынан уурдалышы мүмкүн болгон купуя маалыматтар жок. Мүмкүнчүлүктү көзөмөлдөө кызматтардын башка кызматтар менен байланышы боюнча саясаттарды коюуга мүмкүндүк берет.
  • Traffic Management. Тиркеменин жаңы версиясын жөнөтүп жатканда, ката болгон учурда ага кирген трафикти чектөө менен баштасаңыз болот. NSMдин контейнердик трафикти интеллектуалдык башкаруусу менен сиз жаңы кызматтар үчүн трафикти чектөө саясатын орното аласыз, ал убакыттын өтүшү менен трафикти көбөйтөт. Ылдамдыкты чектөө жана автоматтык өчүргүчтөр сыяктуу башка функциялар бардык кызматтарыңыздын трафик агымын толук көзөмөлдөөгө мүмкүнчүлүк берет.
  • Визуализация. Миңдеген кызматтарды башкаруу мүчүлүштүктөрдү оңдоо жана визуалдаштыруу коркунучтуу түш болушу мүмкүн. NSM бул кырдаалды NGINX Plus ичинде жеткиликтүү болгон бардык функцияларды чагылдырган орнотулган Grafana тактасы менен чечүүгө жардам берет. Ошондой эле ишке ашырылган Open Tracing транзакцияларды деталдуу түрдө көзөмөлдөөгө мүмкүндүк берет.
  • Гибриддик жеткирүү, эгерде сиздин компанияңыз, башкалар сыяктуу эле, толугу менен Kubernetes'те иштеген инфраструктураны колдонбосо. NSM эски колдонмолордун кароосуз калбасын камсыздайт. Ишке ашырылган NGINX Kubernetes Ingress Controller жардамы менен эски кызматтар тор кызматтары менен байланыша алат жана тескерисинче.

NSM ошондой эле контейнер трафигине шифрлөө жана аутентификацияны ачык-айкын колдонуу менен нөлдүк ишеним чөйрөлөрүндө колдонмонун коопсуздугун камсыздайт. Ал ошондой эле транзакциянын көрүнүүсүн жана анализин камсыздайт, тез жана так жайылтууларды ишке киргизүүгө жана көйгөйлөрдү чечүүгө жардам берет. Ошондой эле, ал DevOps командаларына тиркемелердин бөлүктөрүн жайгаштырууга жана оптималдаштырууга мүмкүндүк берип, иштеп чыгуучуларга бөлүштүрүлгөн тиркемелерди түзүүгө жана оңой туташтырууга мүмкүнчүлүк берет.

NGINX Service Mesh кантип иштейт?

NSM горизонталдуу (кызмат-кызмат) трафик үчүн бирдиктүү маалымат тегиздигинен жана бир башкаруу тегиздиги менен башкарылган вертикалдык трафик үчүн камтылган NGINX Plus Ingress Controllerден турат.

Башкаруучу учак NGINX Plus маалымат учагы үчүн атайын иштелип чыккан жана оптималдаштырылган жана NGINX Plus капталдары боюнча бөлүштүрүлгөн жол кыймылын көзөмөлдөө эрежелерин аныктайт.

NSMде сеткадагы ар бир кызмат үчүн капталдардын проксилери орнотулган. Алар төмөнкү ачык булак чечимдери менен иштешет:

  • Grafana, Prometheus параметринин визуализациясы, орнотулган NSM панели жумушуңузга жардам берет;
  • Kubernetes Ingress Controllers, тордогу кирүүчү жана чыгуучу трафикти башкаруу үчүн;
  • SPIRE, тордогу сертификаттарды башкаруу, таратуу жана жаңыртуу үчүн CA;
  • NATS, кабарларды жөнөтүү үчүн масштабдалуучу система, мисалы, маршруттук жаңыртууларды башкаруу учагынан капталга чейин;
  • Open Tracing, бөлүштүрүлгөн мүчүлүштүктөрдү оңдоо (Zipkin жана Jaeger колдоого алынат);
  • Prometheus, NGINX Plus капталдарынан сурамдардын, байланыштардын жана SSL кол алышуунун саны сыяктуу мүнөздөмөлөрдү чогултат жана сактайт.

Функциялар жана компоненттер

NGINX Plus маалымат учагы катары каптал проксисин (горизонталдык трафик) жана Ingress контроллерин (вертикалдуу) камтыйт, кызматтардын ортосундагы контейнердик трафикти кармайт жана башкарат.

Функцияларга төмөнкүлөр кирет:

  • Өз ара TLS (mTLS) аутентификациясы;
  • жүк балансы;
  • Ката толеранттуулук;
  • Ылдамдык чектөө;
  • Электр чынжырын бузуу;
  • Көк-жашыл жана канареяларды жайгаштыруу;
  • Кирүүнү башкаруу.

NGINX Service Mesh ишке киргизилүүдө

NSM иштетүү үчүн сизге керек:

  • Kubernetes чөйрөсүнө кирүү. NGINX Service Mesh көптөгөн Kubernetes платформаларында колдоого алынат, анын ичинде Kubernetes үчүн Amazon Elastic Container Service (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere жана аппараттык серверлерде жайгаштырылган кадимки Kubernetes кластерлери;
  • курал kubectl, NSM орнотула турган машинага орнотулган;
  • NGINX Service Mesh релиз пакеттерине кирүү. Пакетте Kubernetes кластериндеги контейнерлер үчүн жеке реестрге жүктөө үчүн зарыл болгон 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-меш, сизге жагышы мүмкүн:

$ 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 рублга системаны башкаруу. Ал эми өзүнчө бөлүм катары - окуу борбору Slurm, практика жана практикадан башка эч нерсе.

Source: www.habr.com

Комментарий кошуу