KlusterKit

KlusterKit: En verktygslåda med öppen källkod för att förenkla Kubernetes-distributioner och köra i fysiskt isolerade lokala miljöer

KlusterKit

Idag är vi glada att kunna meddela att Platform9 öppnar Klusterkit, en svit med tre verktyg, under Apache v2.0-licensen på GitHub.

Våra kunder rullar ut mjukvara i privata datacenter som ofta inte är anslutna till Internet (av säkerhetsskäl eller andra skäl). Dessa stora företag vill dra nytta av Kubernetes och modernisera sina applikationer och samtidigt rulla ut dem i olika datacenter, som ofta inte är kopplade till omvärlden. Det är här Klusterkit kommer in, vilket gör det enkelt att tillhandahålla och hantera K8s-kluster i fysiskt isolerade miljöer.

Klusterkit innehåller tre oberoende verktyg som kan användas tillsammans eller separat för att hantera livscykeln för ett Kubernetes-produktionskluster:

  1. etcdadm, CLI för förenklad etcd-klusterhantering.
  2. nodeadm, en CLI för nodadministration som utökar kubeadm och distribuerar de beroenden som behövs av kubeadm.
  3. cctl, ett klusterlivscykelhanteringsverktyg som använder Cluster API från Kubernetes-gemenskapen och använder nodeadm och etcdadm för att sömlöst leverera och underhålla högt tillgängliga Kubernetes-kluster i lokala och till och med fysiskt isolerade miljöer.

Tillsammans utför dessa tre verktyg följande uppgifter:

  • Leverera och hantera enkelt ett högtillgängligt etcd-kluster och Kubernetes-instrumentpanel i fysiskt isolerade lokala miljöer via Cluster API.
  • Återställer klustrets kontrollpanel efter ett fel med hjälp av etcd backup.
  • Packa alla artefakter som behövs för att leverera Kubernetes till fysiskt isolerade miljöer.

Klusterkit funktioner

  • Stöd för flera master (HA-kluster K8s).
  • Leverans och hantering av säkra etcd-kluster.
  • Arbeta i fysiskt isolerade miljöer.
  • Stöder rullande uppgraderingar och återställningar.
  • Flannel (vxlan) som CNI för backend; Det finns planer på att stödja andra CNI.
  • Säkerhetskopiering och återställning av etcd-kluster efter förlust av kvorum.
  • Skyddar kontrollpanelen från att ta slut på minne och CPU-tid.

Klusterkit Solution Architecture

KlusterKit

För feltolerans och enkelhet använder Klusterkit en enda cctl-state.yaml-fil för att lagra Kubernetes-klustermetadata. Genom cctl CLI kan du hantera livscykeln för ett Kubernetes-kluster på vilken maskin som helst som har denna tillståndsfil. Detta kan vara en operatörs bärbara dator eller någon annan dator som ingår i Kubernetes-klustret.

Cctl implementerar och anropar kluster-api-gränssnittet från uppströms som ett bibliotek för CRUD-operationer på kluster. Han använder ssh-leverantör, en öppen källkodsleverantör av kluster-api från Platform9, som i sin tur anropar etcdadm och nodeadm för att utföra operationer på klustret.

Så här använder du Klusterkit och dess komponenter:

1 – Vilket av de tre verktygen kan enkelt samlas in med kommandot 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 – Dessa körbara filer kan sedan paketeras och kopieras till måldatorerna där det mycket tillgängliga Kubernetes-klustret ska köras. Placera nodeadm- och etcdadm-filerna i versionskatalogerna:

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

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

3 – Om du behöver orkestrera ett Kubernetes-kluster lokalt, i en fysiskt isolerad miljö, kan nödvändiga beroenden enkelt laddas ner i förväg på en dator med Internetåtkomst med hjälp av nedladdningskommandot nodeadm och etcdadm. Sedan kan de nedladdade objekten (dvs kubelet och kubelet enhetsfil för systemd, CNI exekverbara filer, kubeadm-fil, alla behållarbilder inklusive Kubernetes, keepalive-bild och systemd-fil, etcd-behållarbild och motsvarande konfigurationsfiler) enkelt kopieras till fysiskt isolerade värdar tillsammans med cctl, nodeadm och etcdadm. (Se detaljer i wiki).

4 – När allt är på plats kan du skapa det första Kubernetes-klustret med ett par kommandon:

– Skapa först autentiseringsuppgifter för klustret.

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

– Skapa sedan ett klusterobjekt. –help tar upp en lista över alternativ som stöds.

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

– Slutligen, skapa den första maskinen i klustret.

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

Läs mer dokumentation på GitHub.

Källa: will.com

Lägg en kommentar