KlusterKit

KlusterKit: مجموعة أدوات مفتوحة المصدر لتبسيط عمليات نشر Kubernetes وتشغيلها في بيئات داخلية معزولة فعليًا

KlusterKit

يسعدنا اليوم أن نعلن أن Platform9 هو برنامج Klusterkit مفتوح المصدر، وهو عبارة عن مجموعة من ثلاث أدوات، بموجب ترخيص Apache v2.0 على GitHub.

يقوم عملاؤنا بطرح البرامج في مراكز البيانات الخاصة التي غالبًا ما تكون غير متصلة بالإنترنت (لأسباب أمنية أو لأسباب أخرى). ترغب هذه الشركات الكبيرة في الاستفادة من Kubernetes وتحديث تطبيقاتها وفي الوقت نفسه طرحها في مراكز بيانات مختلفة، والتي غالبًا ما تكون غير متصلة بالعالم الخارجي. وهنا يأتي دور Klusterkit، مما يسهل توفير مجموعات K8 وإدارتها في بيئات معزولة فعليًا.

يتضمن Klusterkit ثلاث أدوات مستقلة يمكن استخدامها معًا أو بشكل منفصل لإدارة دورة حياة مجموعة إنتاج Kubernetes:

  1. etcdadm، CLI لتبسيط إدارة مجموعة etcd.
  2. com.nodeadm، واجهة سطر الأوامر (CLI) لإدارة العقدة التي تعمل على توسيع kubeadm ونشر التبعيات التي يحتاجها kubeadm.
  3. com.cctl، وهي أداة لإدارة دورة حياة المجموعة التي تتبنى Cluster API من مجتمع Kubernetes وتستخدم Nodeadm وetcdadm لتقديم وصيانة مجموعات Kubernetes عالية التوفر بسلاسة في البيئات المحلية وحتى المعزولة فعليًا.

تؤدي هذه الأدوات الثلاث معًا المهام التالية:

  • يمكنك بسهولة توفير وإدارة مجموعة etcd ولوحة معلومات Kubernetes المتوفرة بدرجة كبيرة في بيئات محلية معزولة فعليًا عبر Cluster API.
  • استعادة لوحة تحكم المجموعة بعد الفشل باستخدام النسخ الاحتياطي etcd.
  • تعبئة جميع العناصر اللازمة لتوصيل Kubernetes إلى بيئات معزولة ماديًا.

ميزات كلستركيت

  • دعم متعدد الماجستير (مجموعة HA K8s).
  • تسليم وإدارة مجموعات آمنة وما إلى ذلك.
  • العمل في بيئات معزولة جسديًا.
  • يدعم الترقيات المتداول والتراجع.
  • الفانيلا (vxlan) مثل CNI للواجهة الخلفية؛ هناك خطط لدعم CNIs الأخرى.
  • النسخ الاحتياطي واستعادة مجموعات etcd بعد فقدان النصاب القانوني.
  • يحمي لوحة التحكم من نفاد الذاكرة ووقت وحدة المعالجة المركزية.

هندسة حلول Klusterkit

KlusterKit

من أجل التسامح مع الأخطاء والبساطة، يستخدم Klusterkit ملف cctl-state.yaml واحد لتخزين البيانات التعريفية لمجموعة Kubernetes. من خلال cctl CLI، يمكنك إدارة دورة حياة مجموعة Kubernetes على أي جهاز يحتوي على ملف الحالة هذا. يمكن أن يكون هذا الكمبيوتر المحمول الخاص بالمشغل أو أي كمبيوتر آخر يشكل جزءًا من مجموعة Kubernetes.

تقوم Cctl بتنفيذ واستدعاء واجهة نظام المجموعة-API من المنبع كمكتبة لعمليات CRUD على المجموعات. انه يستخدم موفر ssh، وهو مزود واجهة برمجة التطبيقات العنقودية مفتوحة المصدر من Platform9، والذي بدوره يستدعي etcdadm وnodeadm لتنفيذ العمليات على المجموعة.

كيفية استخدام كلستركيت ومكوناته:

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 وصورة الحاوية وما إلى ذلك وملفات التكوين المقابلة) بسهولة إلى المضيفين المعزولين فعليًا مع 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

إضافة تعليق