KlusterKit

KlusterKit: یک جعبه ابزار منبع باز برای ساده سازی استقرار Kubernetes و اجرا در محیط های داخلی ایزوله فیزیکی

KlusterKit

امروز ما مشتاقیم اعلام کنیم که Platform9 با منبع باز Klusterkit، مجموعه ای از سه ابزار، تحت مجوز Apache v2.0 در GitHub است.

مشتریان ما نرم افزاری را در مراکز داده خصوصی که اغلب به اینترنت متصل نیستند (به دلایل امنیتی یا دلایل دیگر) عرضه می کنند. این شرکت‌های بزرگ می‌خواهند از مزایای Kubernetes استفاده کنند و برنامه‌های کاربردی خود را مدرن کنند و در عین حال آن‌ها را در مراکز داده مختلف که اغلب به دنیای خارج متصل نیستند، عرضه کنند. اینجاست که Klusterkit وارد می‌شود و تهیه و مدیریت خوشه‌های K8s را در محیط‌های ایزوله فیزیکی آسان می‌کند.

Klusterkit شامل سه ابزار مستقل است که می توانند با هم یا جداگانه برای مدیریت چرخه عمر خوشه تولید Kubernetes استفاده شوند:

  1. etcdadm، CLI برای مدیریت خوشه etcd ساده شده.
  2. nodeadmیک CLI برای مدیریت گره که kubeadm را گسترش می دهد و وابستگی های مورد نیاز kubeadm را به کار می گیرد.
  3. cctlیک ابزار مدیریت چرخه حیات خوشه‌ای است که از Cluster API از جامعه Kubernetes استفاده می‌کند و از nodeadm و etcdadm برای ارائه و نگهداری یکپارچه خوشه‌های Kubernetes بسیار در دسترس در داخل محل و حتی محیط‌های ایزوله فیزیکی استفاده می‌کند.

این سه ابزار با هم وظایف زیر را انجام می دهند:

  • از طریق Cluster API به راحتی یک خوشه etcd بسیار در دسترس و داشبورد Kubernetes را در محیط های داخلی ایزوله فیزیکی تهیه و مدیریت کنید.
  • بازیابی کنترل پنل خوشه پس از خرابی با استفاده از پشتیبان گیری etcd.
  • بسته بندی تمام مصنوعات مورد نیاز برای تحویل Kubernetes به محیط های ایزوله فیزیکی.

ویژگی های Klusterkit

  • پشتیبانی از چند استاد (HA Cluster K8s).
  • تحویل و مدیریت خوشه‌های امن etcd.
  • کار در محیط های ایزوله فیزیکی.
  • پشتیبانی از ارتقاء چرخشی و بازگشت.
  • فلانل (vxlan) به عنوان CNI برای باطن. برنامه هایی برای حمایت از سایر CNI ها وجود دارد.
  • پشتیبان گیری و بازیابی خوشه های etcd پس از از دست دادن حد نصاب.
  • از کنترل پنل در برابر تمام شدن حافظه و زمان CPU محافظت می کند.

Klusterkit Solution Architecture

KlusterKit

برای تحمل خطا و سادگی، Klusterkit از یک فایل cctl-state.yaml برای ذخیره ابرداده های خوشه Kubernetes استفاده می کند. از طریق cctl CLI می‌توانید چرخه حیات یک خوشه Kubernetes را در هر ماشینی که این فایل حالت را دارد مدیریت کنید. این می تواند لپ تاپ اپراتور یا هر رایانه دیگری باشد که بخشی از خوشه Kubernetes است.

Cctl رابط Cluster-api را از بالادست به عنوان یک کتابخانه برای عملیات CRUD روی خوشه ها پیاده سازی و فراخوانی می کند. او استفاده میکند ارائه دهنده sshیک ارائه‌دهنده api خوشه فلزی منبع باز از Platform9، که به نوبه خود etcdadm و nodeadm را برای انجام عملیات روی خوشه فراخوانی می‌کند.

نحوه استفاده از Klusterkit و اجزای آن:

1 - هر یک از سه ابزار را می توان به راحتی با دستور go get جمع آوری کرد:

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

go get -u github.com/kubernetes-sigs/etcdadm

2 - سپس این فایل های اجرایی را می توان بسته بندی کرد و در ماشین های هدف کپی کرد، جایی که خوشه Kubernetes بسیار در دسترس باید اجرا شود. فایل های nodeadm و etcdadm را در دایرکتوری های نسخه قرار دهید:

cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//

cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//

3 - اگر نیاز به هماهنگی یک خوشه Kubernetes به صورت محلی دارید، در یک محیط فیزیکی ایزوله، وابستگی های لازم را می توان به راحتی از قبل در رایانه ای با دسترسی به اینترنت با استفاده از دستور دانلود nodeadm و etcdadm دانلود کرد. سپس آیتم های دانلود شده (مانند فایل واحد kubelet و kubelet برای systemd، فایل های اجرایی CNI، فایل kubeadm، همه تصاویر کانتینر از جمله Kubernetes، تصویر نگهدارنده و فایل systemd، تصویر کانتینر etcd و فایل های پیکربندی مربوطه) به راحتی می توانند در هاست های ایزوله شده فیزیکی کپی شوند. با cctl، nodeadm و etcdadm. (به جزئیات مراجعه کنید ویکی).

4- وقتی همه چیز درست شد، می توانید اولین خوشه Kubernetes را با چند دستور ایجاد کنید:

– ابتدا برای خوشه اعتبار ایجاد کنید.

$GOPATH/bin/cctl create credential --user root --private-key ~/.ssh/id_rsa

– سپس یک شی خوشه ایجاد کنید. -help لیستی از گزینه های پشتیبانی شده را نشان می دهد.

$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24

– در نهایت اولین ماشین را در خوشه ایجاد کنید.

$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role master

اسناد بیشتر را در GitHub.

منبع: www.habr.com

اضافه کردن نظر