مدیریت موفقیتآمیز هزینههای زیرساخت و مدیریت Kubernetes نیازمند نظارت دقیق، دید مشترک و کنترلهای مؤثر است. در اینجا نحوه رسیدن به آنجا آمده است.
Kubernetes به انتخاب پیشفرض برای ارکستراسیون کانتینر تبدیل شده است. این به سازمانها اجازه میدهد تا برنامههای کاربردی کانتینری خود را استقرار، مدیریت و مقیاسبندی کنند و مزایای زیادی از جمله مقیاسپذیری، در دسترس بودن، قابلیت اطمینان و چابکی را ارائه دهند.
با این حال، در حالی که Kubernetes به یک جزء کلیدی از پشته فناوری برای ساخت و استقرار برنامه های کاربردی مدرن تبدیل شده است، کنترل هزینه های مرتبط با Kubernetes به یک چالش مهم تبدیل شده است. هزینه اجرای Kubernetes شامل دو جزء اصلی است:
- هزینه واقعی اجرای خوشههای Kubernetes که شامل هزینههای محاسباتی، ذخیرهسازی، شبکه و سایر هزینههای زیرساخت میشود
- هزینه های عملیاتی مدیریت خوشه ها
در این پست وبلاگ، عوامل مختلفی را که میتوانند بر هزینه استفاده از Kubernetes تأثیر بگذارند، بررسی میکنیم و نکات و بهترین روشها را برای مدیریت هزینه Kubernetes ارائه میکنیم تا صورتحسابهای ابری شما را تحت کنترل نگه دارید.
چالش های مدیریت هزینه Kubernetes
زیرساخت Kubernetes چالش های منحصر به فردی را برای مدیریت هزینه به ارمغان می آورد. بیشتر این چالش ها به پیچیدگی Kubernetes و استفاده از آن مربوط می شود. به عنوان مثال، برنامه های کاربردی کانتینری که در Kubernetes مستقر شده اند از منابع مختلفی مانند pods، deployments، ingress، حجم های پایدار و فضاهای نام استفاده می کنند. محاسبه هزینه برای برنامهها شامل بررسی معیارهای استفاده از همه این منابع در یک سطح دانهای است.
علاوه بر این، برنامههای Kubernetes اغلب در چندین خوشه، واحدهای تجاری، مرکز داده و محیطهای ابری و تیمهای کاربردی پخش میشوند، یا خود خوشهها ممکن است بین چندین واحد تجاری یا تیمهای کاربردی به اشتراک گذاشته شوند. این سطح از پیچیدگی اضافی، ردیابی (و تخصیص) هزینه ها را دشوار می کند.
اگرچه بسیاری از سازمانها در حال حاضر یک راهحل مدیریت هزینه دارند، داشتن راهحلی ضروری است که به طور بومی از مدیریت هزینه Kubernetes پشتیبانی کند، زیرا زیرساخت Kubernetes چالشهای بیشتری را به کنترل هزینه اضافه میکند.
برای اینکه زیرساختهای Kubernetes را مقرون به صرفهتر کار کنند، سازمانها باید از تکنیکها و شیوههای مختلف استفاده کنند. برخی از این موارد عبارتند از:
- نمونه های ابری با اندازه مناسب و منابع برنامه
- استفاده از اجاره چندگانه Kubernetes تا جایی که ممکن است
- اجرای قابلیت مشاهده و نظارت بر هزینه Kubernetes گرانول
- سیاست های بهینه سازی هزینه
- کاهش سربار عملیاتی در مدیریت زیرساخت Kubernetes
- اتخاذ راه حل مدیریت هزینه Kubernetes
بخشهای زیر به بررسی این شش روش برتر میپردازند.
نمونه های ابری خود را اندازه راست کنید
یکی از اولین و مهمترین مراحل هنگام راه اندازی زیرساخت Kubernetes، درک منابع مورد نیاز هر برنامه است. برای جلوگیری از تأمین بیش از حد پرهزینه، و همچنین تأثیرات نامطلوب تأمین ناکافی، ضروری است که نیازهای منابع هر برنامه را نمایه کنید. سپس می توانید منابعی را انتخاب کنید که به بهترین وجه با نیازهای برنامه شما مطابقت دارند.
نمونههای ابر عمومی برای بارهای کاری مختلف (مانند محاسبه، حافظه یا GPU) بهینه شدهاند. بنابراین، انتخاب نوع نمونه مناسب برای برنامه خود بر اساس ویژگی های برنامه بسیار مهم است.
میتوانید نمونههای نقطهای را برای پردازش دستهای، یکپارچهسازی مداوم، محیطهای آزمایشی، و سایر حجمهای کاری انفجاری یا موقتی کاوش کنید. استفاده از نمونههای نقطهای میتواند صرفهجویی قابلتوجهی در هزینه ایجاد کند، اما باید حجم کاری ایدهآل را برای اجرا در نمونههای نقطهای بهطور کامل تجزیه و تحلیل کنید.
برای درک حداقل و حداکثر نیازهای CPU و حافظه همه سرویسهایی که در زیرساخت Kubernetes اجرا میشوند، پروفایل برنامهها به همان اندازه مهم است. بر اساس داده های پروفایل، می توانید درخواست های صحیح (حداقل) و محدودیت ها (اوج) را پیکربندی کنید.
به طور مشابه، باید از Kubernetes Horizontal Pod Auto Scaling (HPA) و Vertical Pod Auto Scaling (VPA) استفاده کنید تا منابع برنامه خود را مقیاس کنید، با حداقل منابع شروع کنید و با افزایش استفاده، آنها را افزایش دهید. همچنین میتوانید مقیاسکننده خودکار خوشه پیشرفته، Karpenter را برای مقیاسبندی خوشههای Kubernets خود کاوش کنید. وقتی بار افزایش مییابد، کارپنتر میتواند خوشه را کوچک کند و با کاهش بار، در خوشه مقیاس کند و هزینهها را کاهش دهد.
از مزایای اجاره چندگانه Kubernetes استفاده کنید
خوشه ها یک منبع اساسی در زیرساخت Kubernetes هستند. شما می توانید کلاسترها را به دو صورت اختصاصی و اشتراکی مستقر کنید. خوشه های اختصاصی معمولاً برای یک برنامه، محیط یا تیم منفرد مستقر می شوند. خوشههای مشترک در بین برنامهها، تیمها، واحدهای تجاری و غیره توزیع میشوند. تصمیمگیری در مورد زمان استقرار خوشهها در یک مدل اختصاصی یا مشترک برای مدیریت هزینهها بسیار مهم است، زیرا خوشههای اختصاصی هزینههای بسیار بالاتری نسبت به خوشههای مشترک متحمل میشوند.
در اینجا چند سناریو وجود دارد که در آنها خوشههای اختصاصی مستقر میشوند:
- برنامه نیاز به تأخیر پایینی دارد (یعنی هدف SLA/SLO به طور قابل توجهی بالاتر از سایرین است)، بنابراین از هرگونه مشکل بالقوه همسایه پر سر و صدا باید اجتناب شود
- برنامه نیازهای منحصر به فردی دارد (به عنوان مثال، پلاگین CNI، گره های کارگر GPU)
- بر اساس نوع محیط (به عنوان مثال، خوشه های اختصاصی در محیط تولید و خوشه های مشترک در محیط های مرحله و آزمایش)
به جز این موارد استفاده خاص که در آن به خوشه های اختصاصی نیاز است، ایده خوبی است که روی یک مدل خوشه مشترک استانداردسازی کنید. Kubernetes به طور بومی از چند اجاره ای از طریق فضای نام پشتیبانی می کند. با این حال، برای آماده سازی خوشه ها برای استقرار چند مستاجر، باید از منظر امنیتی و حاکمیتی سخت شدن بیشتری انجام دهید.
مراحل دیگر سخت شدن خوشه عبارتند از:
- استقرار و مدیریت سرویسهای کلستر که توسط همه برنامههای در حال اجرا خوشه استفاده میشود
- مدیریت سهمیه در سطح برنامه و فضای نام
- خط مشی های شبکه برای جداسازی فضای نام
- سیاستهای امنیتی و حاکمیتی از ابزارهایی مانند Open Policy Agent
- SSO و RBAC برای دسترسی کنترلشده ایمن به خوشههای مشترک
استفاده میکنند
مشاهده هزینه را برای ذینفعان فراهم کنید
“شما نمی توانید آنچه را که نمی توانید اندازه گیری کنید به طور موثر مدیریت کنید” برای مدیریت هزینه Kubernetes صادق است. نظارت منظم بر استفاده از منابع سرویسها و برنامههای شما میتواند به شناسایی اجزایی که منابع بیشتری مصرف میکنند کمک کند و به شما در بهینهسازی آنها برای کاهش هزینهها کمک کند. میتوانید از داشبوردهای Kubernetes و ابزارهای نظارتی برای ردیابی استفاده از منابع و شناسایی زمینههای بهبود استفاده کنید.
برای بهینهسازی محدودیتهای منابع و سهمیههای استفاده از برنامههایتان، میتوانید از معیارهای استفاده اطلاعاتی کسب کنید. این بهینهسازی تضمین میکند که برنامههای شما منابع را بر اساس نیازها و تخصیصهایشان مصرف میکنند و از مصرف بیش از حد منابع جلوگیری میکند.
بهطور مشابه، میتوانید آستانههای بودجه را برای ارائه هشدارهای اولیه زمانی که هزینهها از محدودیتهای خاص فراتر میرود، پیکربندی کنید. این آستانه ها می توانند به عنوان نرده های محافظ عمل کنند تا نظم مالی لازم را برای تیم های زیرساختی Kubernetes فراهم کنند. همچنین ارائه دید هزینه برای واحدهای تجاری، تیم های توسعه، صاحبان برنامه ها و سایر تیم ها بسیار مهم است. شفافیت هزینه به ایجاد نظم و انضباط مالی و مسئولیتپذیری در میان تیمهای ذینفع کمک میکند و بینش و انگیزهای برای یافتن راههای اضافی برای کاهش هزینهها در اختیار آنها قرار میدهد.
سیاستهای بهینهسازی هزینه را اجرا کنید
اجرای سیاست های بهینه سازی هزینه برای حذف منابع استفاده نشده و کم استفاده می تواند هزینه های زیرساخت Kubernetes را تا حد زیادی کاهش دهد. برای مثال، توزیعهای Kubernetes با مدیریت ابری عمومی مانند Amazon EKS از خاموش کردن همه گروههای گره کارگر هنگام اجرای صفحه کنترل پشتیبانی میکنند. برای خوشههای طولانیمدت که برای UAT (تست پذیرش کاربر) یا استقرار پیشنمایش استفاده میشوند، میتوانید اتوماسیونی ایجاد کنید تا گروههای گره کارگر را در طول تعطیلات آخر هفته و سایر ساعات غیرفعال پایین بیاورید و در صورت نیاز سریعاً آنها را بازگردانید، در حالی که تمام تنظیمات و دادهها را حفظ کنید. سالم.
بهطور مشابه، محیطهای sandbox و توسعهدهنده را میتوان بهطور خودکار در ساعات خاموشی برای پاکسازی منابع بلااستفاده حذف کرد. برچسبها و برچسبها را میتوان برای چسباندن صاحبان، محیطها و زمانهای انقضا به منابعی که میتوان در سیاستهای پاکسازی استفاده کرد، استفاده کرد. همچنین میتوان از برچسبها برای حذف منابع خاصی در صورت نیاز استفاده کرد.
همچنین محدود کردن مناطق مجاز به چند منطقه منتخب نیز تمرین خوبی است زیرا ممکن است هزینه بر اساس منطقه متفاوت باشد. به طور مشابه، شما باید فقط انواع نمونه های مورد نیاز برای برنامه های خود را فعال کنید و انواع دیگر را محدود کنید. میتوانید الگوهای استانداردی ایجاد کنید که از منابع بهینه استفاده میکنند و آنها را با کاربران خود به اشتراک بگذارید تا محیطهای خودسرویس ایجاد کنند.
علاوه بر این، میتوانید خطمشیهای خودکاری را برای پاکسازی منابع استفاده نشده و آویزان تنظیم کنید.
هزینه های مدیریت و نگهداری غیرمستقیم را نادیده نگیرید
هزینههای مدیریت و نگهداری مرتبط با زیرساخت Kubernetes اغلب نادیده گرفته میشوند. این هزینه غیرمستقیم می تواند به بخش عمده ای از کل هزینه های Kubernetes شما تبدیل شود، به خصوص اگر زیرساخت های Kubernetes در مقیاس بزرگ را مدیریت و اجرا کنید. وظایف مدیریت و نگهداری Kubernetes عبارتند از:
- ایجاد خوشه های جدید Kubernetes برای محیط های تولیدی و غیر تولیدی
- استقرار افزونههای اضافی مورد نیاز در سطح خوشه
- پیکربندی سیاستهای امنیتی مورد نیاز برای خوشهها
- تنظیم گزارش و نظارت
- راه اندازی Kubernetes RBAC برای کاربران نهایی
- استقرار برنامه ها
- انجام ارتقاء نسخه Kubernetes
- انجام ارتقاء نسخه افزودنی
- تنظیم پشتیبان گیری و بازیابی برای بازیابی بلایا
- عیب یابی و حل مشکلات زیرساخت
علاوه بر وظایف فوق، تیمهای Kubernetes SRE، عملیات و پلتفرم فعالیتهای دیگری را برای مدیریت و نگهداری زیرساخت انجام میدهند. انجام این وظایف به صورت دستی ممکن است منجر به هزینه های عملیاتی هنگفتی برای سازمان شود. خودکارسازی این وظایف نه تنها هزینه ها را به میزان قابل توجهی کاهش می دهد، بلکه تجربه توسعه دهنده را بهبود می بخشد و زمان تحویل محصول را تسریع می بخشد.
تعدادی از پلتفرمهای عملیات Kubernetes اتوماسیون کلید در دست را برای مدیریت زیرساخت Kubernetes ارائه میکنند. ارزش کاوش در این پلتفرمها برای مدیریت و نگهداری زیرساخت Kubernetes را دارد، زیرا ساخت اتوماسیون داخلی نیز میتواند بسیار گران باشد.
از ابزارهای مدیریت هزینه Kubernetes ساخته شده استفاده کنید
با توجه به پیچیدگی ها و تفاوت های ظریف، استفاده از ابزار منبع باز یا تجاری شخص ثالث که به طور خاص برای مدیریت هزینه Kubernetes ساخته شده است ضروری است. چنین ابزاری باید ویژگی های زیر را ارائه دهد:
- نمای تلفیقی از تمام هزینههای Kubernetes در کلسترها، تیمها، واحدهای تجاری، برنامهها و محیطها
- مشاهده ریز به معیارهای هزینه بر اساس فضای نام، غلاف، برچسب و غیره.
- بازپرداخت و تخصیص هزینه برای تیم FinOps برای توزیع هزینه ها بین تیم ها
- نگهداری طولانی مدت معیارها برای پیش بینی هزینه های آینده
- RBAC یکپارچه برای ارائه بینش هزینه مربوطه به تیمهای فردی
میتوانید از ابزار مدیریت هزینه بومی Kubernetes برای پیکربندی آستانههای بودجه مناسب، گروههای استرداد وجه و سایر سیاستهای کنترل هزینه استفاده کنید.
مدیریت هزینه یک عامل حیاتی برای استقرار موفق Kubernetes است. سازمان ها باید زمان و مراقبت قابل توجهی را برای توسعه یک استراتژی مدیریت هزینه صرف کنند. به دلیل پیچیدگی ذاتی Kubernetes، یک راه حل مدیریت هزینه خاص Kubernetes باید برای رسیدگی به موارد استفاده خاص Kubernetes استفاده شود.
از انتخاب نمونههای با اندازه مناسب تا نظارت بر استفاده از منابع و هزینههای Kubernetes در سطح ریز، پیروی از بهترین روشهای ذکر شده در این مقاله به شما کمک میکند مطمئن شوید که هزینهها تحت کنترل باقی میمانند. یک ابزار اختصاصی مدیریت هزینه Kubernetes میتواند به شما کمک کند هزینهها را مشاهده کنید و حاکمیت مالی لازم را ایجاد کنید و تیمهای FinOps را قادر میسازد تا کنترلهای هزینه کافی را در سراسر سازمان اجرا کنند.
Hemanth Kavuluru یکی از بنیانگذاران و معاون مهندسی در Rafay Systems، ارائهدهنده پلتفرم پیشرو برای عملیات Kubernetes.
—
New Tech Forum مکانی برای کاوش و بحث در مورد فناوری سازمانی نوظهور در عمق و وسعت بی سابقه ای فراهم می کند. انتخاب ذهنی است، بر اساس انتخاب ما از فناوری هایی که معتقدیم مهم هستند و برای خوانندگان InfoWorld بیشترین علاقه را دارند. InfoWorld وثیقه بازاریابی را برای انتشار نمی پذیرد و حق ویرایش تمام محتوای ارائه شده را برای خود محفوظ می دارد. همه سوالات را به newtechforum@infoworld.com ارسال کنید.
پست های مرتبط
۶ بهترین روش برای تحت کنترل نگه داشتن هزینه های Kubernetes
۶ بهترین روش برای تحت کنترل نگه داشتن هزینه های Kubernetes
۶ بهترین روش برای تحت کنترل نگه داشتن هزینه های Kubernetes