KlusterKit

KlusterKit: súbor nástrojov s otvoreným zdrojovým kódom na zjednodušenie nasadenia Kubernetes a prevádzky vo fyzicky izolovaných lokálnych prostrediach

KlusterKit

Dnes s radosťou oznamujeme, že Platform9 sprístupňuje zdrojové kódy Klusterkit, súbor zožené troch nástrojov, pod licenciou Apache v2.0 na GitHub.

Naši klienti nasadzujú softvér v súkromných dátových centrách, ktoré sú často odpojenné od internetu (z dôvodov zabezpečenia alebo iných dôvodov). Tieto veľké spoločnosti chcú využiť výhody Kubernetes a modernizovať svoje aplikácie, pričom ich nasadzujú v rôznych dátových centrách, ktoré nemusia mať prístup do vonkajšieho sveta. A tu prichádza Klusterkit, ktorý zjednodušuje dodávku a správu klastrov K8s vo fyzicky izolovaných prostrediach.

Klusterkit obsahuje tri nezávislé nástroje, ktoré je možné používať spoločne alebo samostatne na správu životného cyklu produkčného klasteru Kubernetes:

  1. etcdadm, CLI pre zjednodušené riadenie klastra etcd.
  2. nodeadm, CLI na administráciu uzlov, ktorý dopĺňa kubeadm a nasadzuje závislosti potrebné kubeadm.
  3. cctl, nástroj na správu životného cyklu klasteru, ktorý prijíma Cluster API zo spoločenstva Kubernetes a využíva nodeadm a etcdadm na bezproblémovú dodávku a údržbu vysoko dostupných klastrov Kubernetes vo lokálnych a fyzicky izolovaných prostrediach.

Spoločne tieto tri nástroje vykonávajú nasledujúce úlohy:

  • Jednoduchá dodávka a správa vysoko dostupného klasteru etcd a ovládacieho panela Kubernetes vo fyzicky izolovaných lokálnych prostrediach prostredníctvom Cluster API.
  • Obnova ovládacieho panela klasteru po poruche pomocou zálohy etcd.
  • Balenie všetkých artefaktov potrebných na dodávku Kubernetes vo fyzicky izolovaných prostrediach.

Možnosti Klusterkit

  • Podpora viacerých hlavných uzlov (HA-klaster K8s).
  • Dodávka chránených klastrov etcd a ich správa.
  • Práca vo fyzicky izolovaných prostrediach.
  • Podpora sekvenčného aktualizovania a rollbacku.
  • Flannel (vxlan) ako CNI pre backend; plánovaná podpora ďalších CNI.
  • Zálohovanie a obnova klastrov etcd po strate kvorumu.
  • Ochrana ovládacieho panela pred nedostatkom pamäte a CPU.

Architektúra riešenia Klusterkit

KlusterKit

Na zabezpečenie odolnosti a jednoduchosti používa Klusterkit jeden súbor cctl-state.yaml na uchovávanie metadát klastrov Kubernetes. Pomocou cctl CLI môžete spravovať životný cyklus klastru Kubernetes na akomkoľvek počítači, kde sa nachádza tento súbor stavu. Môže to byť notebook operátora alebo akýkoľvek iný počítač, ktorý patrí do klastru Kubernetes.

Cctl implementuje a volá z upstream rozhranie cluster-api ako knižnicu operácií CRUD na klastroch. Používa ssh-provider, dodávaného cluster-api s otvoreným zdrojovým kódom na „holom železe“ od Platform9, ktorý zase volá etcdadm a nodeadm na vykonávanie operácií v klastri.

Ako používať Klusterkit a jeho komponenty:

1 – Akýkoľvek z troch nástrojov je možné jednoducho zostaviť pomocou príkazu 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 – Tieto spustiteľné súbory môžete potom zabaliť a skopírovať na cieľové stroje, kde by mal fungovať vysoko dostupný klaster Kubernetes. Umiestnite súbory nodeadm a etcdadm do verzionovaných adresárov:

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

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

3 – Ak je potrebné orchestruovať klaster Kubernetes lokálne, v fyzicky izolovanom prostredí, potrebné závislosti je možné ľahko stiahnuť vopred na počítači s prístupom na internet príkazom na stiahnutie nodeadm a etcdadm. Následne je možné stiahnuté prvky (t. j. kubelet a jednotkový súbor kubelet pre systemd, spustiteľné súbory CNI, súbor kubeadm, všetky kontajnerové obrázky, vrátane Kubernetes, obrázok keepalived a súbor systemd, obrázok kontajnera etcd a príslušné konfiguračné súbory) ľahko skopírovať na fyzicky izolované hostiteľské systémy spolu s cctl, nodeadm a etcdadm. (Podrobnosti nájdete v wiki).

4 – Keď je všetko na mieste, môžete vytvoriť prvý klaster Kubernetes pomocou pár príkazov:

– Najprv vytvorte poverenia pre klaster.

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

– Potom vytvorte objekt klastru. –help vyvoláva zoznam podporovaných parametrov.

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

– Nakoniec vytvorte prvý stroj v klastri.

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

Viac dokumentácie nájdete na GitHub.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster