KlusterKit

KlusterKit: In iepen boarne toolkit om Kubernetes-ynset te ferienfâldigjen en te rinnen yn fysyk isolearre omjouwings op it terrein

KlusterKit

Hjoed binne wy ​​optein om oan te kundigjen dat Platform9 iepen boarne is Klusterkit, in suite fan trije ark, ûnder de Apache v2.0-lisinsje op GitHub.

Us kliïnten rôlje software út yn partikuliere datasintra dy't faak net ferbûn binne mei it ynternet (om feiligens of oare redenen). Dizze grutte bedriuwen wolle profitearje fan Kubernetes en har applikaasjes modernisearje en tagelyk útrolje yn ferskate datasintra, dy't faak net ferbûn binne mei de bûtenwrâld. Dit is wêr't Klusterkit binnenkomt, wêrtroch it maklik is om K8s-klusters te leverjen en te behearjen yn fysyk isolearre omjouwings.

Klusterkit omfettet trije ûnôfhinklike ark dy't tegearre of apart kinne wurde brûkt om de libbenssyklus fan in Kubernetes-produksjekluster te behearjen:

  1. etcdadm, CLI foar ferienfâldige etcd kluster behear.
  2. nodeadm, in CLI foar node-administraasje dy't kubeadm útwreidet en de ôfhinklikens ynset dy't nedich binne troch kubeadm.
  3. cctl, in kluster lifecycle management ark dat de Cluster API oannimt fan 'e Kubernetes-mienskip en nodeadm en etcdadm brûkt om naadloos heech beskikbere Kubernetes-klusters te leverjen en te ûnderhâlden yn lokale en sels fysyk isolearre omjouwings.

Mei-inoar fiere dizze trije ark de folgjende taken út:

  • Meitsje en beheare maklik in heech beskikber etcd-kluster en Kubernetes-dashboard yn fysyk isolearre omjouwings op it terrein fia de Cluster API.
  • It werstellen fan it klusterkontrôlepaniel nei in mislearring mei help fan etcd-backup.
  • Ferpakking fan alle artefakten dy't nedich binne om Kubernetes te leverjen yn fysyk isolearre omjouwings.

Klusterkit funksjes

  • Multi-master stipe (HA cluster K8s).
  • Levering en behear fan feilige etcd klusters.
  • Wurkje yn fysyk isolearre omjouwings.
  • Unterstützt rôljende upgrades en rollbacks.
  • Flannel (vxlan) as CNI foar de efterkant; D'r binne plannen om oare CNI's te stypjen.
  • Reservekopy en restauraasje fan etcd klusters nei ferlies fan kworum.
  • Beskermet it kontrôlepaniel tsjin it rinnen fan ûnthâld en CPU-tiid.

Klusterkit Solution Architecture

KlusterKit

Foar fouttolerânsje en ienfâld brûkt Klusterkit in inkele cctl-state.yaml-bestân om Kubernetes-klustermetadata te bewarjen. Troch de cctl CLI kinne jo de libbenssyklus fan in Kubernetes-kluster beheare op elke masine dy't dit steatbestân hat. Dit kin in laptop fan in operator wêze as elke oare kompjûter dy't diel útmakket fan it Kubernetes-kluster.

Cctl ymplemintearret en ropt de cluster-api-ynterface fanôf streamop as in bibleteek foar CRUD-operaasjes op klusters. Hy brûkt ssh-oanbieder, in iepen-boarne bleate metalen kluster-api provider fan Platform9, dy't op syn beurt neamt etcdadm en nodeadm te fieren operaasjes op it kluster.

Hoe kinne jo Klusterkit en syn komponinten brûke:

1 - Elk fan 'e trije ark kin maklik wurde sammele mei it go get kommando:

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

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

2 - Dizze útfierbere bestannen kinne dan wurde ferpakt en kopieare nei de doelmasines wêr't it heul beskikbere Kubernetes-kluster rinne moat. Plak de nodeadm- en etcdadm-bestannen yn 'e ferzje-mappen:

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

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

3 - As jo ​​in Kubernetes-kluster lokaal moatte orkestrearje, yn in fysyk isolearre omjouwing, kinne de nedige ôfhinklikens maklik fan tefoaren downloade wurde op in kompjûter mei ynternettagong mei it ynlaadkommando nodeadm en etcdadm. Dan kinne de ynladen items (d.w.s. kubelet- en kubelet-ienheidbestân foar systemd, CNI-útfierbere bestannen, kubeadm-bestân, alle kontenerôfbyldings ynklusyf Kubernetes, keepalive-ôfbylding en systemd-bestân, ensfh. mei cctl, nodeadm en etcdadm. (Sjoch details yn wiki).

4 - As alles op syn plak is, kinne jo it earste Kubernetes-kluster meitsje mei in pear kommando's:

- Meitsje earst bewiisbrieven foar it kluster.

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

- Meitsje dan in klusterobjekt. -help bringt in list mei stipe opsjes op.

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

- As lêste, meitsje de earste masine yn it kluster.

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

Lês mear dokumintaasje op GitHub.

Boarne: www.habr.com

Add a comment