KlusterKit

KlusterKit: Open source sada nástrojov na zjednodušenie nasadenia Kubernetes a spustenie vo fyzicky izolovaných lokálnych prostrediach

KlusterKit

Dnes s radosťou oznamujeme, že Platform9 je open sourcing Klusterkit, balík troch nástrojov, pod licenciou Apache v2.0 na GitHub.

Naši klienti zavádzajú softvér v súkromných dátových centrách, ktoré často nie sú pripojené na internet (z bezpečnostných alebo iných dôvodov). Tieto veľké spoločnosti chcú využiť výhody Kubernetes a modernizovať svoje aplikácie a zároveň ich zaviesť v rôznych dátových centrách, ktoré často nie sú prepojené s okolitým svetom. Tu prichádza Klusterkit, ktorý uľahčuje poskytovanie a správu klastrov K8s vo fyzicky izolovaných prostrediach.

Klusterkit obsahuje tri nezávislé nástroje, ktoré možno použiť spoločne alebo samostatne na riadenie životného cyklu produkčného klastra Kubernetes:

  1. atďdadm, CLI pre zjednodušenú správu klastrov etcd.
  2. nodeadm, CLI pre správu uzlov, ktoré rozširuje kubeadm a nasadzuje závislosti potrebné pre kubeadm.
  3. cctl, nástroj na správu životného cyklu klastra, ktorý využíva Cluster API od komunity Kubernetes a využíva nodeadm a etcdadm na bezproblémové poskytovanie a údržbu vysoko dostupných klastrov Kubernetes v lokálnych a dokonca aj fyzicky izolovaných prostrediach.

Tieto tri nástroje spoločne vykonávajú nasledujúce úlohy:

  • Jednoducho zriaďujte a spravujte vysoko dostupný klaster etcd a dashboard Kubernetes vo fyzicky izolovaných lokálnych prostrediach prostredníctvom rozhrania Cluster API.
  • Obnovenie ovládacieho panela klastra po zlyhaní pomocou zálohy etcd.
  • Balenie všetkých artefaktov potrebných na doručenie Kubernetes do fyzicky izolovaných prostredí.

Vlastnosti Klusterkitu

  • Podpora viacerých masterov (HA klaster K8s).
  • Doručovanie a správa bezpečných klastrov etcd.
  • Práca vo fyzicky izolovanom prostredí.
  • Podporuje postupné upgrady a rollbacky.
  • Flannel (vxlan) ako CNI pre backend; Existujú plány na podporu iných CNI.
  • Zálohovanie a obnova klastrov etcd po strate kvóra.
  • Chráni ovládací panel pred nedostatkom pamäte a času CPU.

Architektúra riešenia Klusterkit

KlusterKit

Kvôli odolnosti voči chybám a jednoduchosti používa Klusterkit jeden súbor cctl-state.yaml na ukladanie metadát klastra Kubernetes. Prostredníctvom cctl CLI môžete spravovať životný cyklus klastra Kubernetes na akomkoľvek počítači, ktorý má tento stavový súbor. Môže to byť prenosný počítač operátora alebo akýkoľvek iný počítač, ktorý je súčasťou klastra Kubernetes.

Cctl implementuje a volá rozhranie cluster-api z upstreamu ako knižnicu pre operácie CRUD na klastroch. Používa ssh-poskytovateľ, open-source holý kovový poskytovateľ cluster-api od Platform9, ktorý na vykonanie operácií na klastri zase volá etcdadm a nodeadm.

Ako používať Klusterkit a jeho zložky:

1 – Ktorýkoľvek z troch nástrojov je možné ľahko zhromaždiť 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 je potom možné zabaliť a skopírovať do cieľových počítačov, na ktorých by mal bežať vysoko dostupný klaster Kubernetes. Umiestnite súbory nodeadm a etcdadm do adresárov verzie:

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

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

3 – Ak potrebujete organizovať klaster Kubernetes lokálne, vo fyzicky izolovanom prostredí, potrebné závislosti je možné jednoducho vopred stiahnuť do počítača s prístupom na internet pomocou príkazu na stiahnutie nodeadm a etcdadm. Potom je možné stiahnuté položky (t. j. súbor kubelet a kubelet unit pre systemd, spustiteľné súbory CNI, súbor kubeadm, všetky obrázky kontajnerov vrátane Kubernetes, súbor udržiavaných obrázkov a súbor systemd, obrázok kontajnera etcd a zodpovedajúce konfiguračné súbory) jednoducho skopírovať na fyzicky izolovaných hostiteľov. s cctl, nodeadm a etcdadm. (Podrobnosti nájdete v wiki).

4 – Keď je všetko na svojom mieste, môžete vytvoriť prvý klaster Kubernetes pomocou niekoľkých príkazov:

– Najprv vytvorte poverenia pre klaster.

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

– Potom vytvorte objekt klastra. –help zobrazí zoznam podporovaných možností.

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

– Nakoniec vytvorte prvý počítač v klastri.

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

Prečítajte si viac dokumentácie na GitHub.

Zdroj: hab.com

Pridať komentár