NGINX Service Mesh қолжетімді

NGINX Service Mesh қолжетімді

Біз алдын ала қарау нұсқасын ұсынуға қуаныштымыз NGINX қызмет торы (NSM), Kubernetes орталарындағы контейнерлік трафикті басқару үшін NGINX Plus негізіндегі деректер жазықтығын пайдаланатын жинақталған жеңіл қызмет торы.

NSM тегін мұнда жүктеп алыңыз. Оны әзірлеуші ​​​​және сынақ орталары үшін сынап көресіз деп үміттенеміз және пікіріңізді күтеміз GitHub арналған.

Микросервистердің әдіснамасын енгізу жеткізу ауқымының ұлғаюына, сондай-ақ оның күрделілігіне байланысты қиындықтарға толы. Қызметтер арасындағы байланыс күрделене түседі, жөндеу мәселелері қиындай түседі және көбірек қызметтер басқару үшін көбірек ресурстарды қажет етеді.

NSM сізге мыналарды қамтамасыз ету арқылы осы мәселелерді шешеді:

  • Қауіпсіздік, бұл қазір бұрынғыдан да маңызды. Деректердің бұзылуы компанияға жыл сайын миллиондаған доллар шығынға ұшырауы мүмкін табыс пен беделін жоғалтуы мүмкін. NSM барлық қосылымдардың mTLS көмегімен шифрланғанын қамтамасыз етеді, сондықтан желі арқылы хакерлер ұрлай алатын құпия деректер жоқ. Қатынасты басқару қызметтерінің басқа қызметтермен байланысуының саясаттарын орнатуға мүмкіндік береді.
  • қозғалысты басқару. Қолданбаның жаңа нұсқасын жіберген кезде, қате болған жағдайда оған кіріс трафикті шектеуден бастағыңыз келуі мүмкін. NSM контейнерлік трафикті зияткерлік басқару арқылы сіз уақыт өте келе трафикті арттыратын жаңа қызметтер үшін трафикті шектеу саясатын орнатуға болады. Жылдамдықты шектеу және автоматты ажыратқыштар сияқты басқа мүмкіндіктер барлық қызметтеріңіздің трафик ағынын толық басқаруға мүмкіндік береді.
  • Көрнекілік. Мыңдаған қызметтерді басқару отладтау және визуализация қорқынышы болуы мүмкін. NSM бұл жағдайды NGINX Plus ішінде қол жетімді барлық мүмкіндіктерді көрсететін кірістірілген Grafana бақылау тақтасы арқылы шешуге көмектеседі. Сондай-ақ енгізілген Open Tracing транзакцияларды егжей-тегжейлі бақылауға мүмкіндік береді.
  • Гибридті жеткізулер, егер сіздің компанияңыз, басқалардың көпшілігі сияқты, толығымен Kubernetes жүйесінде жұмыс істейтін инфрақұрылымды пайдаланбаса. NSM ескі қолданбалардың қараусыз қалмауын қамтамасыз етеді. Енгізілген NGINX Kubernetes Ingress Controller көмегімен бұрынғы қызметтер тор қызметтерімен және керісінше байланыса алады.

NSM сонымен қатар контейнерлік трафикке шифрлау мен аутентификацияны мөлдір қолдану арқылы нөлдік сенімді орталарда қолданба қауіпсіздігін қамтамасыз етеді. Ол сондай-ақ транзакцияның көрінуін және талдауын қамтамасыз етеді, орналастыруды жылдам және дәл іске қосуға және ақаулықтарды жоюға көмектеседі. Ол сонымен қатар DevOps топтарына қолданбалардың бөліктерін орналастыруға және оңтайландыруға мүмкіндік беретін, әзірлеушілерге таратылған қолданбаларды құруға және оңай қосуға мүмкіндік беретін түйіршікті трафикті басқаруды қамтамасыз етеді.

NGINX Service Mesh қалай жұмыс істейді?

NSM көлденең (қызметтен қызметке) трафикке арналған бірыңғай деректер жазықтығынан және бір басқару жазықтығымен басқарылатын тік трафикке арналған ендірілген NGINX Plus кіріс контроллерінен тұрады.

Басқару ұшағы NGINX Plus деректер жазықтығы үшін арнайы әзірленген және оңтайландырылған және NGINX Plus бүйірлік көліктер арасында таратылған қозғалысты басқару ережелерін анықтайды.

NSM жүйесінде тордағы әрбір қызмет үшін жанама прокси-серверлер орнатылады. Олар келесі ашық бастапқы шешімдермен интерфейс жасайды:

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

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

NGINX Plus деректер жазықтығы ретінде арба проксиін (көлденең трафик) және кіру контроллерін (тік) қамтиды, қызметтер арасындағы контейнерлік трафикті ұстайды және басқарады.

Мүмкіндіктерге мыналар кіреді:

  • Өзара 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 sidecars проксилері қолданбаларға әдепкі бойынша қосылады. Автоматты қосуды өшіру үшін оқыңыз осында

Мысалы, егер біз қолданбаны орналастырсақ ұйықтау аттар кеңістігінде Әдепкі, содан кейін 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 рубль. Ал жеке бөлімше ретінде – оқу орталығы Шырылдау, тәжірибе және тәжірибеден басқа ештеңе емес.

Ақпарат көзі: www.habr.com

пікір қалдыру