KlusterKit

KlusterKit: skup alata otvorenog koda za pojednostavljenje postavljanja Kubernetesa i rad u fizički izoliranim lokalnim okruženjima

KlusterKit

Danas s uzbuđenjem objavljujemo da je Platform9 otvoreni Klusterkit, paket od tri alata, pod licencom Apache v2.0 na GitHubu.

Naši klijenti postavljaju softver u privatne podatkovne centre koji često nisu povezani s internetom (iz sigurnosnih ili drugih razloga). Te velike tvrtke žele iskoristiti prednosti Kubernetesa i modernizirati svoje aplikacije te ih u isto vrijeme postaviti u različite podatkovne centre, koji često nisu povezani s vanjskim svijetom. Ovo je mjesto gdje Klusterkit stupa na scenu, olakšavajući pružanje i upravljanje K8s klasterima u fizički izoliranim okruženjima.

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

  1. itddadm, CLI za pojednostavljeno itdd upravljanje klasterom.
  2. nodeadm, CLI za administraciju čvora koji proširuje kubeadm i implementira ovisnosti potrebne kubeadmu.
  3. cctl, alat za upravljanje životnim ciklusom klastera koji usvaja Cluster API iz Kubernetes zajednice i koristi nodeadm i etcdadm za besprijekornu isporuku i održavanje visoko dostupnih Kubernetes klastera u lokalnim, pa čak i fizički izoliranim okruženjima.

Ova tri alata zajedno obavljaju sljedeće zadatke:

  • Jednostavno osigurajte i upravljajte visoko dostupnim etcd klasterom i Kubernetes nadzornom pločom u fizički izoliranim lokalnim okruženjima putem Cluster API-ja.
  • Vraćanje upravljačke ploče klastera nakon kvara pomoću etcd sigurnosne kopije.
  • Pakiranje svih artefakata potrebnih za isporuku Kubernetesa u fizički izolirana okruženja.

Značajke Klusterkita

  • Multi-master podrška (HA klaster K8s).
  • Isporuka i upravljanje sigurnim etcd klasterima.
  • Rad u fizički izoliranim okruženjima.
  • Podržava tekuće nadogradnje i vraćanja.
  • Flannel (vxlan) kao CNI za pozadinu; Postoje planovi za podršku drugim CNI-jevima.
  • Sigurnosno kopiranje i vraćanje etcd klastera nakon gubitka kvoruma.
  • Štiti upravljačku ploču od nedostatka memorije i CPU vremena.

Arhitektura rješenja Klusterkit

KlusterKit

Za toleranciju grešaka i jednostavnost, Klusterkit koristi jednu cctl-state.yaml datoteku za pohranu metapodataka Kubernetes klastera. Kroz cctl CLI možete upravljati životnim ciklusom Kubernetes klastera na bilo kojem računalu koje ima ovu datoteku stanja. To može biti prijenosno računalo operatera ili bilo koje drugo računalo koje je dio Kubernetes klastera.

Cctl implementira i poziva cluster-api sučelje odozgo kao knjižnicu za CRUD operacije na klasterima. On koristi ssh-pružatelj, open-source bare metal cluster-api provider iz Platform9, koji zauzvrat poziva etcdadm i nodeadm za izvođenje operacija 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 – Ove se izvršne datoteke zatim mogu pakirati i kopirati na ciljne strojeve na kojima bi trebao biti pokrenut visoko dostupan Kubernetes klaster. Postavite datoteke nodeadm i etcdadm u direktorije verzija:

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

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

3 – Ako trebate orkestrirati Kubernetes klaster lokalno, u fizički izoliranom okruženju, potrebne ovisnosti mogu se jednostavno unaprijed preuzeti na računalu s pristupom Internetu pomoću naredbi za preuzimanje nodeadm i etcdadm. Tada se preuzete stavke (tj. datoteka kubelet i jedinice kubelet za systemd, CNI izvršne datoteke, kubeadm datoteka, sve slike spremnika uključujući Kubernetes, keepalived slika i systemd datoteka, etcd slika spremnika i odgovarajuće konfiguracijske datoteke) mogu jednostavno kopirati na fizički izolirana domaćina s cctl, nodeadm i etcdadm. (Pogledajte detalje u wiki).

4 – Kada je sve na svom mjestu, možete stvoriti prvi Kubernetes klaster s nekoliko naredbi:

– Prvo kreirajte vjerodajnice za klaster.

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

– Zatim stvorite objekt klastera. –pomoć prikazuje popis 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 prvi stroj u klasteru.

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

Pročitajte više dokumentacije na GitHub.

Izvor: www.habr.com

Dodajte komentar