KlusterKit: une boßte à outils open source pour simplifier les déploiements de Kubernetes et travailler dans des environnements locaux physiquement isolés.

Aujourd'hui, nous sommes heureux d'annoncer que Platform9 ouvre le code source de Klusterkit, un kit Ă trois outils, sous la licence Apache v2.0 sur GitHub.
Nos clients déploient des logiciels dans des centres de données privés, qui ne sont souvent pas connectés à Internet (pour des raisons de sécurité ou pour d'autres raisons). Ces grandes entreprises souhaitent tirer parti de Kubernetes et moderniser leurs applications tout en les déployant dans différents centres de données, qui n'ont souvent aucun lien avec le monde extérieur. Et ici, Klusterkit vient à la rescousse, ce qui simplifie la livraison et la gestion des clusters K8 dans des environnements physiquement isolés.
Klusterkit comprend trois outils indĂ©pendants qui peuvent ĂȘtre utilisĂ©s ensemble ou sĂ©parĂ©ment pour gĂ©rer le cycle de vie du cluster de production Kubernetes:
- etcdadm , CLI pour une gestion simplifiée des clusters etcd.
- nodeadm , une CLI d'administration de noeud qui complÚte kubeadm et déploie les dépendances nécessaires à kubeadm.
- cctl , un outil de gestion du cycle de vie du cluster qui accepte l'API de cluster de la communautĂ© Kubernetes et utilise nodeadm et etcdadm pour fournir et maintenir facilement des clusters Kubernetes hautement disponibles dans des environnements locaux et mĂȘme physiquement isolĂ©s.
Ensemble, ces trois outils effectuent les tĂąches suivantes:
- Expédiez et gérez facilement le cluster etcd haute disponibilité et le panneau de configuration Kubernetes dans des environnements locaux physiquement isolés via l'API de cluster.
- Restaurez le panneau de configuration du cluster aprÚs un échec à l'aide de la sauvegarde etcd.
- Conditionner tous les artefacts nécessaires pour livrer Kubernetes dans des environnements physiquement isolés.
Fonctionnalités de Klusterkit
- Prise en charge de plusieurs assistants (cluster K8s HA).
- Fourniture et gestion de clusters sécurisés etcd
- Travaillez dans des environnements physiquement isolés.
- Prise en charge de la mise à jour séquentielle et de la restauration.
- Flanelle (vxlan) en tant que CNI pour le backend; prévoit de soutenir d'autres CNI.
- Sauvegarde et restauration des clusters etcd aprĂšs avoir perdu un quorum.
- ProtÚge le panneau de commande contre la saturation de la mémoire et le temps processeur.
Architecture de la solution Klusterkit

Pour la tolérance aux pannes et la simplicité, Klusterkit utilise un seul fichier cctl-state.yaml pour stocker les métadonnées du cluster Kubernetes. Grùce à la CLI cctl, vous pouvez gérer le cycle de vie d'un cluster Kubernetes sur n'importe quelle machine possédant ce fichier d'état. Il peut s'agir de l'ordinateur portable d'un opérateur ou de tout autre ordinateur faisant partie d'un cluster Kubernetes.
Cctl implémente et appelle depuis l'interface amont cluster-api en tant que bibliothÚque d'opérations CRUD sur les clusters. Il utilise ssh-provider , un fournisseur d' api de cluster bare-metal open-source de Platform9, qui à son tour appelle etcdadm et nodeadm pour effectuer des opérations sur le cluster.
Comment utiliser Klusterkit et ses composants:
1 - Chacun des trois outils peut ĂȘtre facilement assemblĂ© avec la commande 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 - Ensuite, ces fichiers exĂ©cutables peuvent ĂȘtre empaquetĂ©s et copiĂ©s sur les machines cibles sur lesquelles le cluster Kubernetes hautement accessible doit s'exĂ©cuter. Placez les fichiers nodeadm et etcdadm dans les rĂ©pertoires de version:
cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm// cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//
3 - Si nĂ©cessaire, orchestrez le cluster Kubernetes localement, dans un environnement physiquement isolĂ©, les dĂ©pendances nĂ©cessaires peuvent ĂȘtre facilement tĂ©lĂ©chargĂ©es Ă l'avance sur l'ordinateur avec accĂšs Ă Internet Ă l'aide de la commande de tĂ©lĂ©chargement nodeadm et etcdadm. Les Ă©lĂ©ments tĂ©lĂ©chargĂ©s (c'est-Ă -dire kubelet et le fichier d'unitĂ© de kubelet pour systemd, fichier exĂ©cutable CNI, fichier kubeadm, toutes les images de conteneur, y compris Kubernetes, image keepalived et fichier systemd, image de conteneur etcd et fichiers de configuration correspondants) peuvent ĂȘtre facilement copiĂ©s dans hĂŽtes physiquement isolĂ©s avec cctl, nodeadm et etcdadm. (Voir le wiki pour plus de dĂ©tails).
4 - Lorsque tout est en place, vous pouvez créer le premier cluster Kubernetes avec quelques commandes:
- Créez d'abord les informations d'identification pour le cluster.
$GOPATH/bin/cctl create credential --user root --private-key ~/.ssh/id_rsa
- CrĂ©ez ensuite un objet cluster. âL'aide rĂ©pertorie les options prises en charge.
$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24
- Enfin, créez la premiÚre machine du cluster.
$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role master
Lisez plus de documentation sur GitHub .