KlusterKit

KlusterKit: komplet alata otvorenog koda za pojednostavljenje implementacije Kubernetesa i pokretanje u fizički izoliranim lokalnim okruženjima

KlusterKit

Danas smo uzbuđeni što možemo objaviti da Platform9 nudi otvoreni izvor Klusterkit, paket od tri alata, pod licencom Apache v2.0 na GitHubu.

Naši klijenti uvode softver u privatne centre podataka koji često nisu povezani na internet (iz sigurnosnih ili drugih razloga). Ove velike kompanije žele da iskoriste prednosti Kubernetesa i modernizuju svoje aplikacije i istovremeno ih uvedu u različite centre podataka, koji često nisu povezani sa spoljnim svetom. Tu dolazi Klusterkit, koji olakšava pružanje i upravljanje K8s klasterima u fizički izolovanim okruženjima.

Klusterkit uključuje tri nezavisna alata koji se mogu koristiti zajedno ili odvojeno za upravljanje životnim ciklusom Kubernetes proizvodnog klastera:

  1. etcdadm, CLI za pojednostavljeno upravljanje etcd klasterima.
  2. nodeadm, CLI za administraciju čvorova koji proširuje kubeadm i postavlja zavisnosti potrebne kubeadm-u.
  3. cctl, alat za upravljanje životnim ciklusom klastera koji usvaja Cluster API iz Kubernetes zajednice i koristi nodeadm i etcdadm za besprijekorno isporuku i održavanje visoko dostupnih Kubernetes klastera u lokalnim, pa čak i fizički izolovanim okruženjima.

Zajedno, ova tri alata obavljaju sljedeće zadatke:

  • Lako obezbedite i upravljajte visoko dostupnim etcd klasterom i Kubernetes kontrolnom pločom u fizički izolovanim lokalnim okruženjima preko Cluster API-ja.
  • Vraćanje kontrolne ploče klastera nakon kvara korištenjem etcd sigurnosne kopije.
  • Pakovanje svih artefakata potrebnih za isporuku Kubernetesa u fizički izolirana okruženja.

Klusterkit karakteristike

  • Multi-master podrška (HA klaster K8s).
  • Isporuka i upravljanje sigurnim etcd klasterima.
  • Rad u fizički izolovanim okruženjima.
  • Podržava nadogradnje i vraćanje unatrag.
  • Flannel (vxlan) kao CNI za pozadinu; Postoje planovi za podršku drugim CNI-ovima.
  • Backup i restauracija etcd klastera nakon gubitka kvoruma.
  • Štiti kontrolnu tablu od nedostatka memorije i CPU vremena.

Klusterkit Solution Architecture

KlusterKit

Radi tolerancije grešaka i jednostavnosti, Klusterkit koristi jednu datoteku cctl-state.yaml za skladištenje metapodataka Kubernetes klastera. Preko cctl CLI možete upravljati životnim ciklusom Kubernetes klastera na bilo kojoj mašini koja ima ovu datoteku stanja. To može biti laptop operatera ili bilo koji drugi računar koji je dio Kubernetes klastera.

Cctl implementira i poziva klaster-api sučelje od uzvodne strane kao biblioteku za CRUD operacije na klasterima. On koristi ssh-provajder, open-source goli metal cluster-api provajder iz Platform9, koji zauzvrat poziva etcdadm i nodeadm da izvrši operacije na klasteru.

Kako koristiti Klusterkit i njegove komponente:

1 – Bilo koji od tri alata može se lako prikupiti naredbom 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 – Ovi izvršni programi se zatim mogu upakovati i kopirati na ciljne mašine na kojima treba da radi visoko dostupan Kubernetes klaster. Postavite nodeadm i etcdadm fajlove u direktorijume verzija:

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

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

3 – Ako trebate da orkestrirate Kubernetes klaster lokalno, u fizički izolovanom okruženju, potrebne zavisnosti se mogu lako unapred preuzeti na računar sa pristupom Internetu pomoću naredbe za preuzimanje nodeadm i etcdadm. Zatim preuzete stavke (tj. kubelet i kubelet jedinična datoteka za systemd, CNI izvršne datoteke, kubeadm datoteka, sve slike kontejnera uključujući Kubernetes, keepalived image i systemd datoteku, etcd sliku kontejnera i odgovarajuće konfiguracijske datoteke) mogu se lako kopirati na fizički izolovane hostove duž sa cctl, nodeadm i etcdadm. (Pogledajte detalje u Wiki).

4 – Kada sve bude na svom mestu, možete kreirati prvi Kubernetes klaster sa nekoliko naredbi:

– Prvo kreirajte vjerodajnice za klaster.

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

– Zatim kreirajte objekt klastera. –help prikazuje listu podržanih opcija.

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

– Konačno, kreirajte prvu mašinu u klasteru.

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

Više dokumentacije pročitajte na GitHub.

izvor: www.habr.com

Dodajte komentar