اسان هڪ ڏيک نسخو پيش ڪرڻ تي راضي آهيون
NSM مفت آهي
مائڪرو سروسز جي طريقيڪار تي عمل درآمد مشڪلاتن سان ڀريل آهي جيئن ترسيل جي پيماني تي وڌندي آهي، انهي سان گڏ ان جي پيچيدگي. خدمتن جي وچ ۾ ڪميونيڪيشن وڌيڪ پيچيده ٿي ويندو آهي، ڊيبگنگ جا مسئلا وڌيڪ مشڪل ٿي ويندا آهن، ۽ وڌيڪ ۽ وڌيڪ خدمتن کي منظم ڪرڻ لاءِ وڌيڪ وسيلن جي ضرورت هوندي آهي.
NSM توهان کي مهيا ڪندي انهن مسئلن کي حل ڪري ٿو:
- حفاظت، جيڪو هاڻي هميشه کان وڌيڪ اهم آهي. ڊيٽا جي ڀڃڪڙي هڪ ڪمپني کي ساليانو ڪروڙين ڊالر خرچ ڪري سگهي ٿي گم ٿيل آمدني ۽ شهرت ۾. NSM انهي ڳالهه کي يقيني بڻائي ٿو ته سڀئي ڪنيڪشن mTLS استعمال ڪندي انڪرپٽ ٿيل آهن، تنهنڪري ڪو به حساس ڊيٽا نه آهي جيڪو چوري ڪري سگهجي ٿو نيٽ ورڪ تي هيڪرز. رسائي ڪنٽرول توهان کي پاليسيون سيٽ ڪرڻ جي اجازت ڏئي ٿي ته ڪيئن خدمتون ٻين خدمتن سان گفتگو ڪن ٿيون.
- ٽرئفڪ جو انتظام. جڏهن هڪ ايپليڪيشن جو نئون نسخو موڪلڻ، توهان شايد شروع ڪرڻ چاهيو ٿا ته ايندڙ ٽرئفڪ کي محدود ڪري ان کي غلطي جي صورت ۾. NSM جي ذهين ڪنٽينر ٽرئفڪ مئنيجمينٽ سان، توهان نئين خدمتن لاءِ ٽريفڪ پابندي واري پاليسي مقرر ڪري سگهو ٿا جيڪا وقت سان گڏ ٽرئفڪ کي وڌائيندي. ٻيون خاصيتون، جهڙوڪ رفتار کي محدود ڪرڻ ۽ سرڪٽ برڪرز، توهان کي توهان جي سڀني خدمتن جي ٽرئفڪ جي وهڪري تي مڪمل ڪنٽرول ڏيو.
- زير نظر. هزارين خدمتن کي منظم ڪرڻ هڪ ڊيبگنگ ۽ بصري خواب ٿي سگهي ٿو. NSM هن صورتحال کي حل ڪرڻ ۾ مدد ڪري ٿو هڪ تعمير ٿيل گرافانا ڊيش بورڊ سان جيڪو ڏيکاري ٿو NGINX پلس ۾ موجود سڀئي خاصيتون. ۽ پڻ لاڳو ٿيل اوپن ٽريڪنگ توهان کي تفصيل سان ٽرانزيڪشن جي نگراني ڪرڻ جي اجازت ڏئي ٿي.
- هائبرڊ پهچائڻ، جيڪڏهن توهان جي ڪمپني، ٻين وانگر، مڪمل طور تي Kubernetes تي هلندڙ انفراسٽرڪچر استعمال نه ڪندي. NSM انهي ڳالهه کي يقيني بڻائي ٿو ته ميراثي ايپليڪيشنون اڻڄاتل نه رهجي وڃن. لاڳو ٿيل NGINX Kubernetes Ingress ڪنٽرولر جي مدد سان، ميراثي خدمتون ميش سروسز سان رابطو ڪرڻ جي قابل ٿي وينديون، ۽ ان جي برعڪس.
NSM پڻ ڪنٽينر ٽريفڪ کي شفاف طور تي انڪرپشن ۽ تصديق لاڳو ڪندي صفر اعتماد واري ماحول ۾ ايپليڪيشن سيڪيورٽي کي يقيني بڻائي ٿو. اهو پڻ مهيا ڪري ٿو ٽرانزيڪشن جي نمائش ۽ تجزيو، توهان کي جلدي ۽ صحيح طور تي شروع ڪرڻ ۾ مدد ڪندي ۽ مسئلن کي حل ڪرڻ. اهو پڻ گرينولر ٽرئفڪ ڪنٽرول مهيا ڪري ٿو، DevOps ٽيمن کي ايپليڪيشنن جي حصن کي ترتيب ڏيڻ ۽ بهتر ڪرڻ جي اجازت ڏئي ٿو جڏهن ته ڊولپرز کي انهن جي ورهايل ايپليڪيشنن کي ٺاهڻ ۽ آساني سان ڳنڍڻ جي قابل بڻائي ٿي.
NGINX سروس ميش ڪيئن ڪم ڪندو آهي؟
NSM افقي (خدمت کان-سروس) ٽريفڪ لاءِ هڪ متحد ڊيٽا جهاز تي مشتمل آهي ۽ عمودي ٽرئفڪ لاءِ هڪ ايمبيڊڊ NGINX پلس انگريس ڪنٽرولر، هڪ واحد ڪنٽرول جهاز ذريعي منظم.
ڪنٽرول جهاز خاص طور تي NGINX پلس ڊيٽا جهاز لاءِ ٺهيل ۽ بهتر ڪيو ويو آهي ۽ NGINX پلس سائڊ ڪارز ۾ ورهايل ٽرئفڪ ڪنٽرول ضابطن کي بيان ڪري ٿو.
NSM ۾، سائڊ ڪارز پروڪسز ميش ۾ هر خدمت لاء نصب ٿيل آهن. اهي هيٺين اوپن سورس حلن سان انٽرفيس ڪن ٿا:
- Grafana, Prometheus parameter visualization, build-in NSM پينل توھان جي ڪم ۾ مدد ڪري ٿو.
- Kubernetes Ingress ڪنٽرولرز، ميش ۾ ايندڙ ۽ ٻاهرئين ٽرئفڪ کي منظم ڪرڻ لاء؛
- SPIRE، CA ميش ۾ سرٽيفڪيٽ جي انتظام، تقسيم ۽ تازه ڪاري لاء؛
- NATS، پيغام موڪلڻ لاءِ اسڪيلبل سسٽم، جهڙوڪ روٽ اپڊيٽ، ڪنٽرول جهاز کان سائڊ ڪارز تائين؛
- اوپن ٽريڪنگ، ورهايل ڊيبگنگ (زپڪن ۽ جيجر جي حمايت ڪئي وئي)؛
- Prometheus، گڏ ڪري ٿو ۽ NGINX پلس سائڊ ڪارز کان خاصيتون گڏ ڪري ٿو، جهڙوڪ درخواستن جو تعداد، ڪنيڪشن ۽ SSL هٿ ملائڻ.
ڪم ۽ اجزاء
NGINX پلس هڪ ڊيٽا جهاز جي طور تي سائڊ ڪار پراکسي (افقي ٽرئفڪ) ۽ انگريس ڪنٽرولر (عمودي) تي مشتمل آهي، خدمتن جي وچ ۾ ڪنٽينر ٽرئفڪ کي مداخلت ۽ انتظام ڪرڻ.
خاصيتون شامل آهن:
- باهمي TLS (mTLS) جي تصديق؛
- لوڊ توازن؛
- عيب رواداري؛
- رفتار جي حد؛
- سرڪٽ ٽوڙڻ؛
- نيري-سائي ۽ ڪينري جي تعیناتي؛
- رسائي ڪنٽرول.
NGINX سروس ميش لانچ ڪرڻ
NSM هلائڻ لاءِ توھان کي ضرورت آھي:
- Kubernetes ماحول تائين رسائي. NGINX سروس ميش ڪيترن ئي Kubernetes پليٽ فارمن تي سپورٽ ڪئي وئي آهي، بشمول Amazon Elastic Container Service for Kubernetes (EKS)، Azure Kubernetes Service (AKS)، Google Kubernetes Engine (GKE)، VMware vSphere، ۽ هارڊويئر سرورز تي مقرر ڪيل باقاعده Kubernetes ڪلسٽر؛
- ساز
kubectl
, مشين تي نصب ڪيو ويو جنهن مان NSM نصب ڪيو ويندو؛ - NGINX سروس ميش رليز پيڪيجز تائين رسائي. پيڪيج ۾ 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-mesh، توهان هن کي پسند ڪري سگهو ٿا:
$ 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 سائڊ ڪارز پراکسيز کي ڊفالٽ طور ايپليڪيشنن ۾ شامل ڪيو ويندو. خودڪار شامل ڪرڻ کي بند ڪرڻ لاء، پڙهو
مثال طور، جيڪڏهن اسان ايپليڪيشن کي ترتيب ڏيون ٿا ننڊ نالي جي جڳهه ۾ رٿيل، ۽ پوءِ پوڊ چيڪ ڪريو - اسان ڏسنداسين ٻه هلندڙ ڪنٽينر، ايپليڪيشن ننڊ ۽ لاڳاپيل سائڊ ڪار:
$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NAME READY STATUS RESTARTS AGE
sleep-674f75ff4d-gxjf2 2/2 Running 0 5h23m
اسان پڻ ايپليڪيشن جي نگراني ڪري سگهون ٿا ننڊ NGINX پلس پينل ۾، توهان جي مقامي مشين مان سائڊ ڪار تائين رسائي حاصل ڪرڻ لاء هي حڪم هلائڻ:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886
پوءِ اسان اندر وڃون ٿا
توھان ٽريفڪ پاليسين کي ترتيب ڏيڻ لاءِ انفرادي Kubernetes وسيلا استعمال ڪري سگھو ٿا، جھڙوڪ رسائي ڪنٽرول، شرح کي محدود ڪرڻ ۽ سرڪٽ ٽوڙڻ، ھن لاءِ ڏسو
ٿڪل
NGINX سروس ميش دستياب آهي مفت ڊائون لوڊ تي
ڪوشش ڪرڻ لاءِ NGINX Plus Ingress Controller، چالو ڪريو
Pavel Demkovich پاران ترجمو، ڪمپني انجنيئر
جو ذريعو: www.habr.com