NGINX үйлчилгээний тор боломжтой

NGINX үйлчилгээний тор боломжтой

Бид урьдчилан үзэх хувилбарыг танилцуулж байгаадаа таатай байна NGINX үйлчилгээний сүлжээ (NSM) нь Kubernetes орчинд чингэлэгийн урсгалыг удирдахад NGINX Plus-д суурилсан мэдээллийн онгоц ашигладаг, багцалсан хөнгөн үйлчилгээний тор юм.

NSM үнэгүй эндээс татаж авна уу. Та үүнийг хөгжүүлэлтийн болон туршилтын орчинд туршиж үзнэ гэж найдаж байна - мөн таны санал хүсэлтийг хүлээж байна GitHub дээр.

Микро үйлчилгээний аргачлалыг хэрэгжүүлэх нь хүргэлтийн цар хүрээ, түүнчлэн нарийн төвөгтэй байдлаас шалтгаалан хүндрэлтэй байдаг. Үйлчилгээ хоорондын харилцаа улам төвөгтэй болж, дибаг хийх асуудал улам хэцүү болж, илүү олон үйлчилгээнд удирдахад илүү их нөөц шаардлагатай болдог.

NSM нь танд дараах зүйлсийг хангаснаар эдгээр асуудлыг шийддэг.

  • Аюулгүй байдал, энэ нь одоо урьд өмнөхөөсөө илүү чухал болсон. Мэдээллийн зөрчил нь компанид жил бүр олон сая долларын орлого, нэр хүндээ алдахад хүргэдэг. NSM нь бүх холболтыг mTLS ашиглан шифрлэхийг баталгаажуулдаг тул сүлжээгээр хакерууд хулгайлж болзошгүй нууц мэдээлэл байхгүй. Хандалтын хяналт нь үйлчилгээнүүд бусад үйлчилгээтэй хэрхэн харилцах талаар бодлогыг тохируулах боломжийг танд олгоно.
  • Замын хөдөлгөөний менежмент. Програмын шинэ хувилбарыг илгээхдээ алдаа гарсан тохиолдолд ирж буй траффикийг хязгаарлаж эхлэх хэрэгтэй. NSM-ийн чингэлэгийн хөдөлгөөний ухаалаг менежментийн тусламжтайгаар та шинэ үйлчилгээнүүдийн хөдөлгөөнийг хязгаарлах бодлогыг цаг хугацааны явцад нэмэгдүүлэх боломжтой. Хурд хязгаарлах, таслуур зэрэг бусад функцууд нь таны бүх үйлчилгээний хөдөлгөөний урсгалыг бүрэн хянах боломжийг танд олгоно.
  • Дүрслэх. Олон мянган үйлчилгээг удирдах нь дибаг хийх, дүрслэн харуулах хар дарсан зүүд байж болно. NSM нь NGINX Plus-д байгаа бүх боломжуудыг харуулдаг Grafana хяналтын самбарын тусламжтайгаар энэ нөхцөл байдлыг шийдвэрлэхэд тусалдаг. Мөн хэрэгжүүлсэн Нээлттэй Tracing нь гүйлгээг нарийвчлан хянах боломжийг танд олгоно.
  • Гибрид хүргэлт, хэрэв танай компани бусад ихэнх компанийн нэгэн адил Кубернетес дээр ажилладаг дэд бүтцийг ашигладаггүй бол. 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, чиглүүлэлтийн шинэчлэлт гэх мэт мессежийг удирдлагын онгоцноос хажуугийн тэрэг рүү илгээх өргөтгөх боломжтой систем;
  • Нээлттэй 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 (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere болон техник хангамжийн сервер дээр байрлуулсан ердийн Kubernetes кластерууд зэрэг олон 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-тэй холбогдож болно унтах.

Та хандалтын хяналт, хурдыг хязгаарлах, хэлхээг таслах зэрэг замын хөдөлгөөний бодлогыг тохируулахын тулд Кубернетын хувийн нөөцийг ашиглаж болно. баримт бичиг

дүгнэлт

NGINX Service Mesh-ийг эндээс үнэгүй татаж авах боломжтой портал F5. Үүнийг өөрийн хөгжүүлэлтийн болон туршилтын орчинд туршаад үзээрэй үр дүнгийн талаар бидэнд бичээрэй.

NGINX Plus Ingress Controller-г туршиж үзэхийн тулд идэвхжүүлнэ үү үнэгүй туршилтын хугацаа 30 хоногийн турш, эсвэл Бидэнтэй холбоо барина уу ашиглах тохиолдлуудаа хэлэлцэх.

Компанийн инженер Павел Демковичийн орчуулга Саутбридж. Системийн удирдлага нь сард 15 рубль юм. Мөн тусдаа хэлтэс болгон - сургалтын төв Бухимдах, дадлага хийгээд дадлагаас өөр юу ч биш.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх