د اسټیو خدمت میش کې د پوسټونو لړۍ

موږ د پوسټونو لړۍ پیل کوو چې د اسټیو خدمت میش ځینې ډیری وړتیاوې ښیې کله چې د Red Hat OpenShift او Kubernetes سره یوځای کیږي.

د اسټیو خدمت میش کې د پوسټونو لړۍ

لومړۍ برخه، نن:

  • راځئ چې د Kubernetes sidecar کانټینرونو مفهوم تشریح کړو او د دې لړۍ پوسټونو لیټ موټیف جوړ کړو: "تاسو اړتیا نلرئ په خپل کوډ کې هیڅ شی بدل کړئ".
  • راځئ چې د اسټیو بنسټیز شی معرفي کړو - د روټینګ قواعد. د اسټیو نورې ټولې ب featuresې په دوی باندې رامینځته شوي ، ځکه چې دا هغه مقررات دي چې تاسو ته اجازه درکوي مایکرو خدماتو ته ترافیک مستقیم کړئ ، د خدماتو کوډ ته بهر د YAML فایلونو په کارولو سره. موږ د کانري د ځای پرځای کولو سکیم هم په پام کې نیسو. د نوي کال بونس - په اسټیو کې 10 متقابل درسونه


دویمه برخه، ډیر ژر به تاسو ته ووایم:

  • اسټیو څنګه د سرکټ بریکر سره په ګډه پول ایجیکشن پلي کوي او دا به وښیې چې څنګه اسټیو تاسو ته اجازه درکوي د توازن سرکټ څخه مړ یا ضعیف فعالیت کونکي پوډ لرې کړئ.
  • موږ به د لومړي پوسټ څخه د سرکټ بریکر موضوع هم وګورو ترڅو وګورو چې اسټیو دلته څنګه کارول کیدی شي. موږ به تاسو ته وښیو چې څنګه د خدماتو کوډ کې د لږ بدلون پرته د YAML ترتیب کولو فایلونو او ترمینل کمانډونو په کارولو سره ترافیک روټ کړئ او د شبکې غلطۍ اداره کړئ.

دریمه برخه:

  • د تعقیب او څارنې په اړه یوه کیسه، کوم چې دمخه جوړ شوي یا په اسانۍ سره په اسټیو کې اضافه شوي. موږ به تاسو ته وښیو چې څنګه د پرومیټیوس ، جیجر ، او ګرافانا په څیر وسیلې وکاروئ د OpenShift پیمانه کولو سره په اسانۍ سره د مایکرو سرویس معمارۍ اداره کولو لپاره.
  • موږ د غلطیو د څارنې او سمبالولو څخه په عمدي توګه سیسټم ته د هغوی معرفي کولو ته حرکت کوو. په بل عبارت، موږ زده کوو چې څنګه د سرچینې کوډ بدلولو پرته د غلطۍ انجیکشن ترسره کړو، کوم چې د ازموینې له نظره خورا مهم دی - ځکه چې که تاسو د دې لپاره پخپله کوډ بدل کړئ، د اضافي غلطیتونو د معرفي کولو خطر شتون لري.

په نهایت کې ، د اسټیو خدماتو میش په وروستي پوسټ کې:

  • راځئ چې تیاره اړخ ته لاړ شو. په دقیق ډول ، موږ به د ډارک لانچ سکیم کارول زده کړو ، کله چې کوډ په مستقیم ډول د تولید ډیټا کې ځای په ځای شوی او ازمول کیږي ، مګر په هیڅ ډول د سیسټم عملیات اغیزه نه کوي. دا هغه ځای دی چې د ټرافیک ویشلو لپاره د اسټیو وړتیا په کار کې راځي. او پرته له دې چې په هیڅ ډول د جنګي سیسټم عملیات اغیزه وکړي د ژوندي تولید ډیټا آزموینې وړتیا د تصدیق ترټولو قانع کونکي میتود دی.
  • په تیاره لانچ کې رامینځته کول ، موږ به تاسو ته وښیو چې څنګه د خطر کمولو لپاره د کانري ډیپلومینټ ماډل وکاروو او تولید ته د نوي کوډ ترلاسه کول اسانه کړو. د کانري ګمارنه پخپله له نوي څخه لرې ده ، مګر اسټیو تاسو ته اجازه درکوي دا سکیم یوازې د ساده YAML فایلونو سره پلي کړئ.
  • په نهایت کې ، موږ به تاسو ته وښیو چې څنګه د اسټیو ایګریس کارولو لپاره هغه خلکو ته خدماتو ته لاسرسی ورکړئ څوک چې ستاسو له کلسترونو څخه بهر دي ترڅو د انټرنیټ سره کار کولو پرمهال د اسټیو وړتیاو څخه کار واخلي.

نو، دلته موږ ځو ...

د اسټیو نظارت او مدیریت وسیلې - هرڅه چې تاسو ورته اړتیا لرئ د خدماتو میش کې د مایکرو خدماتو تنظیم کولو ته اړتیا لرئ د خدمت میش.

د اسټیو خدمت میش څه شی دی؟

د خدماتو میش دندې پلي کوي لکه د ترافیک نظارت ، د لاسرسي کنټرول ، کشف ، امنیت ، د خطا زغم او نور ګټور شیان د خدماتو ډلې لپاره. Istio تاسو ته اجازه درکوي دا ټول د خدماتو کوډ کې د لږ بدلون پرته ترسره کړئ. د جادو راز په څه کې دی؟ اسټیو خپل پراکسي هر خدمت ته د سایډ کار کانټینر په شکل کې ضمیمه کوي (سایډ کار د موټرسایکل سایډ کار دی) ، وروسته لدې چې دې خدمت ته ټول ترافیک د پراکسي له لارې تیریږي ، کوم چې د مشخصو پالیسیو لخوا لارښود کیږي ، پریکړه کوي چې څنګه ، کله او ایا دا ترافیک باید په بشپړه توګه خدمت ته ورسیږي. اسټیو دا هم ممکنه کوي چې پرمختللي DevOps تخنیکونه پلي کړي لکه د کانري ګمارنې، سرکټ ماتونکي، غلط انجیکشن او ډیری نور.

Istio څنګه د کانټینرونو او کبرنیټ سره کار کوي

د اسټیو خدمت میش د مایکرو خدماتو رامینځته کولو او اداره کولو لپاره اړین هرڅه پلي کول دي: نظارت ، تعقیب ، سرکټ ماتونکي ، روټینګ ، د بار توازن کول ، غلط انجیکشن ، بیا هڅه کول ، وخت پای ته رسیدل ، عکس اخیستل ، د لاسرسي کنټرول ، د نرخ محدودیت او نور ډیر څه. او که څه هم نن ورځ دلته یو ټن کتابتونونه شتون لري چې دا دندې په مستقیم ډول په کوډ کې پلي کړي ، د اسټیو سره تاسو کولی شئ ټول ورته شیان ترلاسه کړئ پرته لدې چې ستاسو په کوډ کې کوم څه بدل کړئ.

د سایډکار ماډل په وینا، اسټیو د لینکس کانټینر کې چلوي، کوم چې په یو کې موقعیت لري کوبنیټس- پوډ د کنټرول شوي خدمت سره او د ورکړل شوي ترتیب سره سم فعالیت او معلومات انجیکشن او استخراجوي. موږ ټینګار کوو چې دا ستاسو خپل ترتیب دی، او دا ستاسو د کوډ څخه بهر ژوند کوي. له همدې امله، کوډ خورا ساده او لنډ کیږي.

هغه څه چې مهم دي دا دي چې د مایکرو خدماتو عملیاتي برخه په هیڅ ډول پخپله د کوډ سره تړاو نلري، پدې معنی چې د دوی عملیات په خوندي ډول د معلوماتي ټیکنالوژۍ متخصصینو ته لیږدول کیدی شي. په حقیقت کې ، ولې پراختیا کونکی باید د سرکټ ماتونکو او غلط انجیکشن لپاره مسؤل وي؟ غبرګون، هو، مګر دوی پروسس کړئ او دوی یې جوړ کړئ؟ که تاسو دا ټول د کوډ څخه لرې کړئ، پروګرام کونکي به وکوالی شي د غوښتنلیک فعالیت باندې بشپړ تمرکز وکړي. او کوډ به پخپله لنډ او ساده شي.

د خدمت میش

اسټیو، کوم چې د دوی د کوډ څخه بهر د مایکرو خدماتو اداره کولو لپاره فعالیتونه پلي کوي، د خدماتو میش مفهوم دی. په بل عبارت، دا د یو یا ډیرو بائنریونو همغږي شوې ډله ده چې د شبکې دندو میش جوړوي.

Istio څنګه د مایکرو خدماتو سره کار کوي

دا هغه څه دي چې د سایډ کار کانټینرونو کار په ترکیب کې ښکاري کوبنیټس и Minishift د مرغیو د سترګو لید: د Minishift یوه بیلګه پیل کړئ، د اسټیو لپاره یوه پروژه جوړه کړئ (راځئ چې "اسټیو سیسټم" ووایو)، د اسټیو پورې اړوند ټولې برخې نصب او چل کړئ. بیا ، لکه څنګه چې تاسو پروژې او پوډونه رامینځته کوئ ، تاسو خپلو ګمارنې ته د ترتیب کولو معلومات اضافه کوئ ، او ستاسو پوډونه د اسټیو کارول پیل کوي. یو ساده ډیاګرام داسې ښکاري:

د اسټیو خدمت میش کې د پوسټونو لړۍ

اوس تاسو کولی شئ په ترتیب کې د اسټیو تنظیمات بدل کړئ ، د مثال په توګه ، د غلط انجیکشن تنظیم کولو لپاره ، ملاتړ د کانري ګمارل یا د اسټیو نور ځانګړتیاوې - او دا ټول د غوښتنلیکونو کوډ ته لمس کولو پرته. راځئ چې ووایو تاسو غواړئ ټول ویب ترافیک د خپل لوی پیرودونکي (فو کارپوریشن) کاروونکو څخه د سایټ نوي نسخې ته واستوئ. د دې کولو لپاره، په ساده ډول د اسټیو روټینګ قاعده جوړه کړئ چې د کارن ID کې به د @foocorporation.com په لټه کې وي او د هغې مطابق یې لارښوونه وکړي. د نورو ټولو کاروونکو لپاره، هیڅ شی به بدلون ومومي. په ورته وخت کې، تاسو به په آرامۍ سره د سایټ نوې نسخه ازموینه وکړئ. او په یاد ولرئ چې تاسو اړتیا نلرئ د دې لپاره په بشپړ ډول پراختیا کونکي شامل کړئ.

او ایا تاسو به د دې لپاره خورا ګران پیسې ورکړئ؟

په بشپړ ډول نه. اسټیو خورا ګړندی دی او په کې لیکل شوی Go او ډیر لږ سر جوړوي. برسېره پردې، د آنلاین تولیداتو احتمالي زیان د پراختیا کونکي تولیداتو زیاتوالي له امله پوره کیږي. لږترلږه په تیوري کې: مه هیروئ چې د پراختیا کونکو وخت ارزښتناک دی. لکه څنګه چې د سافټویر لګښتونو لپاره، اسټیو د خلاصې سرچینې سافټویر دی، نو تاسو کولی شئ دا وړیا ترلاسه کړئ او وکاروئ.

پخپله یې ماسټر کړئ

د Red Hat پراختیا کونکي تجربې ټیم په ژوره توګه لاسونه جوړ کړي رهبري د اسټیو لخوا (په انګلیسي کې). دا په لینکس، MacOS او وینډوز چلوي، او کوډ په Java او Node.js کې شتون لري.

په اسټیو کې 10 متقابل درسونه

بلاک 1 - د پیل کونکو لپاره

د اسټیو پیژندنه
د 30 دقیقې
راځئ چې د خدماتو میش سره آشنا شو، زده کړئ چې څنګه په OpenShift Kubernetes کلستر کې Istio نصب کړئ.
پیل

په اسټیو کې د مایکرو خدماتو ځای په ځای کول
د 30 دقیقې
موږ د پسرلي بوټ او Vert.x سره درې مایکرو خدماتو ځای په ځای کولو لپاره اسټیو کاروو.
پیل

بلاک 2 - منځنۍ کچه

په اسټیو کې څارنه او تعقیب
د 60 دقیقې
موږ به د اسټیو جوړ شوي د څارنې وسیلې ، دودیز میټریکونه ، او د پرومیتیس او ګرافانا له لارې OpenTracing وپلټو.
پیل

په اسټیو کې ساده لاره
د 60 دقیقې
د ساده قواعدو په کارولو سره په اسټیو کې د روټینګ اداره کولو څرنګوالي زده کړئ.
پیل

د لارې پرمختللی مقررات
د 60 دقیقې
راځئ چې د اسټیو سمارټ روټینګ ، د لاسرسي کنټرول ، د بار توازن او نرخ محدودیت ته یو نظر وګورو.
پیل

بلاک 3 - پرمختللی کارن

په اسټیو کې غلط انجیکشن
د 60 دقیقې
موږ په توزیع شوي غوښتنلیکونو کې د ناکامۍ اداره کولو سناریوګانې مطالعه کوو ، د HTTP غلطۍ رامینځته کول او د شبکې ځنډونه ، او د چاپیریال بیا رغولو لپاره د ګډوډي انجینرۍ کارول زده کوو.
پیل

په اسټیو کې د سرکټ بریکر
د 30 دقیقې
موږ د فشار ازموینې سایټونو لپاره محاصره نصب کوو او زده کوو چې څنګه د بیا پیل کولو ، سرکټ بریکر او پول انجیکشن په کارولو سره د شاتنۍ غلطۍ زغم ډاډمن کړو.
پیل

Egress او Istio
د 10 دقیقې
موږ د خارجي APIs او خدماتو سره د داخلي خدماتو متقابل عمل لپاره قواعد رامینځته کولو لپاره د Egress لارې کاروو.
پیل

Istio او Kiali
د 15 دقیقې
د کیالي کارولو زده کړئ ترڅو د خدماتو میش عمومي لید ترلاسه کړئ او د غوښتنې او ډیټا جریان وپلټئ.
پیل

په اسټیو کې دوه اړخیز TLS
د 15 دقیقې
موږ د اسټیو ګیټ وے او مجازی خدمت رامینځته کوو ، بیا موږ دوه اړخیز TLS (mTLS) او د هغې تنظیمات په تفصیل سره مطالعه کوو.
پیل

بلاک 3.1 - ژور ډوب: د مایکرو خدماتو لپاره د اسټیو خدمت میش

د اسټیو خدمت میش کې د پوسټونو لړۍ
کتاب څه شی دی:

  • د خدمت میش څه شی دی؟
  • د اسټیو سیسټم او د مایکرو سرویس معمارۍ کې د هغې رول.
  • د لاندې ستونزو د حل لپاره د اسټیو کارول:
    • د خطا زغم؛
    • لاره اچول
    • د ګډوډۍ ازموینه؛
    • امنیت؛
    • د ټریسونو، میټریکونو او ګرافانا په کارولو سره د ټیلی میټري راټولول.

یو کتاب ډاونلوډ کړئ

د خدماتو میشونو او اسټیو په اړه د مقالو لړۍ

دا پخپله هڅه وکړئ

د پوسټونو دا لړۍ د اسټیو نړۍ کې ژور ډوبولو لپاره ندي. موږ یوازې غواړو تاسو مفهوم ته معرفي کړو او شاید تاسو ته وهڅوئ چې د ځان لپاره اسټیو هڅه وکړئ. دا په بشپړه توګه وړیا ده، او Red Hat ټول هغه وسیلې چمتو کوي چې تاسو یې د OpenShift، Kubernetes، Linux کانټینرونو، او Istio سره پیل کولو ته اړتیا لرئ، په شمول: د Red Hat پراختیا کونکی د OpenShift کانټینر پلیټ فارم, اسټیو ته زموږ لارښود او زموږ په اړه نورې سرچینې د خدماتو میش کې مایکرو سایټ. ځنډ مه کوئ، نن پیل کړئ!

د اسټیو روټینګ قواعد: د خدماتو غوښتنې لارښود کول چیرې چې دوی ورته اړتیا لري

پرانيستی и کوبنیټس د حل کولو عالي دنده ترسره کړئ کوچني خدمتونه اړین پوډونو ته لیږدول کیږي. دا د Kubernetes د شتون یو له دلیلونو څخه دی - روټینګ او د بار توازن. مګر څه که تاسو ډیر فرعي او پیچلي لارې ته اړتیا لرئ؟ د مثال په توګه، په ورته وخت کې د مایکروسافټ دوه نسخې کارول. د اسټیو روټ قواعد دلته څنګه مرسته کولی شي؟

د روټینګ قواعد هغه قواعد دي چې په حقیقت کې د لارې انتخاب ټاکي. د سیسټم پیچلتیا کچې ته په پام سره، د دې مقرراتو عمومي عملیاتي اصول ساده پاتې دي: غوښتنې د ځانګړو پیرامیټونو او HTTP سرلیک ارزښتونو پراساس لیږدول کیږي.
راځئ چې مثالونه وګورو:

Kubernetes ډیفالټ: کوچنی "50/50"

زموږ په مثال کې، موږ به وښیو چې څنګه په OpenShift کې د مایکرو سرویس دوه نسخې په یو وخت کې وکاروو، راځئ چې دوی ته v1 او v2 ووایو. هره نسخه په خپل Kubernetes پوډ کې پرمخ ځي، او د ډیفالټ په واسطه دا په مساوي ډول متوازن راؤنډ رابین روټینګ پرمخ وړي. هر پوډ د خپلو مایکرو سرویس مثالونو د شمیر پراساس د غوښتنو برخه ترلاسه کوي ، په بل عبارت ، نقلونه. Istio تاسو ته اجازه درکوي چې دا توازن په لاسي ډول بدل کړئ.

راځئ چې ووایو موږ په OpenShift کې زموږ د سپارښتنې خدماتو دوه نسخې ځای پرځای کړې، سپارښتنې-v1 او سپارښتنه-v2.
په انځور کې. شکل 1 ښیي کله چې هر خدمت په یوه مثال کې ښودل کیږي، د دوی تر منځ په مساوي ډول د بدیل غوښتنه کوي: 1-2-1-2-... دا څنګه د کوبرنیټس روټینګ په ډیفالټ کار کوي:

د اسټیو خدمت میش کې د پوسټونو لړۍ

د نسخو تر منځ وزن لرونکی ویش

په انځور کې. شکل 2 ښیې چې څه پیښیږي که تاسو د v2 خدماتو نقلونو شمیر له یو څخه دوه ته لوړ کړئ (دا د oc پیمانې سره ترسره کیږي — replicas=2 ځای پرځای کول/سپارښتنه-v2 کمانډ). لکه څنګه چې تاسو لیدلی شئ، د v1 او v2 ترمنځ غوښتنې اوس د یو څخه تر دریو تناسب ویشل شوي دي: 1-2-2-1-2-2-…:

د اسټیو خدمت میش کې د پوسټونو لړۍ

د اسټیو په کارولو سره نسخه له پامه غورځول

اسټیو دا اسانه کوي چې د غوښتنو توزیع په هغه طریقه بدل کړو چې موږ ورته اړتیا لرو. د مثال په توګه، ټول ټرافیک یوازې د سپارښتنې-v1 ته د لاندې Istio yaml فایل په کارولو سره واستوئ:

د اسټیو خدمت میش کې د پوسټونو لړۍ

دلته تاسو باید دې ته پاملرنه وکړئ: پوډونه د لیبلونو سره سم غوره شوي. زموږ مثال لیبل v1 کاروي. د "وزن: 100" پیرامیټر پدې معنی دی چې 100٪ ترافیک به ټولو خدماتو پوډونو ته لیږدول کیږي چې د v1 لیبل لري.

د نسخو ترمنځ لارښود ویش (د کانري ګمارنه)

بیا ، د وزن پیرامیټر په کارولو سره ، تاسو کولی شئ دواړه پوډونو ته ترافیک مستقیم کړئ ، په هر یو کې د چلولو د مایکرو سرویس مثالونو شمیر په پام کې نیولو سره. د مثال په توګه، دلته موږ د ټرافیک 90٪ v1 ته او 10٪ v2 ته لارښوونه کوو:

د اسټیو خدمت میش کې د پوسټونو لړۍ

د ګرځنده کاروونکو لپاره جلا لاره

په پایله کې، موږ به وښیو چې څنګه د ګرځنده کاروونکي ترافیک مجبور کړو چې خدمت v2 ته واستول شي، او هرڅوک v1 ته. د دې کولو لپاره، موږ د غوښتنې سرلیک کې د کارونکي اجنټ ارزښت تحلیل کولو لپاره منظم بیانونه کاروو:

د اسټیو خدمت میش کې د پوسټونو لړۍ

اوس ستاسو وار دی

د سرلیکونو د پارس کولو لپاره د منظم بیانونو مثال باید تاسو هڅوي چې د اسټیو روټینګ مقرراتو خپل کارونې ومومئ. سربیره پردې ، دلته امکانات خورا پراخه دي ، ځکه چې د سرلیک ارزښتونه د غوښتنلیک سرچینې کوډ کې رامینځته کیدی شي.

او په یاد ولرئ چې Ops، نه دیو

هرڅه چې موږ په پورته مثالونو کې ښودلي د سرچینې کوډ کې د لږ بدلون پرته ترسره کیږي، ښه، پرته له هغه قضیو څخه چې د ځانګړي غوښتنې سرلیکونو رامینځته کولو ته اړتیا وي. Istio به د پراختیا کونکو لپاره دواړه ګټور وي، څوک چې د بیلګې په توګه، د ازموینې په مرحله کې د کارولو وړ وي، او د IT سیسټمونو په عملیاتو کې متخصصینو ته، د چا لپاره چې دا به په تولید کې ډیره مرسته وکړي.

نو راځئ چې د دې لړۍ پوسټونو لیټموټیف تکرار کړو: تاسو اړتیا نلرئ په خپل کوډ کې هیڅ شی بدل کړئ. د نوي عکسونو جوړولو یا نوي کانټینرونو پیل کولو ته اړتیا نشته. دا ټول د کوډ څخه بهر پلي کیږي.

خپل تخیل وکاروئ

یوازې د منظم بیانونو په کارولو سره د سرلیک تحلیل امکانات تصور کړئ. غواړئ خپل لوی پیرودونکي ستاسو ځانګړي نسخې ته واستوئ کوچني خدمتونه؟ په اسانۍ سره! د کروم براوزر لپاره جلا نسخه ته اړتیا لرئ؟ هیڅ ستونزه! تاسو کولی شئ د نږدې هرې ځانګړتیا سره سم ترافیک واستوئ.

دا پخپله هڅه وکړئ

د اسټیو ، کبرنیټس او اوپن شیفټ په اړه لوستل یو شی دی ، مګر ولې هرڅه پخپله نه لمس کوئ؟ ټیم د Red Hat پراختیا کونکي پروګرام یو مفصل لارښود (په انګلیسي کې) چمتو کړی چې تاسو سره به څومره ژر چې امکان ولري په دې ټیکنالوژیو کې مهارت ترلاسه کولو کې مرسته وکړي. لارښود هم 100٪ خلاص سرچینه ده، نو دا په عامه ډومین کې ځړول کیږي. فایل په macOS، لینکس او وینډوز کار کوي، او د سرچینې کوډ په جاوا او node.js نسخو کې شتون لري (په نورو ژبو کې نسخه ژر راځي). یوازې په خپل براوزر کې اړونده git ذخیره خلاص کړئ د Red Hat پراختیا کونکي ډیمو.

په راتلونکي پوسټ کې: موږ ستونزې په ښکلي ډول حل کوو

نن تاسو ولیدل چې د اسټیو روټینګ قواعد څه کولی شي. اوس ورته شی تصور کړئ، مګر یوازې د غلطۍ سمبالولو په تړاو. دا دقیقا هغه څه دي چې موږ به یې په راتلونکي پوسټ کې خبرې وکړو.

سرچینه: www.habr.com

Add a comment