KlusterKit

KlusterKit: Kubernetes o'rnatishni soddalashtirish va jismoniy izolyatsiya qilingan mahalliy muhitda ishlash uchun ochiq manbali asboblar to'plami

KlusterKit

Bugun biz Platform9 GitHub’da Apache v2.0 litsenziyasi ostida uchta vositalar to‘plami bo‘lgan ochiq manbali Klusterkit ekanligini e’lon qilishdan xursandmiz.

Bizning mijozlarimiz ko'pincha Internetga ulanmagan (xavfsizlik yoki boshqa sabablarga ko'ra) xususiy ma'lumotlar markazlarida dasturiy ta'minotni chiqaradilar. Ushbu yirik kompaniyalar Kubernetes-dan foydalanishni va o'z ilovalarini modernizatsiya qilishni va shu bilan birga ularni ko'pincha tashqi dunyoga ulanmagan turli ma'lumotlar markazlarida tarqatishni xohlaydi. Bu erda Klusterkit keladi, bu jismoniy izolyatsiya qilingan muhitda K8s klasterlarini ta'minlash va boshqarishni osonlashtiradi.

Klusterkit Kubernetes ishlab chiqarish klasterining hayot aylanishini boshqarish uchun birgalikda yoki alohida ishlatilishi mumkin bo'lgan uchta mustaqil vositani o'z ichiga oladi:

  1. etcdadm, soddalashtirilgan etcd klasterini boshqarish uchun CLI.
  2. nodeadm, kubeadm-ni kengaytiruvchi va kubeadm uchun zarur bo'lgan bog'liqliklarni joylashtiradigan tugunlarni boshqarish uchun CLI.
  3. cctl, Kubernetes hamjamiyatidan Cluster API-ni qabul qiluvchi va nodeadm va etcdadm-dan yuqori darajadagi Kubernetes klasterlarini mahalliy va hatto jismoniy izolyatsiya qilingan muhitda muammosiz yetkazib berish va saqlash uchun klasterning hayot aylanishini boshqarish vositasi.

Ushbu uchta vosita birgalikda quyidagi vazifalarni bajaradi:

  • Cluster API orqali jismoniy izolyatsiya qilingan mahalliy muhitda yuqori darajada mavjud etcd klasteri va Kubernetes asboblar panelini osongina ta'minlang va boshqaring.
  • etcd zahirasi yordamida xatolikdan keyin klaster boshqaruv panelini tiklash.
  • Kubernetesni jismoniy izolyatsiya qilingan muhitga etkazib berish uchun zarur bo'lgan barcha artefaktlarni qadoqlash.

Klusterkit xususiyatlari

  • Multi-master qo'llab-quvvatlash (HA klaster K8s).
  • Xavfsiz etcd klasterlarini yetkazib berish va boshqarish.
  • Jismoniy jihatdan izolyatsiya qilingan muhitda ishlash.
  • Yangilanish va orqaga qaytishni qo'llab-quvvatlaydi.
  • Backend uchun CNI sifatida flanel (vxlan); Boshqa CNIlarni qo'llab-quvvatlash rejalari mavjud.
  • Kvorum yo'qolganidan keyin etcd klasterlarini zaxiralash va tiklash.
  • Boshqaruv panelini xotira va CPU vaqti tugashidan himoya qiladi.

Klusterkit yechim arxitekturasi

KlusterKit

Xatolarga chidamlilik va soddalik uchun Klusterkit Kubernetes klasteri metamaʼlumotlarini saqlash uchun bitta cctl-state.yaml faylidan foydalanadi. Cctl CLI orqali siz ushbu holat fayliga ega bo'lgan har qanday mashinada Kubernetes klasterining hayot aylanishini boshqarishingiz mumkin. Bu operatorning noutbuki yoki Kubernetes klasteriga kiruvchi boshqa kompyuter bo'lishi mumkin.

Cctl yuqori oqimdan klaster-api interfeysini klasterlarda CRUD operatsiyalari uchun kutubxona sifatida amalga oshiradi va chaqiradi. U foydalanadi ssh-provayder, Platform9 dan ochiq manbali yalang'och metall klaster-api provayderi, u o'z navbatida klasterda operatsiyalarni bajarish uchun etcdadm va nodeadm ni chaqiradi.

Klusterkit va uning tarkibiy qismlaridan qanday foydalanish kerak:

1 - uchta vositadan istalgan birini go get buyrug'i bilan osongina yig'ish mumkin:

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

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

2 - Ushbu bajariladigan fayllar keyinchalik paketlanishi va yuqori darajada mavjud Kubernetes klasteri ishlashi kerak bo'lgan maqsadli mashinalarga ko'chirilishi mumkin. Nodeadm va etcdadm fayllarini versiya katalogiga joylashtiring:

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

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

3 - Agar siz Kubernetes klasterini mahalliy, jismoniy izolyatsiya qilingan muhitda tashkil qilishingiz kerak bo'lsa, nodeadm va etcdadm yuklab olish buyrug'i yordamida kerakli bog'liqliklarni Internetga ulangan kompyuterga oldindan osongina yuklab olish mumkin. Keyin yuklab olingan elementlar (masalan, kubelet va kubelet birlik fayli systemd uchun, CNI bajariladigan fayllar, kubeadm fayli, barcha konteyner tasvirlari, shu jumladan Kubernetes, saqlangan tasvir va tizim fayli, va hokazo konteyner tasviri va mos keladigan konfiguratsiya fayllari) jismoniy izolyatsiya qilingan xostlarga osongina nusxalanishi mumkin. cctl, nodeadm va etcdadm bilan. (Tafsilotlarga qarang Wiki).

4 - Hammasi joyida bo'lgandan so'ng, siz bir nechta buyruqlar bilan birinchi Kubernetes klasterini yaratishingiz mumkin:

– Avval klaster uchun hisob ma’lumotlarini yarating.

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

– Keyin klaster obyektini yarating. -help qo'llab-quvvatlanadigan variantlar ro'yxatini chiqaradi.

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

– Nihoyat, klasterdagi birinchi mashinani yarating.

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

Batafsil hujjatlarni o'qing GitHub.

Manba: www.habr.com

a Izoh qo'shish