بهترین روشهای نظارت Kubernetes – انجمن DEV

Kubernetes را می توان با استفاده از ابزارهای مختلف، اعم از منبع باز، فروشنده شخص ثالث، یا در یک ابر عمومی نصب کرد. در بیشتر موارد، نصب های پیش فرض قابلیت نظارت محدودی دارند. بنابراین، هنگامی که یک خوشه Kubernetes اجرا می شود، مدیران باید راه حل های نظارتی را برای برآورده کردن نیازهای خود پیاده سازی کنند.
موارد استفاده معمول برای نظارت بر Kubernetes عبارتند از:
- اطمینان از قابلیت اطمینان حجم کار
- دستیابی به دید سطح بالا در حجم کاری شما
- هشدار و فعال کردن مدیریت حادثه نظارت مؤثر Kubernetes به ترکیبی از ابزار، استراتژی و تخصص فنی نیاز دارد. برای کمک به شما در درست کردن آن، این مقاله هفت روش ضروری نظارت بر Kubernetes را با جزئیات بررسی خواهد کرد.
خلاصه ای از مفاهیم کلیدی نظارت بر بهترین شیوه های Kubernetes
جدول زیر بهترین شیوه های نظارت Kubernetes را که در این مقاله بررسی خواهیم کرد، خلاصه می کند.
- مفهوم: نظارت در مقابل مشاهده پذیری
-
شرح: مشاهده پذیری به معنای به دست آوردن بینش در مورد عملکرد حجم کاری شما با استفاده از شاخص های خارجی است. نظارت به معنای بررسی این گونه شاخص ها در طول زمان است.
-
مفهوم: تعیین الزامات
-
شرح: الزامات و اهداف نظارتی خود را به دقت تعیین کنید.
-
مفهوم
معیارهای مناسب را شناسایی کنید
-
شرح
برای دستیابی به اهداف نظارتی خود به چه معیارهایی نیاز دارید. -
مفهوم: ابزار مناسب را انتخاب کنید
-
شرح: انتخاب ابزار مناسب با توجه به نیازهای شما بهترین روش حیاتی است. تصمیم اصلی در اینجا این است که آیا باید چیزی داخلی با استفاده از نرم افزار منبع باز بسازید یا یک راه حل کامل تر SaaS با پشتیبانی بهتر خریداری کنید.
-
مفهوم: نظارت بر سیستم مانیتورینگ
-
شرح: در یک حجم کاری تولید، نظارت بر خود سیستم نظارت برای اطمینان از قابل اعتماد بودن و در دسترس بودن بسیار مهم است.
-
مفهوم: ذخیره سازی داده ها را در نظر بگیرید
-
شرح: داده های مانیتورینگ باید به طور موثر ذخیره و مدیریت شوند.
-
مفهوم: بر هواپیمای کنترل نظارت کنید
-
شرح: نظارت بر هواپیمای کنترلی Kubernetes به راحتی قابل چشم پوشی است، بنابراین تیم ها باید در مورد نظارت بر هواپیمای کنترل عمدی باشند.
-
مفهوم: حساب برای پاسخ به حادثه
-
شرح: خروجی های مانیتورینگ می تواند هماهنگی پاسخ حادثه را افزایش دهد که می تواند MTTR (میانگین زمان رفع) را کاهش دهد.
نظارت در مقابل قابلیت مشاهده
قبل از اینکه به جزئیات بیشتر بپردازیم، اجازه دهید یک موضوع اغلب گیج کننده، نظارت در مقابل قابلیت مشاهده را باز کنیم. اصطلاح “نظارت” سنتی تر است و مجموعه ای از معیارها و گزارش های مورد استفاده برای نظارت بر اجزای زیرساخت برنامه را پوشش می دهد. ایده این است که با ارزیابی مداوم عملکرد زمان واقعی زیرساخت های زیربنایی، بار کاری را “نظارت” کنیم.
مشاهده پذیری یک مفهوم نسبتا جدید است، و حتی اگر با نظارت همپوشانی دارد، هدف نهایی آن جداسازی گلوگاه عملکرد در مسیر تراکنش به جای نظارت بر زیرساخت برنامه است. مشاهده پذیری در محیط های کاربردی طراحی شده بر اساس پارادایم میکروسرویس ها، جایی که یک برنامه کاربردی شامل سرویس های مدولار شده ای است که در کانتینرهای زودگذر میزبانی می شوند و از طریق رابط های برنامه نویسی برنامه (API) با یکدیگر تعامل دارند، جذابیت بیشتری پیدا کرد. در چنین محیطی، نظارت بر سرورها و کانتینرها به صورت مجزا معنیدار نیست، بنابراین دیدگاه جدیدی مورد نیاز بود که مفهوم مشاهدهپذیری را به وجود آورد.
علاوه بر معیارها و گزارشها، مشاهدهپذیری شامل ردیابی توزیعشده برای دنبال کردن مسیر تراکنش از طریق زیرساخت برنامه است. ردیابی توزیع شده به مهندسان عملیات امکان می دهد مسیر درخواست کاربر را درک کنند، از جمله:
- وقتی حجم کاری درخواست را دریافت کرد،
- مراحل یا میکروسرویس هایی که طی کرد و
- زمانی که پاسخ برای کاربر ارسال شد. قابلیت مشاهده به مهندسان عملیات اجازه می دهد تا به سرعت تأثیر بالادستی و پایین دستی خدمات برنامه بر روی یکدیگر را درک کنند. به طور معمول، ابزارهای مشاهدهپذیری معیارها، گزارشها و ردیابی را ترکیب میکنند تا به مهندسان یک دید منسجم از کل مسیر تراکنش در زیرساخت ارائه دهند. اگر می خواهید در مورد مشاهده پذیری (که “O11y” نیز نامیده می شود) بیشتر بدانید، این مقاله را بخوانید.
7 ضروری بهترین شیوه های نظارت بر کوبرنتس
هفت بهترین شیوه نظارت Kubernetes در زیر میتواند به تیمهای DevOps و SRE (مهندسی قابلیت اطمینان سایت) کمک کند تا به SLO (اهداف سطح خدمات) دست یابند و قابلیت مشاهده کلی زیرساخت را بهبود بخشند.
بهترین روش نظارت کوبرنتیس شماره 1: تعیین کنید که می خواهید به چه چیزی برسید
تعیین اهداف کسب و کار اولین (و مسلماً مهمترین) بهترین عملکرد نظارتی Kubernetes است. نمونه هایی از این اهداف عبارتند از:
- به سلامت خوشه خود دسترسی پیدا کنید
- مشاهده تجربه کاربر نهایی را به دست آورید
- زمانی که رویدادهای خاصی رخ می دهد، آگاه باشید
- مشکلات احتمالی را پیش بینی کنید
- روندها و الگوهای استفاده از حجم کار را شناسایی کنید، * مانند افزایش مداوم در استفاده از دیسک که منجر به پر شدن دیسک در یک دوره زمانی معین می شود.
- روندها و الگوهایی را که خارج از حد معمول یا خارج از آنچه انتظار می رود، شناسایی کنید
- هنگامی که شرایط خاصی برآورده می شود، غلاف ها را در داخل و خارج کنید
- ارزیابی قابلیت اطمینان برنامه در برابر معیارهای مورد انتظار در حالی که برنامه ریزی مهم است، همچنین ضروری است که بیش از حد به آن فکر نکنید. تیم هایی که تازه کار نظارت را شروع کرده اند باید از فلج تجزیه و تحلیل اجتناب کنند و در عوض یک رویکرد تکراری برای توسعه یک برنامه داشته باشند. الزامات اضافی را می توان بعداً برای رسیدگی به اطلاعات و الزامات جدید اضافه کرد.
بهترین روش نظارت کوبرنتیس شماره 2: معیارهایی را برای نظارت شناسایی کنید
هنگامی که اهداف کسب و کار خود را مشخص کردید، می توانید مشخص کنید که برای دستیابی به آن اهداف چه معیارهایی را باید جمع آوری کنید. این مرحله همچنین شامل تعریف پارامترهای پیکربندی مرتبط، مانند میزان جمعآوری و مدت زمانی است که برای ذخیره دادههای متریک نیاز دارید.
برخی از معیارها معمولاً به راحتی در دسترس هستند، معمولاً معیارهای سیستم. این معیارها عبارتند از:
- استفاده از CPU
- استفاده از حافظه
- فضای رایگان موجود روی دیسک ها
- داده های ورودی/خروجی دیسک
- معیارهای سیستم استفاده از شبکه معمولاً به عنوان بخشی از هر استراتژی نظارتی ضروری هستند و تمایل دارند فشار کلی را که خوشه تحت آن قرار دارد را نشان دهند. با این حال، آنها کاملاً ابتدایی هستند و معمولاً اطلاعات عملی کافی را فراتر از تشخیص اینکه آیا خوشه سالم به نظر می رسد ارائه نمی دهند.
علاوه بر این، اغلب معیارهای پیچیده تری مورد نیاز است. این معیارها اغلب به نرم افزاری که اجرا می کنید گره خورده است. به عنوان مثال، آنها می توانند اندازه گیری کنند:
- وب سایت یا برنامه چقدر واکنش گرا است؟
- در حال حاضر چند کاربر وارد سیستم شده اند؟
- میانگین تعداد کاربران همزمان در ساعت 10 صبح روزهای هفته چقدر است؟
- تیم پشتیبانی شما با چه سرعتی به درخواست های اولیه پاسخ می دهد؟
- نرخ خطاهای 5xx گزارش شده توسط وب سرور شما چقدر است؟
- میانگین تعداد مشاغل در یک صف ورودی در روز چقدر است؟
بهترین روش نظارت بر Kubernetes شماره 3: ابزار مناسب را انتخاب کنید
بهترین روش نظارتی بعدی Kubernetes ما انتخاب ابزار مناسب بر اساس معیارهای مورد نیاز و دستیابی به اهداف نظارتی شما است.
نرم افزار رایگان و منبع باز (FOSS) در مقابل نرم افزار شخص ثالث تجاری معمولاً برای دسته بندی ابزارهای نظارت Kubernetes استفاده می شود. چند نمونه از راه حل های نظارت بر FOSS عبارتند از:
- ابزارهای جمعآوری معیارها (مثلاً پرومتئوس، کوب متریک)
- ابزارهایی برای جمعآوری گزارشها (به عنوان مثال، Loki، Fluentd)
- ابزارهایی برای جمع آوری آثار (به عنوان مثال، Jaeger)
- ابزارهایی برای تجسم و هشدار (به عنوان مثال، Grafana، Alertmanager)
در حالی که گزینههای منبع باز زیادی در دسترس هستند، شما به تخصص داخلی و زمان قابل توجهی از مهندسان DevOps برای ساخت و نگهداری راهحل نظارت بر FOSS نیاز دارید. اگر متخصصان داخلی ندارید، می توانید مشاورانی را برای ایجاد راه حل استخدام کنید، اما این احتمالاً گران خواهد بود. از سوی دیگر، توسعه راه حل نظارتی خود می تواند در درازمدت باعث صرفه جویی قابل توجهی در هزینه شما شود.
گزینه جایگزین پرداخت هزینه برای نرم افزار شخص ثالث است که معمولا راه حل های نرم افزاری به عنوان سرویس (SaaS) را ارائه می دهد. گزینههای تجاری معمولاً محصولات پیشرفتهتری دارند، مانند یادگیری ماشینی برای شناسایی روندها و الگوهای مشکوک یا انجام تجزیه و تحلیل دادههای آفلاین. علاوه بر این، اکثر راه حل های تجاری با سطحی از پشتیبانی ارائه می شوند که پروژه های FOSS فاقد آن هستند.
هنگام ارزیابی راه حل ها، به یاد داشته باشید که استفاده از ابزارهای شخص ثالث (مخصوصاً محصولات SaaS) می تواند مسائل مربوط به انطباق را ایجاد کند، مانند حفاظت از اطلاعات شناسایی شخصی تحت HIPAA یا GDPR. همچنین ممکن است لازم باشد کلاستر خود را باز کنید تا مسیرهای اینترنت را برای محصولات SaaS شخص ثالث مجاز کنید، که سطح حمله را افزایش میدهد و میتواند مشکلات امنیتی دیگری ایجاد کند.
بهترین روش نظارت Kubernetes شماره 4: سیستم نظارت خود را نظارت کنید
مگر اینکه حجم کاری غیر تولیدی را اجرا کنید، احتمالاً می خواهید همه عناصر راه حل نظارتی شما بسیار در دسترس و مقیاس پذیر باشد. دستیابی به نظارت با دسترسی بالا مستلزم نظارت بر خود سیستم نظارت است. حداقل باید بتوانید خرابی های مهم در سیستم مانیتورینگ خود را تشخیص دهید و در صورت وقوع اعلان ارسال کنید. در حالت ایده آل، شما همچنین باید اصلاح خودکار چنین مشکلاتی را پیکربندی کنید.
به طور کلی، این سطح نظارت اضافی فقط برای راه حل های داخلی مورد نیاز است، زیرا فروشندگان SaaS شخص ثالث معمولاً سیستم های نظارتی برای پلتفرم های خود دارند. برخی از محصولات FOSS دارای سیستم های نظارتی خود هستند. به عنوان مثال، Loki با Loki Canary همراه است، که به طور منظم سیاهههای مربوط به لوکی را ارسال می کند و آنها را دوباره می خواند تا مطمئن شود که خوب کار می کند.
بهترین روش نظارت Kubernetes شماره 5: ذخیره سازی داده ها را در نظر بگیرید
سیستم مانیتورینگ شما در طول زمان داده ها را جمع آوری می کند و این داده ها باید مانند سایر داده ها مدیریت شوند. شما باید تعیین کنید که چه مدت باید آن را نگه دارید، شاید حتی بعد از مدتی آن را در سردخانه قرار دهید. حتماً هر گونه مقررات یا الزامات قانونی مربوط به سازمان خود را در نظر بگیرید تا در صورت درخواست، به داده ها دسترسی پیدا کرده و به سرعت ارائه شوند. تعیین الزامات نگهداری دادههای شما برای دادههای نظارتی بخشی از تمرین کلی جمعآوری نیازهای شما خواهد بود و سپس باید آن را مطابق با آن اجرا کنید.
بهترین روش نظارت کوبرنتیس شماره 6: صفحه کنترل را نظارت کنید
از نظارت بر هواپیمای کنترلی خود نیز غافل نشوید! تمام بهترین روشهایی که فهرست کردهایم در مورد صفحه کنترل نیز اعمال میشود، نه فقط صفحه داده. برخی از راه حل های مدیریت شده Kubernetes، مانند EKS آمازون، این کار را به طور خودکار برای شما انجام می دهند. اگر نه، باید نظارت بر گره های صفحه کنترل و اجزای مختلف صفحه کنترل را به استراتژی نظارت خود اضافه کنید.
بهترین روش نظارت کوبرنتس شماره 7: پاسخگویی به حادثه را در نظر بگیرید
هنگامی که سیستم مانیتورینگ شما راه اندازی شد و قادر به ارسال هشدارها به تیم شما بود، باید نحوه پاسخگویی به چنین هشدارهایی را در نظر بگیرید. Squadcast می تواند به هماهنگ کردن پاسخ های حادثه کمک کند و از هماهنگی بسیار بالایی در تیم شما اطمینان حاصل کند تا آنها بتوانند در هنگام برخورد با مشکل تا حد امکان کارآمد باشند.
ادغام دادههای پایش در یک استراتژی واکنش قوی به حادثه به تیمها کمک میکند تا سریعتر قطعیها و سایر حوادث مختل کننده تولید را شناسایی و بازیابی کنند. در نتیجه، MTTR کاهش مییابد و زمان کار بهبود مییابد.
نتیجه
نظارت بر حجم کاری تولید شما ضروری است، اما تلاش برای مشاهده واقعی در زیرساخت Kubernetes شما مهم است. اگر تازه شروع کردهاید، مهمترین روش نظارتی Kubernetes ما جمعآوری نیازمندیهای شما و تعیین اهداف کسبوکار شما است.
هنگامی که الزامات و اهدافی را در نظر گرفتید، قبل از اینکه به سمت ابزارسازی بروید، مشخص کنید که کدام معیارها به تحقق آنها کمک می کند. انتخاب ابزار مناسب گام مهمی است، به خصوص انتخاب بین FOSS (یک نتیجه این است که تیم شما باید زمان و تلاش خود را برای اجرای یک راه حل نظارت داخلی صرف کند) و راه حل شخص ثالث (که معمولا جامع تر هستند و پشتیبانی بهتری دارند). انطباق و امنیت ملاحظاتی هستند که ممکن است در هنگام انتخاب ابزار خود، بسته به نیاز پروژه خود، لازم باشد در نظر بگیرید.
در نهایت، به خصوص پس از ساخت یک راه حل داخلی، مطمئن شوید که سیستم نظارتی شما قابل اعتماد است، که مستلزم نظارت بر آن است. و فراموش نکنید که Squadcast می تواند به هماهنگی واکنش های حوادث در تیم شما کمک کند.