KlusterKit

KlusterKit: Маҷмӯаи кушодаасос барои содда кардани ҷойгиркунии Kubernetes ва кор дар муҳити аз ҷиҳати ҷисмонӣ ҷудошуда дар бино

KlusterKit

Имрӯз мо бо хушнудӣ эълон мекунем, ки Platform9 манбаи кушодаи Klusterkit аст, маҷмӯи се асбоб дар зери иҷозатномаи Apache v2.0 дар GitHub.

Мизоҷони мо нармафзорро дар марказҳои хусусии додаҳо паҳн мекунанд, ки аксар вақт ба Интернет пайваст нестанд (бо сабабҳои амниятӣ ё дигар). Ин ширкатҳои бузург мехоҳанд аз Kubernetes истифода баранд ва замимаҳои худро навсозӣ кунанд ва ҳамзамон онҳоро дар марказҳои гуногуни додаҳо, ки аксар вақт ба ҷаҳони беруна пайваст нестанд, паҳн кунанд. Дар ин ҷо Klusterkit ворид мешавад, ки таъмин ва идоракунии кластерҳои K8s дар муҳитҳои аз ҷиҳати ҷисмонӣ ҷудошударо осон мекунад.

Klusterkit се асбоби мустақилро дар бар мегирад, ки онҳоро якҷоя ё алоҳида барои идоракунии давраи ҳаёти кластери истеҳсолии Kubernetes истифода бурдан мумкин аст:

  1. ва гайра, CLI барои идоракунии кластери соддакардашудаи etcd.
  2. nodeadm, CLI барои маъмурияти гиреҳ, ки kubeadm-ро васеъ мекунад ва вобастагиҳоеро, ки ба kubeadm лозим аст, ҷойгир мекунад.
  3. cctl, як воситаи идоракунии давраи ҳаёти кластер, ки API-и Cluster-ро аз ҷомеаи Kubernetes қабул мекунад ва nodeadm ва etcdadm-ро барои бефосила расонидан ва нигоҳ доштани кластерҳои дастраси Kubernetes дар дохили бино ва ҳатто муҳити аз ҷиҳати ҷисмонӣ ҷудошуда истифода мебарад.

Якҷоя, ин се асбоб вазифаҳои зеринро иҷро мекунанд:

  • Тавассути API Cluster кластери хеле дастрас ва панели Kubernetes-ро дар муҳити аз ҷиҳати ҷисмонӣ ҷудошуда дар дохили бино ба осонӣ таъмин ва идора кунед.
  • Барқарор кардани панели идоракунии кластер пас аз нокомӣ бо истифода аз нусхабардории etcd.
  • Бастабандии ҳама артефактҳое, ки барои расонидани Кубернетҳо ба муҳити аз ҷиҳати ҷисмонӣ ҷудошуда лозиманд.

Хусусиятҳои Klusterkit

  • Дастгирии мултимедиявӣ (HA кластери K8s).
  • Интиқол ва идоракунии кластерҳои бехатар ва ғайра.
  • Кор дар муҳитҳои аз ҷиҳати ҷисмонӣ ҷудошуда.
  • Такмилдиҳии такрорӣ ва бозгаштро дастгирӣ мекунад.
  • Flannel (vxlan) ҳамчун CNI барои пуштибонӣ; Нақшаҳо барои дастгирии дигар CNI вуҷуд доранд.
  • Нусхабардорӣ ва барқарорсозии кластерҳои etcd пас аз гум шудани кворум.
  • Панели идоракуниро аз тамом шудани хотира ва вақти CPU муҳофизат мекунад.

Архитектураи ҳалли Klusterkit

KlusterKit

Барои таҳаммулпазирӣ ва соддагӣ, Klusterkit файли ягонаи cctl-state.yaml-ро барои нигоҳ доштани метамаълумоти кластери Kubernetes истифода мебарад. Тавассути cctl CLI шумо метавонед давраи ҳаёти кластери Kubernetes -ро дар ҳама мошине, ки ин файли давлатӣ дорад, идора кунед. Ин метавонад ноутбуки оператор ё ягон компютери дигаре бошад, ки қисми кластери Kubernetes аст.

Cctl интерфейси кластер-api-ро аз боло ҳамчун китобхона барои амалиёти CRUD дар кластерҳо амалӣ ва даъват мекунад. Ӯ истифода мебарад ssh-провайдери, як провайдери кушодаи металлии cluster-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, тасвири нигоҳ дошташуда ва файли система, тасвири контейнер ва ғайра ва файлҳои конфигуратсияи мувофиқ) метавонанд ба осонӣ ба ҳостҳои аз ҷиҳати ҷисмонӣ ҷудошуда нусхабардорӣ карда шаванд. бо 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.

Манбаъ: will.com

Илова Эзоҳ