Kubeetes بسیار قابل تنظیم و گسترده است. در نتیجه ، به ندرت نیاز به چنگال یا ارسال تکه ها به کد پروژه Kubeetes وجود دارد.
این راهنما گزینه های شخصی سازی یک خوشه Kubeetes را توصیف می کند. این هدف در مورد اپراتورهای خوشه ای است که می خواهند درک کنند که چگونه خوشه Kubeetes خود را با نیازهای محیط کار خود سازگار کنند. توسعه دهندگان که توسعه دهندگان پلتفرم آینده نگر یا مشارکت کنندگان پروژه Kubeetes هستند نیز آن را به عنوان مقدمه ای برای وجود نقاط و الگوهای گسترش و تجارت و محدودیت های آنها مفید می دانند.
رویکردهای سفارشی سازی را می توان به طور گسترده به پیکربندی تقسیم کرد ، که فقط شامل تغییر آرگومان های خط فرمان ، پرونده های پیکربندی محلی یا منابع API است. و پسوندها ، که شامل اجرای برنامه های اضافی ، خدمات شبکه اضافی یا هر دو است. این سند در درجه اول مربوط به پسوندها است.
پیکربندی
پرونده های پیکربندی و آرگومان های فرمان در بخش مرجع مستندات آنلاین با صفحه ای برای هر باینری ثبت شده اند:
آرگومان های فرمان و پرونده های پیکربندی ممکن است همیشه در یک سرویس Kubeetes میزبان یا توزیع با نصب مدیریت شده قابل تغییر نباشد. هنگامی که آنها قابل تغییر هستند ، آنها معمولاً فقط توسط اپراتور خوشه قابل تغییر هستند. همچنین ، آنها در نسخه های آینده Kubeetes در معرض تغییر هستند و تنظیم آنها ممکن است نیاز به فرآیندهای راه اندازی مجدد داشته باشد. به همین دلایل ، آنها فقط باید در مواردی استفاده شوند که گزینه دیگری وجود نداشته باشد.
API های خط مشی داخلی ، مانند ResourceQuota ، NetworkPolicy و کنترل دسترسی مبتنی بر نقش (RBAC) ، API های داخلی Kubeetes هستند که تنظیمات خط مشی پیکربندی شده را ارائه می دهند. API ها به طور معمول حتی با خدمات Kubeetes میزبان و با نصب Kubeetes قابل استفاده هستند. API های سیاست داخلی همان کنوانسیون ها را مانند سایر منابع Kubeetes مانند غلاف دنبال می کنند. هنگامی که از API های سیاستی استفاده می کنید که پایدار باشد ، از یک سیاست پشتیبانی تعریف شده مانند سایر API های Kubeetes بهره مند می شوید. به همین دلایل ، API های خط مشی از طریق پرونده های پیکربندی و آرگومان های فرمان در صورت مناسب توصیه می شوند.
الحاق
پسوندها مؤلفه های نرم افزاری هستند که با Kubeetes گسترش یافته و عمیقاً ادغام می شوند. آنها آن را برای پشتیبانی از انواع جدید و انواع جدید سخت افزار تطبیق می دهند.
بسیاری از مدیران خوشه ای از نمونه میزبان یا توزیع Kubeetes استفاده می کنند. این خوشه ها با پسوندهای پیش نصب شده همراه هستند. در نتیجه ، بیشتر کاربران Kubeetes نیازی به نصب پسوندها ندارند و حتی تعداد کمتری از کاربران نیز نیاز به نویسندگی جدید دارند.
الگوهای فرمت
Kubeetes با نوشتن برنامه های مشتری به صورت خودکار طراحی شده است. هر برنامه ای که به API Kubeetes می خواند و/یا می نویسد ، می تواند اتوماسیون مفیدی را ارائه دهد. اتوماسیون می تواند روی خوشه اجرا شود یا از آن خارج شود. با پیروی از راهنمایی در این سند می توانید اتوماسیون بسیار در دسترس و قوی بنویسید. اتوماسیون به طور کلی با هر خوشه Kubeetes ، از جمله خوشه های میزبان و تاسیسات مدیریت شده کار می کند.
یک الگوی خاص برای نوشتن برنامه های مشتری وجود دارد که به خوبی با Kubeetes به نام الگوی کنترلر کار می کند. کنترل کننده ها به طور معمول یک شیء را می خوانند.
یک کنترلر مشتری API Kubeetes است. هنگامی که Kubeetes مشتری است و به یک سرویس از راه دور فراخوانی می کند ، Kubeetes این را یک اتاق وب می نامد. سرویس از راه دور به عنوان پس زمینه Webhook نامیده می شود. مانند کنترل کننده های سفارشی ، وب سایت ها نقطه شکست را اضافه می کنند.
توجه: خارج از Kubeetes ، اصطلاح "وب" به طور معمول به مکانیسم اعلان های ناهمزمان اشاره دارد ، جایی که تماس وب به عنوان یک اعلان یک طرفه به سیستم یا مؤلفه دیگری عمل می کند. در اکوسیستم Kubeetes ، حتی فراخوان های همزمان HTTP اغلب به عنوان "Webhooks" توصیف می شوند.
در مدل Webhook ، Kubeetes درخواست شبکه را برای یک سرویس از راه دور ارائه می دهد. با استفاده از مدل افزونه باینری جایگزین ، Kubeetes یک باینری (برنامه) را اجرا می کند. افزونه های باینری توسط Kubelet (به عنوان مثال ، افزونه های ذخیره سازی CSI و افزونه های شبکه CNI) و توسط Kubectl استفاده می شوند (به گسترش Kubectl با افزونه ها مراجعه کنید).
نقاط پسوند
این نمودار نقاط فرمت را در یک خوشه Kubeetes و مشتریانی که به آن دسترسی دارند نشان می دهد.

نقاط پسوند Kubeetes
کلید شکل
کاربران غالباً با استفاده از Kubectl با API Kubeetes در تعامل هستند. افزونه ها رفتار مشتری را سفارشی می کنند. پسوندهای عمومی وجود دارد که می تواند برای مشتری های مختلف و همچنین روش های خاص برای گسترش Kubectl اعمال شود.
سرور API تمام درخواست ها را انجام می دهد. چندین نوع از نقاط پسوند در سرور API اجازه می دهد تا درخواست های تأیید اعتبار یا مسدود کردن آنها بر اساس محتوای آنها ، ویرایش محتوای و حذف حذف. اینها در بخش پسوند دسترسی API شرح داده شده است.
سرور API انواع مختلفی از منابع را ارائه می دهد. انواع منابع داخلی ، مانند غلاف ، توسط پروژه Kubeetes تعریف شده و قابل تغییر نیست. برای یادگیری در مورد گسترش API Kubeetes ، پسوندهای API را بخوانید.
برنامه ریز Kubeetes تصمیم می گیرد که کدام گره ها را برای قرار دادن غلاف ها قرار می دهد. روش های مختلفی برای گسترش برنامه ریزی وجود دارد که در بخش برنامه ریزی برنامه ریزی توضیح داده شده است.
بخش اعظم رفتار Kubeetes توسط برنامه هایی به نام کنترل کننده اجرا می شود که مشتری سرور API هستند. کنترل کننده ها اغلب در رابطه با منابع سفارشی استفاده می شوند. برای کسب اطلاعات بیشتر ، ترکیب API های جدید را با اتوماسیون و تغییر منابع داخلی بخوانید.
Kubelet روی سرورها (گره ها) اجرا می شود و به غلاف ها کمک می کند تا مانند سرورهای مجازی با IP های خود در شبکه خوشه ظاهر شوند. افزونه های شبکه امکان اجرای مختلف شبکه POD را فراهم می کنند.
می توانید از افزونه های دستگاه برای ادغام سخت افزار سفارشی یا سایر امکانات خاص گره-محلی استفاده کنید و این موارد را در دسترس غلافهایی که در خوشه خود اجرا می شوند ، در دسترس قرار دهید. Kubelet شامل پشتیبانی از کار با افزونه های دستگاه است.
Kubelet همچنین برای غلاف ها و ظروف آنها حجم را از بین می برد. می توانید از افزونه های ذخیره سازی برای افزودن پشتیبانی از انواع جدید ذخیره سازی و انواع دیگر حجم استفاده کنید.
نمودار انتخاب نقطه پسوند
اگر مطمئن نیستید از کجا شروع کنید ، این نمودار جریان می تواند کمک کند. توجه داشته باشید که برخی از راه حل ها ممکن است شامل چندین نوع پسوند باشد.

راهنمای نمودار برای انتخاب یک رویکرد پسوند
پسوند مشتری
افزونه های Kubectl باینری های جداگانه ای هستند که رفتار زیر مجموعه های خاص را اضافه یا جایگزین می کنند. ابزار Kubectl همچنین می تواند با افزونه های معتبر ادغام شود ، این پسوندها فقط بر محیط محلی کاربر فردی تأثیر می گذارد ، بنابراین نمی تواند سیاست های گسترده سایت را اجرا کند.
اگر می خواهید ابزار Kubectl را گسترش دهید ، kubectl را با افزونه ها بخوانید.
پسوند API
تعاریف منابع سفارشی
اگر می خواهید کنترل کننده های جدید ، اشیاء پیکربندی برنامه یا سایر API های اعلامی را تعریف کنید ، یک منبع سفارشی را به Kubeetes اضافه کنید و آنها را با استفاده از ابزارهای Kubeetes مانند Kubectl مدیریت کنید.
برای اطلاعات بیشتر در مورد منابع سفارشی ، به راهنمای مفهوم منابع سفارشی مراجعه کنید.
لایه تجمع API
برای ادغام API Kubeetes با خدمات اضافی مانند معیارها می توانید از لایه تجمع API Kubeetes استفاده کنید.
ترکیب API های جدید با اتوماسیون
ترکیبی از API منابع سفارشی و یک حلقه کنترل الگوی کنترل کننده ها نامیده می شود. اگر کنترل کننده شما جای اپراتور انسانی را که زیرساخت ها را بر اساس یک حالت مورد نظر مستقر می کند ، می گیرد ، ممکن است کنترل کننده نیز از الگوی اپراتور پیروی کند. از الگوی اپراتور برای مدیریت برنامه های خاص استفاده می شود. معمولاً این برنامه هایی هستند که حالت را حفظ می کنند و در نحوه مدیریت آنها نیاز به مراقبت دارند.
همچنین می توانید API های سفارشی و حلقه های کنترل خود را که منابع دیگر ، مانند ذخیره سازی را مدیریت می کنند یا برای تعریف خط مشی ها (مانند محدودیت کنترل دسترسی) مدیریت می کنند ، بسازید.
تغییر منابع داخلی
هنگامی که API Kubeetes را با افزودن منابع سفارشی گسترش می دهید ، منابع اضافه شده همیشه در گروه های جدید API قرار می گیرند. شما نمی توانید گروه های API موجود را جایگزین یا تغییر دهید. اضافه کردن یک API به طور مستقیم به شما اجازه نمی دهد تا بر رفتار API های موجود (مانند غلاف) تأثیر بگذارد ، در حالی که پسوندهای دسترسی API انجام می شود.
برنامه های افزودنی دسترسی API
هنگامی که یک درخواست به سرور API Kubeetes می رسد ، ابتدا تأیید می شود ، سپس مجاز است و سپس در معرض انواع مختلفی از کنترل پذیرش قرار می گیرد (برخی از درخواست ها در واقع تأیید اعتبار نمی شوند و درمان ویژه ای می گیرند). برای اطلاعات بیشتر در مورد این جریان ، کنترل دسترسی به API Kubeetes را مشاهده کنید.
هر یک از مراحل موجود در جریان تأیید هویت / مجوز Kubeetes نقاط پسوند را ارائه می دهد.
احراز هویت
تأیید هویت هدر یا گواهینامه ها در کلیه درخواست ها به نام کاربری برای مشتری که درخواست را می کند.
Kubeetes دارای چندین روش تأیید اعتبار داخلی است که از آن پشتیبانی می کند. همچنین می تواند در پشت یک پروکسی تأیید کننده بنشیند ، و می تواند یک نشانه را از یک مجوز ارسال کند: هدر برای تأیید (یک وب سایت تأیید اعتبار) در صورت عدم پاسخگویی به نیازهای شما.
اعتبار
مجوز تعیین می کند که آیا کاربران خاص می توانند در منابع API ، سایر موارد را بخوانند ، بنویسند و انجام دهند. این در سطح منابع کامل کار می کند - بر اساس زمینه های شیء دلخواه تبعیض قائل نمی شود.
اگر گزینه های مجوز داخلی نیازهای شما را برآورده نکند ، یک وب سایت مجوز اجازه می دهد تا کد سفارشی را که تصمیم به مجوز می گیرد ، فراخوانی کند.
کنترل پذیرش پویا
پس از مجاز بودن درخواست ، اگر این یک عملیات نوشتن باشد ، مراحل کنترل پذیرش را نیز طی می کند. علاوه بر مراحل داخلی ، چندین پسوند نیز وجود دارد:
- Webhook خط مشی تصویر محدود می کند که چه تصاویر را می توان در ظروف اجرا کرد.
- برای تصمیم گیری در مورد کنترل پذیرش دلخواه ، می توان از یک وب سایت پذیرش عمومی استفاده کرد. وب سایت های پذیرش می توانند خلاقیت ها یا به روزرسانی ها را رد کنند. برخی از وب سایت های پذیرش داده های درخواست دریافتی را قبل از استفاده بیشتر توسط Kubeetes اصلاح می کنند.
پسوند زیرساخت
افزونه های دستگاه
افزونه های دستگاه به یک گره اجازه می دهند تا منابع گره جدید (علاوه بر ساختهای داخلی مانند CPU و حافظه) را از طریق یک افزونه دستگاه کشف کنند.
افزونه های ذخیره سازی
افزونه های رابط ذخیره سازی کانتینر (CSI) راهی برای گسترش Kubeetes با پشتیبانی از انواع جدید از حجم فراهم می کنند. این حجم ها را می توان با ذخیره سازی خارجی با دوام پشتیبانی کرد ، یا ذخیره سازی زودگذر را فراهم کرد ، یا ممکن است با استفاده از یک الگوی سیستم فایل ، یک رابط فقط خواندنی را برای اطلاعات ارائه دهند.
Kubeetes همچنین شامل پشتیبانی از افزونه های Flexvolume است که از زمان Kubeetes V1. 23 (به نفع CSI) مستهلک می شوند.
افزونه های FlexVolume به کاربران امکان می دهند انواع حجم را که به طور بومی توسط Kubeetes پشتیبانی نمی شوند ، سوار کنند. هنگامی که یک غلاف را اجرا می کنید که به ذخیره سازی FlexVolume متکی است ، Kubelet یک افزونه باینری را برای نصب حجم صدا می کند. پیشنهاد طراحی FlexVolume بایگانی شده جزئیات بیشتری در مورد این رویکرد دارد.
پلاگین حجم Kubeetes برای فروشندگان ذخیره سازی شامل اطلاعات کلی در مورد افزونه های ذخیره سازی است.
افزونه های شبکه
خوشه Kubeetes شما برای داشتن یک شبکه POD در حال کار و پشتیبانی از سایر جنبه های مدل شبکه Kubeetes به یک افزونه شبکه نیاز دارد.
افزونه های شبکه به Kubeetes اجازه می دهند تا با توپولوژی ها و فناوری های مختلف شبکه کار کنند.
برنامه ریزی برنامه ریزی
برنامه ریزی کننده نوع خاصی از کنترلر است که غلاف را تماشا می کند و غلاف را به گره ها اختصاص می دهد. برنامه ریزی پیش فرض را می توان به طور کامل جایگزین کرد ، در حالی که همچنان به استفاده از سایر اجزای Kubeetes ادامه می یابد ، یا برنامه ریزان های متعدد می توانند همزمان اجرا شوند.
این یک کار مهم است و تقریباً همه کاربران Kubeetes متوجه می شوند که نیازی به اصلاح برنامه ریزی ندارند.
شما می توانید کنترل کنید که افزونه های برنامه ریزی فعال هستند ، یا مجموعه های افزونه هایی را با پروفایل های مختلف برنامه ریزی شده با نام. همچنین می توانید افزونه خود را که با یک یا چند مورد از نقاط پسوند Kube-Scheduler ادغام شده است ، بنویسید.
سرانجام ، مؤلفه ساخته شده در Kube-Scheduler از یک وب وب پشتیبانی می کند که به یک باکتری از راه دور HTTP (پسوند برنامه ریزی) اجازه می دهد تا گره هایی را که Kube-Scheduler برای یک غلاف انتخاب می کند ، فیلتر و یا اولویت بندی کند.
توجه: شما فقط می توانید بر روی فیلتر گره و اولویت بندی گره با یک وب سایت برنامه ریزی برنامه ریزی تأثیر بگذارید. سایر نقاط پسوند از طریق ادغام Webhook در دسترس نیست.
چه بعدی است
- در مورد پسوندهای زیرساختی بیشتر بدانید
- افزونه های ذخیره سازی CSI
بازخورد
این صفحه به شما کمک کرد؟
از نظر شما متشکریم. اگر یک سؤال خاص و پاسخگو در مورد نحوه استفاده از Kubeetes دارید ، از آن در مورد Onceflow Stack بپرسید. اگر می خواهید یک مشکل را گزارش کنید یا پیشنهاد بهبود را پیشنهاد دهید ، در repo github یک مسئله را باز کنید.
استراتژیهای اسکالپ...
ما را در سایت استراتژیهای اسکالپ دنبال می کنید
برچسب :
نویسنده : ناصر تقوایی
بازدید : <-PostHit->
تاريخ : جمعه
5 خرداد
1402 ساعت: 14:44