KlusterKit: një grup mjetesh me burim të hapur për lehtësimin e thjeshtësisht të implementimeve Kubernetes dhe punës në mjedise fizike të izoluara

Sot me kënaqësi njoftojmë se Platform9 po hap kodin burimor të Klusterkit, një grup prej tre mjetesh, me licencë Apache v2.0 në GitHub.
Klientët tanë po nxjerrin softuer në data qendrat private, të cilat shpesh nuk janë të lidhura me internetin (për arsye sigurie ose për arsye të tjera). Këto kompani të mëdha duan të shfrytëzojnë përfitimet e Kubernetes dhe të modernizojnë aplikacionet e tyre, duke i nxjerrë ato në data qendra të ndryshme, të cilat shpesh nuk kanë lidhje me botën përtej. Dhe këtu vjen në ndihmë Klusterkit, i cili lehtëson shpërndarjen dhe menaxhimin e grupeve K8s në mjedise fizike të izoluara.
Klusterkit përfshin tre mjete të pavarura, të cilat mund të përdoren së bashku ose veçmas për menaxhimin e ciklit të jetës së grupit përdorues Kubernetes:
- , CLI për menaxhimin e thjeshtuar të grupit etcd.
- , CLI për administrimin e node-ve, që plotëson kubeadm dhe shpërndan varësitë e nevojshme për kubeadm.
- , një mjet për menaxhimin e ciklit të jetës së grupit, i cili pranon Cluster API nga komuniteti Kubernetes dhe përdor nodeadm dhe etcdadm për të ofruar dhe mbështetur grupe Kubernetes me disponueshmëri të lartë në mjedise lokale dhe ndoshta fizike të izoluara.
Se bashku, këto tre mjete kryejnë detyrat e mëposhtme:
- Ofrojnë shpërndarje dhe menaxhimin e thjeshtë të një grupi etcd me disponueshmëri të lartë dhe panelin e menaxhimit Kubernetes në mjedise fizike të izoluara përmes Cluster API.
- Rikuperimin e panelit të menaxhimit të grupit pas një dështimi me anë të një kopje rezervë etcd.
- Paketimi i gjithë artefakteve të nevojshme për shpërndarjen e Kubernetes, në mjedise fizike të izoluara.
Kapacitetet e Klusterkit
- Përkrahja për disa mjeshtër (HA-grupi K8s).
- Ofrimi dhe menaxhimi i grupeve të mbrojtura etcd.
- Puna në mjedise fizike të izoluara.
- Mbështetje për përditësim dhe rikthim të radhës.
- Flannel (vxlan) si CNI për backend; në planet është mbështetje për CNI të tjera.
- Rezervimi dhe rikthimi i grupeve etcd pas humbjes së kvorumit.
- Mbrojtja e panelit të menaxhimit nga mungesa e memories dhe kohës së CPU.
Arkitektura e zgjidhjes Klusterkit
Për disponueshmërinë dhe thjeshtësinë, Klusterkit përdor një skedar të vetëm cctl-state.yaml për ruajtjen e metadata-ve të klasterit Kubernetes. Nëpërmjet cctl CLI, është e mundur të menaxhohet cikli jetësor i klasterit Kubernetes në çdo makinë që ka këtë skedë gjendjeje. Kjo mund të jetë një laptop i operatorit ose çdo kompjuter tjetër që është pjesë e klasterit Kubernetes.
Cctl zbaton dhe thërret nga upstream ndërfaqen cluster-api si një bibliotekë operacionesh CRUD për klasterët. Ai përdor , ofruesin cluster-api me kod burimor në "harduer të pastër" nga Platform9, i cili, nga ana e tij, thërret etcdadm dhe nodeadm për të kryer operacione mbi klasterin.
Si të përdorni Klusterkit dhe komponentët e tij:
1 – Çdo nga tre mjetet mund të ndërtohet lehtësisht me komandën go get:
go get -u github.com/platform9/cctl
go get -u github.com/platform9/nodeadm
go get -u github.com/kubernetes-sigs/etcdadm2 – Më pas, këto skedarë ekzekutivë mund të paketohen dhe kopjohen në makinat e synuara ku duhet të funksionojë klasteri Kubernetes me disponueshmëri të lartë. Vendosni skedarët nodeadm dhe etcdadm në katalogët e versioneve:
cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//
cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//3 – Nëse nevojitet orkestrimi i klasterit Kubernetes në mënyrë lokale, në një ambient fizikisht të izoluar, varësitë e nevojshme mund të shkarkohen lehtësisht paraprakisht në një kompjuter me qasje në internet duke përdorur komandën e shkarkimit nodeadm dhe etcdadm. Pas kësaj, elementët e shkarkuar (p.sh., kubelet dhe skedari i njësisë kubelet për systemd, skedarët ekzekutivë CNI, skedari kubeadm, të gjitha imazhet e konteinerëve, përfshirë Kubernetes, imazhi keepalived dhe skedari systemd, imazhi i konteinerit etcd dhe skedarët përkatës të konfigurimit) mund të kopjohen lehtësisht në hostet fizikisht të izoluar së bashku me cctl, nodeadm dhe etcdadm. (Për detaje, shihni ).
4 – Kur gjithçka është në vend, klasteri i parë Kubernetes mund të krijohet me disa komanda:
– Së pari krijoni kredencialet për klasterin.
$GOPATH/bin/cctl create credential --user root --private-key ~/ .ssh/id_rsa– Më pas krijoni objektin e klasterit. –help thërret listën e parametrave të mbështetur.
$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24– Në fund, krijoni makinën e parë në klaster.
$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role masterPër më shumë dokumentacion, lexoni në .
Burimi: habr.com
