KlusterKit

KlusterKit: ein Open-Source-Toolkit zur Vereinfachung von Kubernetes-Deployments und Betrieb in physisch isolierten lokalen Umgebungen

KlusterKit

Heute freuen wir uns bekanntzugeben, dass Platform9 den Quellcode von Klusterkit, einem Set aus drei Werkzeugen, unter der Lizenz Apache v2.0 auf GitHub veröffentlicht.

Unsere Kunden fĂŒhren Software in privaten Rechenzentren aus, die hĂ€ufig nicht mit dem Internet verbunden sind (aus SicherheitsgrĂŒnden oder aus anderen GrĂŒnden). Diese großen Unternehmen möchten die Vorteile von Kubernetes nutzen und ihre Anwendungen modernisieren sowie sie in verschiedenen Rechenzentren bereitstellen, die oft keine Verbindung zur Außenwelt haben. Hier kommt Klusterkit ins Spiel, das die Bereitstellung und Verwaltung von K8s-Clustern in physisch isolierten Umgebungen vereinfacht.

Klusterkit umfasst drei unabhÀngige Werkzeuge, die zusammen oder einzeln verwendet werden können, um den Lebenszyklus eines Produktions-Kubernetes-Clusters zu verwalten:

  1. etcdadm, CLI zur vereinfachten Verwaltung des etcd-Clusters.
  2. nodeadm, CLI zur Verwaltung von Knoten, das kubeadm ergĂ€nzt und die fĂŒr kubeadm erforderlichen AbhĂ€ngigkeiten bereitstellt.
  3. cctl, ein Cluster-Lifecycle-Management-Tool, das die Cluster-API der Kubernetes-Community ĂŒbernimmt und nodeadm sowie etcdadm nutzt, um mĂŒhelos hochverfĂŒgbare Kubernetes-Cluster in lokalen und physisch isolierten Umgebungen bereitzustellen und zu warten.

Zusammen erfĂŒllen diese drei Werkzeuge die folgenden Aufgaben:

  • Einfache Bereitstellung und Verwaltung eines hochverfĂŒgbaren etcd-Clusters und des Kubernetes-Dashboards in physisch isolierten lokalen Umgebungen durch die Cluster-API.
  • Wiederherstellung des Cluster-Dashboards nach einem Ausfall mithilfe eines etcd-Backups.
  • Verpackung aller Artefakte, die fĂŒr die Bereitstellung von Kubernetes in physisch isolierten Umgebungen erforderlich sind.

Funktionen von Klusterkit

  • UnterstĂŒtzung mehrerer Master (HA-Cluster K8s).
  • Bereitstellung und Verwaltung von sicheren etcd-Clustern.
  • Betrieb in physisch isolierten Umgebungen.
  • UnterstĂŒtzung von sequenziellen Updates und Rollbacks.
  • Flannel (vxlan) als CNI fĂŒr das Backend; UnterstĂŒtzung weiterer CNIs ist geplant.
  • Wiederherstellung und Wiederherstellung von etcd-Clustern nach Verlust der QuorumfĂ€higkeit.
  • Schutz des Dashboards vor speicher- und CPU-Mangel.

Architektur der Klusterkit-Lösung

KlusterKit

FĂŒr ZuverlĂ€ssigkeit und Einfachheit verwendet Klusterkit eine Datei cctl-state.yaml zur Speicherung der Metadaten des Kubernetes-Clusters. Über die cctl CLI kann der Lebenszyklus des Kubernetes-Clusters auf jedem Computer verwaltet werden, auf dem sich diese Zustandsdatei befindet. Dies kann der Laptop des Betreibers oder ein anderer Computer sein, der Teil des Kubernetes-Clusters ist.

Cctl implementiert und ruft aus dem Upstream die Schnittstelle cluster-api als Bibliothek fĂŒr CRUD-Operationen auf Clustern auf. Es verwendet ssh-provider, einen Open-Source-Cluster-API-Anbieter auf „nackter Hardware“ von Platform9, der wiederum etcdadm und nodeadm zum AusfĂŒhren von Operationen im Cluster aufruft.

So verwenden Sie Klusterkit und seine Komponenten:

1 – Jedes der drei Werkzeuge kann einfach mit dem Befehl go get kompiliert werden:

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

go get -u github.com/kubernetes-sigs/etcdadm

2 – Anschließend können diese ausfĂŒhrbaren Dateien verpackt und auf die Zielmaschinen kopiert werden, auf denen der hochverfĂŒgbare Kubernetes-Cluster betrieben werden soll. Platzieren Sie die Dateien nodeadm und etcdadm in den Versionsverzeichnissen:

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

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

3 – Wenn es notwendig ist, den Kubernetes-Cluster lokal in einer physisch isolierten Umgebung zu orchestrieren, können die erforderlichen AbhĂ€ngigkeiten einfach im Voraus auf einem mit dem Internet verbundenen Computer mit dem Nodeadm- und Etcdadm-Download-Befehl heruntergeladen werden. Anschließend können die heruntergeladenen Elemente (d.h. kubelet und kubelet-Systemd-Einheitendatei, ausfĂŒhrbare CNI-Dateien, kubeadm-Datei, alle Container-Images, einschließlich Kubernetes, das keepalived-Image und die systemd-Datei, das etcd-Image und die entsprechenden Konfigurationsdateien) problemlos auf physisch isolierte Hosts kopiert werden, zusammen mit cctl, nodeadm und etcdadm. (Details siehe wiki).

4 – Wenn alles bereit ist, kann der erste Kubernetes-Cluster mit ein paar Befehlen erstellt werden:

– Zuerst erstellen Sie die Anmeldeinformationen fĂŒr den Cluster.

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

– Dann erstellen Sie das Clusterobjekt. –help gibt eine Liste der unterstĂŒtzten Parameter aus.

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

– Schließlich erstellen Sie die erste Maschine im Cluster.

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

Weitere Dokumentationen finden Sie auf GitHub.

Quelle: habr.com

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster