KlusterKit: sada nástrojů s otevřeným zdrojovým kódem pro zjednodušení nasazování Kubernetes a práce ve fyzicky izolovaných místních prostředích

Dnes s radostí oznamujeme, že Platform9 otevírá zdrojové kódy Klusterkit, souboru tří nástrojů, na licenci Apache v2.0 na GitHubu.
Naši klienti nasazují software v soukromých datových centrech, která často nejsou připojena k internetu (z důvodu bezpečnosti nebo z jiných příčin). Tyto velké společnosti chtějí využívat výhod Kubernetes a modernizovat své aplikace, zatímco je nasazují v různých datových centrech, která často nemají spojení se světem. A zde přichází Klusterkit na pomoc, což zjednodušuje dodání a správu clustery K8s ve fyzicky izolovaných prostředích.
Klusterkit zahrnuje tři nezávislé nástroje, které lze používat společně nebo samostatně pro správu životního cyklu produkčního clusteru Kubernetes:
- , CLI pro zjednodušenou správu clusteru etcd.
- , CLI pro administraci uzlů, který doplňuje kubeadm a nasazuje závislosti potřebné kubeadm.
- , nástroj pro správu životního cyklu clusteru, který přijímá Cluster API ze komunity Kubernetes a používá nodeadm a etcdadm k bezproblémovému dodání a udržování vysoce dostupných clusterů Kubernetes v místních i fyzicky izolovaných prostředích.
Tyto tři nástroje společně vykonávají následující úkoly:
- Jednoduché dodání a správa vysoce dostupného clusteru etcd a řídicího panelu Kubernetes ve fyzicky izolovaných místních prostředích prostřednictvím Cluster API.
- Obnovení řídicího panelu clusteru po selhání pomocí zálohy etcd.
- Balení všech artefaktů potřebných pro dodání Kubernetes ve fyzicky izolovaných prostředích.
Možnosti Klusterkit
- Podpora více masterů (HA-cluster K8s).
- Dodání zabezpečených clusterů etcd a správa jich.
- Práce ve fyzicky izolovaných prostředích.
- Podpora postupného aktualizace a zpětného přechodu.
- Flannel (vxlan) jako CNI pro backend; plánována podpora dalších CNI.
- Zálohování a obnova clusterů etcd po ztrátě kvóra.
- Ochrana řídicího panelu proti nedostatku paměti a CPU.
Architektura řešení Klusterkit
Pro odolnost a jednoduchost Klusterkit používá jeden soubor cctl-state.yaml pro uchovávání metadat Kubernetes clusteru. Pomocí rozhraní cctl CLI lze spravovat životní cyklus Kubernetes clusteru na jakémkoliv stroji, kde je tento soubor stavu. Může to být notebook operátora nebo jakýkoliv jiný počítač, který je součástí Kubernetes clusteru.
Cctl implementuje a volá z upstream rozhraní cluster-api jako knihovnu CRUD operací na clusterech. Používá , poskytovatele cluster-api s otevřeným zdrojovým kódem na „holém železe“ od Platform9, který na oplátku volá etcdadm a nodeadm pro provádění operací v clusteru.
Jak používat Klusterkit a jeho komponenty:
1 – Jakýkoliv z těchto tří nástrojů lze jednoduše poskládat příkazem go get:
go get -u github.com/platform9/cctl
go get -u github.com/platform9/nodeadm
go get -u github.com/kubernetes-sigs/etcdadm2 – Poté lze tyto spustitelné soubory zabalit a zkopírovat na cílové stroje, kde by měl fungovat vysoce dostupný Kubernetes cluster. Umístěte soubory nodeadm a etcdadm do verzovaných adresářů:
cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//
cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//3 – Pokud je potřeba orchestraci Kubernetes clusteru lokálně, ve fyzicky izolovaném prostředí, potřebné závislosti lze snadno stáhnout předem na počítači s přístupem k internetu pomocí příkazů nodeadm a etcdadm. Poté lze stažené komponenty (tj. kubelet a unit soubor kubelet pro systemd, spustitelné soubory CNI, kubeadm soubor, všechny kontejnery, včetně Kubernetes, obraz keepalived a systemd soubor, obraz kontejneru etcd a patřičné konfigurační soubory) snadno zkopírovat na fyzicky izolované hosty spolu s cctl, nodeadm a etcdadm. (Podrobnosti viz ).
4 – Jakmile je vše na svém místě, můžete vytvořit první Kubernetes cluster dvěma příkazy:
– Nejprve vytvořte přihlašovací údaje pro cluster.
$GOPATH/bin/cctl create credential --user root --private-key ~//.ssh/id_rsa– Poté vytvořte objekt clusteru. –help vyvolá seznam podporovaných parametrů.
$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24– Nakonec vytvořte první stroj v clusteru.
$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role masterVíce dokumentace si přečtěte na .
Zdroj: habr.com
