KlusterKit

KlusterKit: een open source-toolkit om Kubernetes-implementaties te vereenvoudigen en uit te voeren in fysiek geïsoleerde lokale omgevingen

KlusterKit

Vandaag zijn we verheugd om aan te kondigen dat Platform9 open sourcing Klusterkit is, een suite van drie tools, onder de Apache v2.0-licentie op GitHub.

Onze klanten rollen software uit in private datacenters die vaak niet met internet zijn verbonden (om veiligheids- of andere redenen). Deze grote bedrijven willen profiteren van Kubernetes en hun applicaties moderniseren en tegelijkertijd uitrollen in verschillende datacenters, die vaak niet verbonden zijn met de buitenwereld. Dit is waar Klusterkit in beeld komt, waardoor het eenvoudig wordt om K8s-clusters in fysiek geïsoleerde omgevingen in te richten en te beheren.

Klusterkit bevat drie onafhankelijke tools die samen of afzonderlijk kunnen worden gebruikt om de levenscyclus van een Kubernetes-productiecluster te beheren:

  1. enz. papa, CLI voor vereenvoudigd etcd-clusterbeheer.
  2. nodeadm, een CLI voor knooppuntbeheer die kubeadm uitbreidt en de afhankelijkheden implementeert die nodig zijn voor kubeadm.
  3. CCTL, een tool voor clusterlevenscyclusbeheer die de Cluster API van de Kubernetes-gemeenschap overneemt en nodeadm en etcdadm gebruikt om naadloos hoogbeschikbare Kubernetes-clusters te leveren en te onderhouden in on-premises en zelfs fysiek geïsoleerde omgevingen.

Samen voeren deze drie tools de volgende taken uit:

  • Eenvoudig een maximaal beschikbaar etcd-cluster en Kubernetes-dashboard inrichten en beheren in fysiek geïsoleerde on-premises omgevingen via de Cluster API.
  • Het clustercontrolepaneel herstellen na een storing met behulp van etcd backup.
  • Het verpakken van alle artefacten die nodig zijn om Kubernetes in fysiek geïsoleerde omgevingen te leveren.

Klusterkit-functies

  • Ondersteuning voor meerdere masters (HA-cluster K8s).
  • Levering en beheer van veilige etcd-clusters.
  • Werken in fysiek geïsoleerde omgevingen.
  • Ondersteunt rolling upgrades en rollbacks.
  • Flanel (vxlan) als CNI voor de backend; Er zijn plannen om andere CNI's te ondersteunen.
  • Back-up en herstel van etcd-clusters na verlies van quorum.
  • Beschermt het bedieningspaneel tegen onvoldoende geheugen en CPU-tijd.

Klusterkit-oplossingsarchitectuur

KlusterKit

Voor fouttolerantie en eenvoud gebruikt Klusterkit één enkel cctl-state.yaml-bestand om Kubernetes-clustermetagegevens op te slaan. Via de cctl CLI kunt u de levenscyclus van een Kubernetes-cluster beheren op elke machine die dit statusbestand heeft. Dit kan de laptop van een operator zijn of een andere computer die deel uitmaakt van het Kubernetes-cluster.

Cctl implementeert en roept de cluster-api-interface upstream aan als een bibliotheek voor CRUD-bewerkingen op clusters. Hij gebruikt ssh-provider, een open-source bare metal cluster-api-provider van Platform9, die op zijn beurt etcdadm en nodeadm aanroept om bewerkingen op het cluster uit te voeren.

Hoe Klusterkit en zijn componenten te gebruiken:

1 – Elk van de drie tools kan eenvoudig worden verzameld met de opdracht 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 – Deze uitvoerbare bestanden kunnen vervolgens worden verpakt en gekopieerd naar de doelmachines waarop het zeer beschikbare Kubernetes-cluster zou moeten draaien. Plaats de nodeadm- en etcdadm-bestanden in de versiemappen:

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

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

3 – Als u een Kubernetes-cluster lokaal moet orkestreren, in een fysiek geïsoleerde omgeving, kunnen de benodigde afhankelijkheden eenvoudig vooraf worden gedownload op een computer met internettoegang met behulp van de nodeadm- en etcdadm-downloadopdrachten. Vervolgens kunnen de gedownloade items (d.w.z. kubelet en kubelet unit-bestand voor systemd, CNI uitvoerbare bestanden, kubeadm-bestand, alle containerimages inclusief Kubernetes, keepalived image en systemd-bestand, etcd containerimage en bijbehorende configuratiebestanden) eenvoudig worden gekopieerd naar fysiek geïsoleerde hosts met cctl, nodeadm en etcdadm. (Zie details in wiki).

4 – Zodra alles op zijn plaats staat, kun je met een paar opdrachten het eerste Kubernetes-cluster maken:

– Maak eerst referenties voor het cluster.

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

– Maak vervolgens een clusterobject. –help geeft een lijst met ondersteunde opties weer.

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

– Maak ten slotte de eerste machine in het cluster.

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

Lees meer documentatie op GitHub.

Bron: www.habr.com

Voeg een reactie