NGINX Service Mesh mavjud

NGINX Service Mesh mavjud

Biz oldindan ko'rish versiyasini taqdim etishdan mamnunmiz NGINX Service Mesh (NSM), Kubernetes muhitida konteyner trafigini boshqarish uchun NGINX Plus-ga asoslangan ma'lumotlar tekisligidan foydalanadigan engil xizmat ko'rsatish tarmog'i.

NSM bepul bu erdan yuklab olish. Umid qilamizki, siz uni ishlab chiquvchi va sinov muhitlarida sinab ko'rasiz va fikr-mulohazalaringizni kutamiz GitHub-da.

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 скачать va uni ro'yxatga olish kitobiga joylashtiring, taxminan. tarjimon):

$ 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 shu yerda

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 shu yerda brauzerda. Ilovani kuzatish uchun Prometeyga ham ulanishingiz mumkin uyqu.

Siz kirishni boshqarish, tezlikni cheklash va elektr tarmog'ini uzish kabi trafik siyosatlarini sozlash uchun individual Kubernetes resurslaridan foydalanishingiz mumkin, buning uchun qarang. hujjatlar

xulosa

NGINX Service Mesh saytidan bepul yuklab olish mumkin F5 portali. Uni ishlab chiquvchi va sinov muhitida sinab ko'ring va natijalar haqida bizga yozing.

NGINX Plus Ingress Controller-ni sinab ko'rish uchun faollashtiring bepul sinov muddati 30 kun davomida yoki Biz bilan bog'lanish foydalanish holatlaringizni muhokama qilish uchun.

Kompaniya muhandisi Pavel Demkovich tomonidan tarjima Sautbrij. Oyiga 15 000 rubl uchun tizim boshqaruvi. Va alohida bo'linma sifatida - o'quv markazi Slurm, amaliyot va amaliyotdan boshqa hech narsa.

Manba: www.habr.com

a Izoh qo'shish