ابزارهای پیاده‌سازی ساده‌تر کوبرنتس

نوشته شده توسط  شبکه البرز بازدید 1741 بار 19 خرداد 1398

کوبرنتس (Kubernetes) به یک استاندارد برای مدیریت کانتینر و پیاده سازی سیستم‌های توزیع شده پیچیده تبدیل شده است. با رشد و گسترش کوبرنتس، کار با قسمتهای مختلف آن نیز دشوارتر می‌شود. به همین منظور برخی از فعالان این حوزه از فناوری در تلاش بوده‌اند تا به شیوه‌های مختلف کار با کوبرنتس را ساده‌تر کنند. در این مقاله ما به معرفی 10 پروژه برتر خواهیم پرداخت که کار با کوبرنتس را از جنبه‌های مختلف از ساده سازی تعاملات خط فرمان و فرامین پیاده سازی اپلیکیشن تا یکپارچه‌سازی با AWS و مدیریت همزمان چند کلاستر ساده‌تر می‌کنند.Bitnami Cabin: داشبورد کوبرنتس برای اندروید و iOS

آدرس:

https://github.com/bitnami-labs/cabin

هر اپلیکیشن یا سرویس وبی باید به یک رابط موبایل مجهز باشد. Cabin یک نسخه از داشبورد کوبرنتس را برای مدیریت بهتر آن فراهم کرده است که از داخل تلفن‌های هوشمند اندروید و iOS قابل دسترس است. بسیاری از عملکردهای موجود در داشبورد اصلی کوبرنتس را می‌توان از داخل Cabin اجرا کرد که شامل نمودارهای Helm، خواندن لاگها و دسترسی به اپلیکیشن‌های تحت وب میزبانی شده توسط کوبرنتس است.

Kedge: پیاده سازی فشرده و مختصر نمونه‌های کوبرنتس

آدرس:

https://github.com/kedgeproject/kedge

بیشترین شکایت از کوبرنتس مربوط به پیچیدگی نوشتاری و تعاریف کاربردی مربوط به آن است. نوشتن آنها یک دردسر است و نگهداری از آن دردسری دیگر. به همین دلیل کاربران برای کم کردن مشکلات خود به سراغ ابزارهای ثالث می‌روند. Kedge قواعد نحوی و نوشتاری را به شکلی ساده‌تر و موجزتر ارائه می‌کند. شما نسخه ساده فایل تعریف شده کوبرنتس را برای Kedge فراهم می‌کنید و Kedge این فایل تعریف شده ساده را به یک همتای کوبرنتس کامل بسط می‌دهد.

Koki Short:

آدرس:

https://github.com/koki/shortKoki Short

نیز همانند Kedge پروژه‌ای برای بهینه سازی روش تعریف اپلیکیشن در کوبرنتس است. مثل تعاریف Kedge، اینجا نیز از قواعد نحوی و نوشتاری کوتاه و مختصر برای توصیف Podهای کوبرنتس استفاده می‌شود که می‌توان آنها را به قواعد نوشتاری کامل ترجمه کرد. بر خلاف تعاریف Kedge، ابزار Short ماژولار هستند، به این معنا که می‌توان جزئیات موجود در یک پروژه Short را در سایر پروژه‌های دیگر نیز استفاده کرد. 

Kops: مدیریت کلاسترهای کوبرنتس از خط فرمان

آدرس:

https://github.com/kubernetes/kops

Kops که توسط گروه کوبرنتس توسعه پیدا کرده است این امکان را برای شما فراهم می‌کند تا از طریق خط فرمان کلاسترهای کوبرنتس را مدیریت کنید. این ابزار از کلاسترهای اجرا شده در AWS و GCE با VMware vSphere و سایر محیط‌های در حال کار پشتیبانی می‌کند. علاوه بر این، برای خودکارسازی فرآیند نصب و پیکربندی می‌توان از Kops به همراه انواع مختلف دیگری از خودکارسازی استفاده کرد. برای نمونه، این ابزار می‌تواند پیکربندی‌های Terraform را توليد کند تا به یک کلاستر اجازه داده شود تا با استفاده از Terraform دوباره پیاده سازی شود.

Kubebox: کنسول ترمینال برای کوبرنتس

آدرس:

https://github.com/astefanutti/kubebox

Kubebox به عنوان یک کنسول ترمینال پیشرفته برای کوبرنتس امکانات بسیار بیشتری از یک پوسته ساده را برای کوبرنتس و API آن فراهم می‌کند. این ابزار میزان مصرف حافظه و پردازنده مرکزی، فهرست podها و لاگهای در حال اجرا را به شکل پویا نمایش می‌دهد و امکان ویرایش و پیکربندی را فراهم می‌کند. بهتر از همه این که Kubebox به عنوان یک اپلیکیشن مستقل برای لینوکس، ویندوز و مک در دسترس است.

Kube-monkey: Chaos monkey برای کوبرنتس

آدرس:

https://github.com/asobti/kube-monkey

یک روش مطمئن برای آزمايش سطح فشار به یک سیستم ایجاد تصادفی وقفه و اعمال اضافه بار در سیستم است. این همان نظریه پشت Chaos monkey نتفلیکس است، یک ابزار مهندسی هرج و مرج که به طور تصادفی ماشين‌های مجازی و کانتینرهای در حال اجرا را متوقف می‌کند تا توسعه دهندگان را به ایجاد سیستم های باثبات‌تر تشویق کند. Kube-monkey نسخه دیگری از همین ایده است که برای تحت فشار قرار دادن کلاسترهای کوبرنتس از آن استفاده می‌شود. روش کار به این صورت است که این ابزار به طور تصادفی podهای موجود در یک کلاستر را که شما تعیین می‌کنید از بین می‌برد.

Kube-ps1: خط فرمان هوشمند کوبرنتس

آدرس:

https://github.com/jonmosco/kube-ps1

فریب نام آن را نخورید، Kube-ps1 یک شبیه ساز پلی استیشن سونی نسل اول برای کوبرنتس نیست. این یک ابزار اضافی Bash است که اطلاعات مربوط به کوبرنتس‌های فعلی را نمایش می‌دهد. Kube-shell به قابلیت‌های مفید دیگری نیز مجهز است، اما اگر تمام آن چیزی که شما به دنبال آن هستید یک خط فرمان هوشمندتر است، Kube-ps1 آن را با کمترین دردسر در اختیار شما قرار می‌دهد.

Kube-prompt: کلاینت تعاملی کوبرنتس

آدرس:

https://github.com/c-bata/kube-prompt

Kube-prompt یک ابزار ویرایشی اصلاحی مختصر و مفید دیگر برای CLI کوبرنتس است که به شما اجازه می‌دهد با این کلاینت کوبرنتس فرامین را به صورت تعاملی به همراه پیشنهادات ارائه شده برای تکمیل آن فرمان وارد کنید. Kube-prompt زحمت شما را برای وارد کردن کامل فرامین کم کرده و اطلاعات تکمیل خودکار برای هر فرمان را در اختیار شما می‌گذارد.

Kube-shell: پوسته‌ای برای Kubernetes CLI

آدرس:

https://github.com/cloudnativelabs/kube-shell

خط فرمان کوبرنتس قدرتمند است، اما مثل هر اپلیکیشن خط فرمان دیگری انتخاب از بین گزینه‌های آن می‌تواند خسته کننده باشد. Kube-shell خط فرمان استاندارد کوبرنتس را در یک پوسته یکپارچه ادغام می‌کند که امکاناتی از جمله تکمیل خودکار و پیشنهاد خودکار فرامین رایج از جمله پیشنهادات فراهم شده توسط سرور کوبرنتس (برای مثال، اسامی‌ سرویس‌ها) را در اختیار شما قرار می‌دهد. همچنین این ابزار یک قابلیت تاریخچه فرمان قویتر را به شما ارائه می‌کند. یک حالت ویرایشی سبک vi و اطلاعات مربوط به کاربر، فضای نام، کلاستر و سایر جزئیات مربوط به نصب نیز توسط این ابزار ارائه می‌شود.

Kubespy: مانیتورینگ بلادرنگ منابع کوبرنتس

آدرس:

https://github.com/pulumi/kubespy

Kubespy یک ابزار تشخیصی است که به شما امکان می‌دهد تغییرات منابع کوبرنتس را به صورت لحظه‌ای تحت نظر داشته باشید. این کار از طریق نوعی داشبورد متنی در دسترس شما است. برای نمونه شما می‌توانید تغییرات اعمال شده به وضعیت یک pod را در زمان بوت مشاهده کنید. مراحل کار می‌تواند شامل این موارد باشد: اطلاعات مربوط به pod در Etcd نوشته می‌شود، pod زمانبندی می‌شود تا روی یک گره اجرا شود، Kubelet روی این گره pod را ایجاد می‌کند و در نهایت این pod به عنوان اجرا شده علامت‌گذاری می‌شود. Kubespy را می‌توان به عنوان یک فایل باینری مستقل و یا به عنوان پلاگین Kubectl اجرا کرد.

Kubernetes Ingress Controller برای AWS

آدرس:

https://github.com/zalando-incubator/kube-ingress-aws-controller

کوبرنتس از طریق یک سرویس به نام Ingress تراز بار خارجی و سرویس‌های شبکه را برای کلاسترها فراهم می‌کند. Amazon Web Services نیز امکان تراز بار را فراهم می‌کند، اما نمی‌تواند به طور خودکار این سرویس‌ها را برای سهولت کار کوبرنتس تامین کند. Kubernetes Ingress Controller for AWS توسعه پیدا کرده است تا این کمبود را جبران کند. Ingress Controller منابع AWS را برای هر کدام از عناصر Ingress در یک کلاستر به طور خودکار مدیریت می‌کند، تراز کننده‌های بار را برای منابع ورودی جدید ایجاد می‌کند و تراز کننده‌های بار منابع حذف شده را پاک می‌کند. سایر عناصر استفاده شده در کلاستر مثل گواهی نامه‌های SSL و EC2 Auto Scaling Groups نیز توسط این ابزار به طور خودکار مدیریت می‌شوند.

Kube-ops-view: داشبوردی برای کوبرنتس چند کلاستری

آدرس:

https://github.com/hjacobs/kube-ops-view

کوبرنتس از یک داشبورد کاربردی برای مانیتورینگ اهداف عمومی‌ برخوردار است، اما اعضای جامعه کوبرنتس روش‌های دیگری را نیز برای ارائه داده‌ها به مدیران کوبرنتس معرفی کرده‌اند. Kube-ops-view یکی از آنها است که امکان مشاهده سریع و اجمالی اطلاعات چند کلاستر کوبرنتس را به صورت گرافیکی فراهم می‌کند. به این شكل کاربر می‌تواند در یک نگاه وضعیت مصرف پردازنده مرکزی و حافظه و همچنین وضعیت podها در یک کلاستر را مشاهده کند. توجه داشته باشید که این ابزار امکان وارد کردن فرامین را در اختیار شما قرار نمي‌دهد و تنها برای مشاهده آمار و اطلاعات کاربرد دارد.

Skaffold: توسعه ایده ال برای کوبرنتس

آدرس:

https://github.com/GoogleContainerTools/skaffold

Skaffold یکی از ابزارهای اختصاصی گوگل برای کوبرنتس است و روشی برای انجام مستمر توسعه اپلیکیشن‌های کوبرنتس محسوب می‌شود. وقتی شما تغییراتی را روی کد منبع خود اعمال می‌کنید، Skaffold به طور خودکار آنها را تشخیص داده و فرآیند ساخت و پیاده سازی را فعال می‌کند و در صورت مواجه شدن با هر نوع خطایی به شما هشدار می‌دهد. Skaffold کاملا در سمت کلاینت اجرا می‌شود. 

Stern and Kubetail: مشاهده فایل‌های لاگ

آدرس:

https://github.com/wercker/stern

Stern به شما اجازه می‌دهد یک خروجی با کدهای رنگ بندی شده (همانند فرمان tail) از podها و کانتینرها در کوبرنتس تهیه کنید. با این ابزار می‌توانید به سرعت تمام خروجی‌های حاصل از چند منبع مختلف را در یک مسیر واحد قرار داده و همزمان آنها مشاهده کنید.

Kubetail نیز می‌تواند به همین شیوه لاگهای چندین pod مختلف را در یک مسیر واحد جمع آوری کند و podها و کانتینرها مختلف را با کدهای رنگی مشخص کند. اما Kubetail یک Bash script است و بجز پوسته به هیچ چیز دیگری نیاز ندارد.

Teresa: یک PaaS ساده در کوبرنتس

آدرس:

https://github.com/luizalabs/teresa

Teresa یک سیستم توسعه اپلیکیشن است که به عنوان یک PaaS ساده در کوبرنتس اجرا می‌شود. کاربرانی که در گروه‌های مختلف سازماندهی شده‌اند می‌توانند اپلیکیشن‌های متعلق به خود را پیاده سازی و مدیریت کنند. چنین ابزاری به کاربرانی که اجازه دسترسی به اپلیکیشن مورد نظر را دارند این امکان را می‌دهد تا بدون درگیر شدن مستقیم با کوبرنتس با آن اپلیکیشن کار کنند.

نویسنده: محسن آقاجانی - شبکه

نظرات کاربران

تصویر امنیتی تصویر امنیتی جدید