Biz oldindan ko'rish versiyasini taqdim etishdan mamnunmiz
NSM bepul
Mikroservislar metodologiyasini tatbiq etish yetkazib berish ko'lami o'sib borishi, shuningdek, uning murakkabligi bilan bog'liq qiyinchiliklarga to'la. Xizmatlar o'rtasidagi aloqa murakkablashadi, disk raskadrovka muammolari qiyinlashadi va ko'proq xizmatlar boshqarish uchun ko'proq resurslarni talab qiladi.
NSM sizga quyidagilarni taqdim etish orqali ushbu muammolarni hal qiladi:
- Xavfsizlik, bu hozir har qachongidan ham muhimroq. Ma'lumotlarning buzilishi kompaniyaga har yili millionlab dollar daromad va obro'sini yo'qotishi mumkin. NSM barcha ulanishlar mTLS yordamida shifrlanganligini ta'minlaydi, shuning uchun tarmoq orqali xakerlar tomonidan o'g'irlanishi mumkin bo'lgan maxfiy ma'lumotlar yo'q. Kirish nazorati sizga xizmatlarning boshqa xizmatlar bilan qanday aloqa qilishiga oid siyosatlarni o'rnatish imkonini beradi.
- transport boshqaruvi. Ilovaning yangi versiyasini jo'natishda siz xatolik yuz berganda unga kiruvchi trafikni cheklashdan boshlashingiz mumkin. NSM-ning aqlli konteyner trafigini boshqarish bilan siz vaqt o'tishi bilan trafikni oshiradigan yangi xizmatlar uchun trafikni cheklash siyosatini o'rnatishingiz mumkin. Tezlikni cheklash va avtomatik o'chirgichlar kabi boshqa xususiyatlar sizga barcha xizmatlaringizning trafik oqimini to'liq nazorat qilish imkonini beradi.
- Vizualizatsiya. Minglab xizmatlarni boshqarish disk raskadrovka va vizualizatsiya dahshatli tush bo'lishi mumkin. NSM bu vaziyatni NGINX Plus-da mavjud bo'lgan barcha xususiyatlarni aks ettiruvchi o'rnatilgan Grafana boshqaruv paneli yordamida hal qilishga yordam beradi. Shuningdek, joriy qilingan Open Tracing tranzaktsiyalarni batafsil kuzatish imkonini beradi.
- Gibrid yetkazib berish, agar sizning kompaniyangiz, boshqalar kabi, butunlay Kubernetesda ishlaydigan infratuzilmadan foydalanmasa. NSM eski ilovalar qarovsiz qolmasligini ta'minlaydi. Amalga oshirilgan NGINX Kubernetes Ingress Controller yordamida eski xizmatlar mesh xizmatlari bilan aloqa o'rnatishi mumkin bo'ladi va aksincha.
NSM, shuningdek, konteyner trafigiga shifrlash va autentifikatsiyani shaffof qo'llash orqali nol ishonch muhitida dastur xavfsizligini ta'minlaydi. Shuningdek, u tranzaktsiyalarni ko'rish va tahlil qilish imkonini beradi, bu sizga joylashtirishni tez va aniq boshlashga va muammolarni bartaraf etishga yordam beradi. Bu, shuningdek, DevOps guruhlariga ilovalarning qismlarini joylashtirish va optimallashtirish imkonini beruvchi, shuningdek, ishlab chiquvchilarga tarqatilgan ilovalarni yaratish va osongina ulash imkonini beruvchi granüler trafikni boshqarishni ta'minlaydi.
NGINX Service Mesh qanday ishlaydi?
NSM gorizontal (xizmatdan xizmatga) trafik uchun birlashtirilgan ma'lumotlar tekisligidan va bitta boshqaruv tekisligi tomonidan boshqariladigan vertikal trafik uchun o'rnatilgan NGINX Plus Ingress Controllerdan iborat.
Boshqaruv tekisligi NGINX Plus ma'lumotlar tekisligi uchun maxsus ishlab chiqilgan va optimallashtirilgan va NGINX Plus yon mashinalari bo'ylab taqsimlangan transportni boshqarish qoidalarini belgilaydi.
NSM-da to'rdagi har bir xizmat uchun proksi-serverlar o'rnatiladi. Ular quyidagi ochiq manbali echimlar bilan interfeysga ega:
- Grafana, Prometey parametrlarini vizualizatsiya qilish, o'rnatilgan NSM paneli ishingizda sizga yordam beradi;
- Kubernetes Ingress Controllers, tarmoqdagi kiruvchi va chiquvchi trafikni boshqarish uchun;
- SPIRE, tarmoqdagi sertifikatlarni boshqarish, tarqatish va yangilash uchun CA;
- NATS, xabarlarni yuborish uchun kengaytiriladigan tizim, masalan, marshrutni yangilash, boshqaruv tekisligidan vagonlarga;
- Ochiq kuzatuv, taqsimlangan disk raskadrovka (Zipkin va Jaeger qo'llab-quvvatlanadi);
- Prometey so'rovlar soni, ulanishlar va SSL qo'l siqishlari kabi NGINX Plus yon avtomobillarining xususiyatlarini to'playdi va saqlaydi.
Funktsiyalar va komponentlar
NGINX Plus maʼlumotlar tekisligi sifatida yonbosh proksi-server (gorizontal trafik) va kirish boshqaruvchisini (vertikal) qamrab oladi, xizmatlar orasidagi konteyner trafigini ushlab turadi va boshqaradi.
Xususiyatlarga quyidagilar kiradi:
- O'zaro TLS (mTLS) autentifikatsiyasi;
- Yukni muvozanatlash;
- Xatolarga chidamlilik;
- Tezlik chegarasi;
- O'chirishni buzish;
- Moviy-yashil va kanareykalarni joylashtirish;
- Kirish nazorati.
NGINX Service Mesh ishga tushirilmoqda
NSMni ishga tushirish uchun sizga kerak:
- Kubernetes muhitiga kirish. NGINX Service Mesh koʻplab Kubernetes platformalarida, jumladan Kubernetes uchun Amazon Elastic Container Service (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere va apparat serverlarida oʻrnatilgan oddiy Kubernetes klasterlarida qoʻllab-quvvatlanadi;
- asbob
kubectl
, NSM o'rnatiladigan mashinaga o'rnatilgan; - NGINX Service Mesh reliz paketlariga kirish. Paketda Kubernetes klasterida mavjud konteynerlar uchun shaxsiy registrga yuklash uchun zarur bo'lgan NSM tasvirlari mavjud. Paket shuningdek o'z ichiga oladi
nginx-meshctl
, NSMni joylashtirish uchun zarur.
NSM-ni standart sozlamalar bilan o'rnatish uchun quyidagi buyruqni bajaring. O'rnatish vaqtida komponentlarning muvaffaqiyatli o'rnatilishini ko'rsatadigan xabarlar va nihoyat, NSM alohida nomlar maydonida ishlayotganligini ko'rsatadigan xabarlar ko'rsatiladi (avval
$ 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.
Qo'shimcha parametrlar, jumladan, kengaytirilgan sozlamalar uchun ushbu buyruqni bajaring:
$ nginx-meshctl deploy –h
Boshqaruv tekisligi nomlar maydonida to'g'ri ishlashini tekshiring nginx-mesh, buni qilishingiz mumkin:
$ 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
Qo'lda yoki avtomatik in'ektsiya siyosatlarini o'rnatadigan joylashtirish sozlamalariga qarab, NGINX sidecars proksi-serverlari sukut bo'yicha ilovalarga qo'shiladi. Avtomatik qo'shishni o'chirish uchun o'qing
Misol uchun, agar biz dasturni joylashtirsak uyqu nom maydonida default, va keyin Podni tekshiring - biz ikkita ishlaydigan konteynerni, dasturni ko'ramiz uyqu va tegishli yonbosh:
$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NAME READY STATUS RESTARTS AGE
sleep-674f75ff4d-gxjf2 2/2 Running 0 5h23m
Biz ilovani ham kuzatishimiz mumkin uyqu NGINX Plus panelida mahalliy mashinangizdan yonboshga kirish uchun ushbu buyruqni bajaring:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886
Keyin biz shunchaki kiramiz
Siz kirishni boshqarish, tezlikni cheklash va elektr tarmog'ini uzish kabi trafik siyosatlarini sozlash uchun individual Kubernetes resurslaridan foydalanishingiz mumkin, buning uchun qarang.
xulosa
NGINX Service Mesh saytidan bepul yuklab olish mumkin
NGINX Plus Ingress Controller-ni sinab ko'rish uchun faollashtiring
Kompaniya muhandisi Pavel Demkovich tomonidan tarjima
Manba: www.habr.com