د Yandex.Cloud لپاره Kubernetes CCM (د کلاوډ کنټرولر مدیر) معرفي کول

د Yandex.Cloud لپاره Kubernetes CCM (د کلاوډ کنټرولر مدیر) معرفي کول

په دوام کې وروستي د CSI ډرایور خوشې کول د Yandex.Cloud لپاره موږ د دې کلاوډ لپاره د خلاصې سرچینې بله پروژه خپروو - د کلاوډ کنټرولر مدیر. CCM نه یوازې په ټولیزه توګه د کلستر لپاره، بلکې پخپله د CSI ډرایور لپاره هم اړین دی. د دې هدف په اړه توضیحات او د پلي کولو ځینې ځانګړتیاوې د کټ لاندې دي.

پېژندنه

دا ولې؟

هغه انګیزې چې موږ یې د Yandex.Cloud لپاره CCM رامینځته کولو ته وهڅول په بشپړ ډول د هغه سره مطابقت لري چې دمخه یې تشریح شوي اعلان د CSI چلوونکي. موږ د مختلف کلاوډ چمتو کونکو څخه ډیری Kubernetes کلسترونه ساتو، د کوم لپاره چې موږ یو واحد وسیله کاروو. دا د دې چمتو کونکو مدیریت شوي حلونو "بای پاس کولو" ډیری اسانتیاوې پلي کوي. هو، موږ یو ځانګړی قضیه او اړتیاوې لرو، مګر د دوی له امله رامینځته شوي پرمختګونه ممکن د نورو کاروونکو لپاره ګټور وي.

په حقیقت کې CCM څه شی دی؟

عموما، موږ د کلستر لپاره زموږ شاوخوا چاپیریال چمتو کوو له بهر څخه - د مثال په توګه، د Terraform کارول. مګر ځینې وختونه زموږ په شاوخوا کې د بادل چاپیریال اداره کولو ته اړتیا وي له کلستر څخه. دا امکان برابر شوی، او دا هغه دی چې پلي کیږي TLC.

په ځانګړې توګه، د کلاوډ کنټرولر مدیر د تعامل پنځه اصلي ډولونه وړاندې کوي:

  1. مثالونه - په Kubernetes کې د نوډ اعتراض ترمنځ 1: 1 اړیکه پلي کوي (Node) او د بادل چمتو کونکي کې یو مجازی ماشین. د دې لپاره موږ:
    • ساحه ډکه کړئ spec.providerID په اعتراض کې Node. د مثال په توګه، د OpenStack CCM لپاره دا ساحه لاندې بڼه لري: openstack:///d58a78bf-21b0-4682-9dc6-2132406d2bb0. تاسو کولی شئ د بادل چمتو کونکي نوم او د سرور ځانګړی UUID وګورئ (په OpenStack کې مجازی ماشین) د څیز؛
    • بشپړول nodeInfo په اعتراض کې Node د مجازی ماشین په اړه معلومات. د مثال په توګه، موږ په AWS کې د مثال ډول مشخص کوو؛
    • موږ په بادل کې د مجازی ماشین شتون ګورو. د مثال په توګه، که یو اعتراض Node حالت ته لاړ NotReady، تاسو کولی شئ چیک کړئ چې ایا مجازی ماشین د بادل چمتو کونکي کې شتون لري providerID. که دا شتون نلري، اعتراض حذف کړئ Node, چې په بل ډول به د تل لپاره په کلستر کې پاتې شي؛
  2. زونونو - د اعتراض لپاره د ناکامۍ ډومین ټاکي Node، ترڅو مهالویش کونکی کولی شي د بادل چمتو کونکي کې د سیمو او زونونو مطابق د پوډ لپاره نوډ غوره کړي؛
  3. LoadBlancer - کله چې یو شی جوړ کړئ Service ډول سره LoadBalancer یو ډول توازن رامینځته کوي چې له بهر څخه د کلستر نوډونو ته ترافیک مستقیم کوي. د مثال په توګه، په Yandex.Cloud کې تاسو کارولی شئ NetworkLoadBalancer и TargetGroup د دې موخو لپاره؛
  4. لاره - د نوډونو ترمنځ شبکه جوړوي، ځکه د Kubernetes اړتیاو سره سم، هر پوډ باید خپل IP پته ولري او د دې وړتیا ولري چې کوم بل پوډ ته ورسیږي. د دې موخو لپاره، تاسو کولی شئ د پوښښ شبکه وکاروئ (VXLAN، GENEVE) یا د بادل چمتو کونکي په مجازی شبکه کې مستقیم د روټینګ میز تنظیم کړئ:

    د Yandex.Cloud لپاره Kubernetes CCM (د کلاوډ کنټرولر مدیر) معرفي کول

  5. حجم - د PVC او SC په کارولو سره د PV متحرک ترتیب ته اجازه ورکوي. په پیل کې، دا فعالیت د CCM برخه وه، مګر د دې لوی پیچلتیا له امله دا جلا پروژې ته لیږدول شوی، د کانټینر ذخیره کولو انٹرفیس (CSI). موږ یو ځل د CSI په اړه خبرې کړې دي لیکلی او، لکه څنګه چې مخکې یادونه وشوه، حتی خپور شوی د CSI چلوونکی.

پخوا، ټول کوډ چې د بادل سره متقابل عمل کوي د کوبرنیټس پروژې اصلي Git ذخیره کې موقعیت درلود k8s.io/kubernetes/pkg/cloudprovider/providers، مګر دوی پریکړه وکړه چې دا د لوی کوډ بیس سره د کار کولو تکلیف له امله پریږدي. ټول زاړه تطبیق ته لیږدول شوي جلا ذخیره. د نور ملاتړ او پراختیا د اسانتیا لپاره، ټولې ګډې برخې هم لیږدول شوي جلا ذخیره.

لکه څنګه چې د CSI سره، ډیری لوی کلاوډ چمتو کونکو لا دمخه خپل CCMs ډیزاین کړي ترڅو په کبرنیټس کې د بادونو ګټه پورته کړي. که عرضه کونکی CCM نلري، مګر ټول اړین فعالیتونه د API له لارې شتون لري، نو تاسو کولی شئ پخپله CCM پلي کړئ.

د خپل ځان د CCM پلي کولو لیکلو لپاره، دا د پلي کولو لپاره کافی دی د اړتیا وړ Go انٹرفیس.

И دا هغه څه دي چې موږ ترلاسه کړل.

پلي کول

تاسو دې ته څنګه راغلي یاست

موږ پراختیا پیل کړه (یا بلکه، حتی کارول). چمتو(!) CCM یو کال دمخه د Yandex.Cloud لپاره.

په هرصورت، پدې تطبیق کې موږ ورک وو:

  • د JWT IAM نښه له لارې تصدیق؛
  • د خدماتو کنټرولر ملاتړ.

د لیکوال سره موافق (ډلیسین) په ټیلیګرام کې، موږ د yandex-Cloud-controller-manager فورک کړی او ورک شوي دندې مو اضافه کړې.

کلیدي ب .ې

اوس مهال، CCM د لاندې انٹرفیسونو ملاتړ کوي:

  • مثالونه;
  • زونونو;
  • LoadBlancer.

په راتلونکي کې، کله چې Yandex.Cloud د پرمختللي VPC وړتیاوو سره کار پیل کوي، موږ به یو انٹرفیس اضافه کړو لارې.

LoadBalanacer د اصلي ننګونې په توګه

په پیل کې، موږ هڅه وکړه، د نورو CCM پلي کولو په څیر، جوړه جوړه کړو LoadBalancer и TargetGroup د هر یو لپاره Service ډول سره LoadBalancer. په هرصورت، Yandex.Cloud یو په زړه پورې محدودیت کشف کړ: تاسو نشئ کارولی TargetGroups د تقاطع سره Targets ( جوړه SubnetID - IpAddress).

د Yandex.Cloud لپاره Kubernetes CCM (د کلاوډ کنټرولر مدیر) معرفي کول

له همدې امله ، د رامینځته شوي CCM دننه ، یو کنټرولر په لاره اچول شوی ، کوم چې کله شیان بدلیږي Node په هر مجازی ماشین کې د ټولو انٹرفیسونو په اړه معلومات راټولوي، دوی د دوی د ټاکلو سره سم ګروپ کوي NetworkID، له خوا جوړوي TargetGroup په NetworkID، او هم د مطابقت څارنه کوي. وروسته، کله چې یو شی جوړ کړئ Service ډول سره LoadBalanacer موږ په ساده ډول یو مخکې جوړ شوی ضمیمه کوو TargetGroup نوي ته NetworkLoadBalanacerزه

څنګه کارول پیل کړئ؟

CCM د Kubernetes نسخه 1.15 او لوړ ملاتړ کوي. په یوه کلستر کې، د دې کار کولو لپاره، دا بیرغ ته اړتیا لري --cloud-provider=external ټاکل شوې وه true د کیوب-اپیسرور، کیوب کنټرولر-منیجر، کیوب-شیډولر او ټولو کیوبیلټونو لپاره.

د نصبولو لپاره ټول اړین ګامونه پخپله بیان شوي README. نصب کول د منشور څخه په کبرنیټس کې د شیانو رامینځته کولو لپاره غوړیږي.

د CCM کارولو لپاره تاسو به هم اړتیا ولرئ:

  • په نښه کول په منشور کې د لارښود پیژندونکی (folder-id) Yandex.Cloud;
  • د Yandex.Cloud API سره د متقابل عمل لپاره د خدماتو حساب. په منشور کې Secret لازمه ده مجاز کیلي لیږدوي د خدمت حساب څخه. په اسنادو کې بیان شوید خدماتو حساب څنګه جوړ کړئ او کیلي ترلاسه کړئ.

موږ به خوښ یو چې ستاسو نظرونه ترلاسه کړو او نوې مسلېکه تاسو له کومې ستونزې سره مخ شئ!

پایلې

موږ په تیرو دوه اونیو کې په پنځو کبرنیټ کلسترونو کې پلي شوي CCM کاروو او پلان لرو چې په راتلونکې میاشت کې د دوی شمیر 20 ته وغځوو. موږ اوس مهال د لوی او مهم K8s تاسیساتو لپاره د CCM کارولو وړاندیز نه کوو.

لکه څنګه چې د CSI په قضیه کې ، موږ به خوښ یو که د Yandex پراختیا کونکي د دې پروژې پراختیا او ملاتړ په غاړه واخلي - موږ چمتو یو چې د دوی په غوښتنه ذخیره انتقال کړو ترڅو د هغه دندو سره معامله وکړو چې زموږ لپاره خورا اړونده دي.

PS

زموږ په بلاګ کې هم ولولئ:

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

Add a comment