رتینا منبع باز قابلیت مشاهده را به شبکه های کانتینری در Kubernetes با استفاده از eBPF می آورد.
Kubernetes نقش مهمی در مایکروسافت دارد. سیستم مدیریت کانتینر یک بخش اساسی از ابرهای متعدد این شرکت است، از Microsoft 365 و Xbox گرفته تا Azure، تا شرکای مانند OpenAI که از Kubernetes مایکروسافت برای میزبانی خدمات خود استفاده میکنند.
در نتیجه، مایکروسافت بسیاری از ابزارهای مدیریت Kubernetes خود را اختراع کرده است. اینها عبارتند از Kaito برای استقرار بارهای کاری استنتاج هوش مصنوعی و Fleet برای مدیریت در مقیاس بزرگ خوشه های Kubernetes. همه ابزارهای مختلف مایکروسافت در زیر دو سرویس Kubernetes مدیریت شده، Azure Kubernetes Service و Azure Container Service قرار دارند و به شما این امکان را میدهند تا برنامههای مبتنی بر کانتینر خود را بدون نیاز به ایجاد چارچوب مدیریتی لازم، استقرار و هماهنگ کنید. این همه به صورت رایگان همراه با API ها، پورتال ها و رابط های خط فرمان ارائه می شود.
در روزهای قدیم، همینطور بود. مایکروسافت از این ویژگیها استفاده میکرد تا خود را از رقبای خود و ابرهای Kubernetes متمایز کند. اما مایکروسافت مدل منبع باز را مورد توجه قرار داده است، زیرا بسیاری از رهبران ابتکارات Kubernetes آن از پسزمینه منبع باز میآیند. مایکروسافت به جای اینکه ابزارهای Kubernetes خود را برای خود نگه دارد، آنها را به عنوان پروژه های منبع باز منتشر می کند، جایی که همه می توانند از آنها استفاده کنند، و هر کسی می تواند کد جدیدی را ارائه دهد.
معرفی پلت فرم مشاهده پذیری شبکیه چشم
یکی از جدیدترین ابزارهای Azure برای تبدیل شدن به یک پروژه منبع باز Retina است، ابزاری برای مشاهده شبکه طراحی شده برای کمک به درک ترافیک شبکه در همه خوشه های خود، صرف نظر از اینکه چگونه پیکربندی شده اند یا چه سیستم عاملی دارند. آنها استفاده می کنند. هیچ ارتباطی با عملکرد Azure نیز وجود ندارد. میتوانید Retina را در هر نمونه Kubernetes، در محل یا در AWS، Azure یا GCP اجرا کنید.
در قلب رتینا، بیشتر مانند ابزار امنیتی Falco، فیلترهای بسته توسعه یافته برکلی (eBPF) وجود دارد ). اینها به شما امکان می دهند کد را در هسته سیستم عامل میزبان، خارج از کانتینرهای برنامه خود اجرا کنید، بنابراین می توانید از پروب های eBPF بدون تأثیر قابل توجهی بر روی کدی که در حال اجرا هستید استفاده کنید. نیازی به افزودن عوامل به کانتینرهای خود یا افزودن کتابخانه های نظارتی به کد شما نیست، و یک کاوشگر eBPF می تواند تمام گره های در حال اجرا روی یک میزبان را نظارت کند، خواه یک ماشین مجازی ابری یا سخت افزار فیزیکی داخلی باشد.
اجرای پروب های رتینا در هسته نظارت بر شبکه را ساده می کند. نیازی نیست بدانید چه کارتهای شبکه روی سرور میزبان نصب شدهاند، یا اینکه نصب Kubernetes شما چگونه از یک سرویس مش استفاده میکند. در عوض، نگاهی به نحوه مدیریت بستهها توسط پشته شبکه سیستمعامل میزبان میبینید. میتوانید انواع بستهها، تأخیر و از دست دادن بستهها را با بهرهگیری از ویژگیهای سطح پایین TCP/IP که ممکن است در سطح بالاتر قابل دسترسی نباشند، ردیابی کنید.
با تمرکز بر روی قابل مشاهده کردن شبکه های ابری بومی، رتینا به گونه ای طراحی شده است که در هر مجموعه ابزار نظارتی و هر نصب Kubernetes قرار گیرد. پشتیبانی از لینوکس و ویندوز وجود دارد که به شما کمک میکند برنامههای ترکیبی را که سرویسهای لینوکس و ویندوز را ترکیب میکنند، نظارت و اشکالزدایی کنید. از آنجایی که کاوشگرهای eBPF کد هستند، میتوانید آنها را بهعنوان افزونههای قابل تنظیم در نظر بگیرید که به Retina اجازه میدهد با ویژگیهای جدید Kubernetes تکامل یابد و از معیارهایی که برای نیازهای نظارتی شما نیاز دارید پشتیبانی کند.
داده ها در سطح گره به سرویس ثبت نام آشنای Prometheus تحویل داده می شوند. داده های جمع آوری شده شامل DNS، عملیات لایه ۴، و ضبط بسته ها می باشد. از آنجایی که دادهها برچسبگذاری شدهاند، میتوانید نقشهای از عملیاتها در محیط Kubernetes خود بسازید، که به ردیابی مشکلاتی مانند میکروسرویس مسدودکننده کمک میکند، زیرا Retina الگوی جریانها را در داخل و اطراف نمونههای Kubernetes شما ثبت میکند.
شروع با رتینا
با کلون کردن مخزن Retina GitHub شروع کنید، سپس از نمودارهای Helm همراه برای نصب استفاده کنید. ممکن است لازم باشد Prometheus را نیز پیکربندی کنید تا مطمئن شوید که رتینا در حال ثبت اطلاعات است. اگر میخواهید از Retina CLI استفاده کنید، باید روی Kubernetes میزبان لینوکس اجرا کنید. . CLI در kubectl اجرا می شود، بنابراین استفاده از آن در کنار سایر ابزارهای Kubernetes CLI آسان خواهد بود. همچنین، میتوانید از تعاریف منابع سفارشی YAML برای پیکربندی و اجرای ضبط شبکه استفاده کنید.
در لینوکس، افزونه ضبط شبکه eBPF نسخهای از ابزار منبع باز Inspektor Gadget است. این در ابتدا توسط تیم Kinvolk توسعه داده شد که اکنون بخشی از Azure است و همچنان بر مهندسی کانتینر متمرکز است. Inspektor Gadget کتابخانه ای از ابزارهای Kubernetes eBPF است که با برنامه های Kubernetes در هر اندازه ای، از گره های منفرد گرفته تا خوشه های بزرگ Retina از ابزارهای ردیابی Inspektor Gadget برای مشاهده رویدادهای سیستم شبکه استفاده می کند.
مشاهده شبکه های کانتینر
وبسایت Retina دستورالعملهای دقیقی را برای کار با ابزار ارائه میدهد. رتینا سه حالت عملیاتی مختلف ارائه میکند: معیارهای پایه در سطح هر گره، “ریموت” با جزئیات بیشتر معیارهای متن با پشتیبانی از جمعآوری بر اساس غلاف منبع و مقصد، و یک گزینه «متن محلی» که به شما امکان میدهد انتخاب کنید کدام پادها را نظارت کنید.
توجه داشته باشید که همه چیز را بهطور پیشفرض نمیبینید، زیرا ممکن است طاقتفرسا باشد. در عوض، معیارهای مختلف توسط افزونه های مختلف فعال می شوند. برای مثال، اگر میخواهید تماسهای DNS را ردیابی کنید، با فعال کردن افزونه DNS شروع کنید. همه معیارها شامل ابردادههای خوشهای و نمونه هستند، بنابراین میتوانید با استفاده از برچسبها برای شناسایی گرهها و غلافهای هدف خاص فیلتر و گزارش دهید. گزینههای بافت محلی و راه دور برچسبهایی را اضافه میکنند که منبع و مقصد را ردیابی میکنند.
پیکربندی رتینا همچنین به تنظیم یک هدف Prometheus برای داده ها، همراه با داشبورد مناسب Grafana. مایکروسافت تنظیمات نمونه را برای هر دو در GitHub در مخزن رتینا ارائه می دهد. پیش فرض ها داده های شبکه و DNS را برای خوشه شما نمایش می دهند. داشتن دادهها در Prometheus به شما امکان میدهد از ابزارهای دیگری برای کار با دادههای رتینا استفاده کنید، بهعنوان مثال، دادهها را به موتور خطمشی برای فعال کردن هشدارها یا خودکار کردن عملیات خاص وارد کنید.
با نصب رتینا و پیکربندی Prometheus و Grafana، اکنون میتوانید از پیشفرضها فراتر رفته و عامل و پلاگینها را از طریق YAML پیکربندی کنید. پیکربندی معیارهای اضافی از طریق تعاریف منابع سفارشی Kubernetes است.
اندازه گیری عملیات شبکه Kubernetes
Retina واقعاً ابزاری برای نظارت مستمر در سطح بسته نیست، زیرا دادههای زیادی را در یک خوشه شلوغ تولید میکند، مگر اینکه مطمئناً از آن با یک ابزار مبتنی بر سیاست برای شناسایی استثناهای عملکرد عادی استفاده کنید. در عمل، شاید بهتر است از رتینا برای شناسایی علل ریشه مشکلات مربوط به یک کلاستر در حال اجرا استفاده کنید. شاید گرهها با یکدیگر ارتباط برقرار نمیکنند، یا گمان میکنید که خطاها ممکن است به دلیل تأخیر در تعامل سرویس خاص باشد. در اینجا میتوانید با یک فرمان واحد ضبط بسته مورد نیاز را فعال کنید که تمام دادههایی را که برای اجرای تشخیص نیاز دارید جمعآوری میکند.
عملیات مستمر از طریق معیارهایی گزارش میشود که اطلاعات آماری در مورد مسائل کلیدی شبکه به شما میدهد. اینها را میتوان با استفاده از Prometheus برای ایجاد هشدار مدیریت کرد، با داشبوردهای Grafana که به شما یک نمای کلی از عملکرد کلی خوشهتان، همراه با دادههای سایر ابزارهای مشاهدهپذیری ارائه میدهد.
یکی از معیارهای مفید ارائه شده توسط Retina، معیاری است که اغلب نادیده گرفته میشود: تأخیر API. با این حال، در توسعه ابری بومی، شما اغلب با API های شخص ثالث کار می کنید. برخی ممکن است خدمات پلتفرمی از ارائهدهنده ابری باشند، در حالی که برخی دیگر میتوانند منابع دادهای ضروری در خط کسب و کار مانند Salesforce یا SAP Hana باشند. در اینجا میتوانید از تأخیر سرور API Retina برای دریافت معیارهایی استفاده کنید که به ردیابی زمان پاسخ سرور کمک میکند.
داشتن این دادهها به شما امکان میدهد یک فرآیند تشخیصی را با ارائهدهنده API خود شروع کنید و به ردیابی منبع تاخیرها کمک کنید. تأخیر در دسترسی به API میتواند مسدودکننده قابل توجهی در برنامههای شما باشد، بنابراین داشتن این دادهها میتواند به شما کمک کند برنامهای قابل اعتمادتر و پاسخگو ارائه کنید.
اکوسیستم کوبرنتیس در حال بلوغ
مایکروسافت نسخه پیشنمایش ابزار مشاهدهپذیری مبتنی بر شبکیه چشم را ساخته است برای سرویس Azure Kubernetes به عنوان افزونه مشاهده پذیری شبکه موجود است. این با Prometheus و Grafana مدیریت شده Azure کار می کند. میتوانید فهرستی از معیارهای از پیش پیکربندیشده را در مستندات آن بیابید، اما در حال حاضر تنها زیرمجموعهای از قابلیتهای رتینا را ارائه میدهد و تنها معیارهای سطح گره را ارائه میکند.
یک نکته کلیدی که باید در مورد رتینا در نظر گرفت این است که بر اساس تجربه Azure با Kubernetes است. معیارهایی که در خارج از جعبه به دست میآیند همان چیزی است که تیم Azure آن را مهم میداند، و شما در حال ساختن دانشی هستید که از یکی از بزرگترین و فعالترین محیطهای Kubernetes در همه جا پشتیبانی میکند. اگر به معیارهای جایگزین نیاز دارید، میتوانید کاوشگرهای eBPF خود را برای رتینا بسازید، که سپس میتواند با جامعه گستردهتر Kubernetes به اشتراک گذاشته شود.
متن باز برای موفقیت به تخصص مشترک نیاز دارد. مایکروسافت با باز کردن پایه کد، توسعه دهندگان Retina را تشویق می کند تا دانش خود را به این پلتفرم بیاورند، با این امید که AWS، GCP و سایر اپراتورهای Kubernetes در مقیاس مقیاس، درس های شبکه ای را که آموخته اند با جهان به اشتراک بگذارند. همانطور که Kubernetes بالغ می شود، ابزارهای مبتنی بر eBPF مانند Retina و Falco اهمیت فزاینده ای پیدا می کنند و داده هایی را که ما برای ارائه برنامه های کاربردی ایمن و قابل اعتماد بومی ابری در مقیاس نیاز داریم، فراهم می کنند.
پست های مرتبط
استفاده از رتینا مایکروسافت برای نظارت بر شبکه های Kubernetes
استفاده از رتینا مایکروسافت برای نظارت بر شبکه های Kubernetes
استفاده از رتینا مایکروسافت برای نظارت بر شبکه های Kubernetes