KlusterKit

KlusterKit : une boîte à outils open source pour simplifier les déploiements Kubernetes et s'exécuter dans des environnements sur site physiquement isolés

KlusterKit

Aujourd'hui, nous sommes ravis d'annoncer que Platform9 est un Klusterkit open source, une suite de 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 autres). Ces grandes entreprises souhaitent profiter de Kubernetes et moderniser leurs applications tout en les déployant dans différents datacenters, souvent non connectés au monde extérieur. C'est là qu'intervient Klusterkit, facilitant le provisionnement 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 d'un cluster de production Kubernetes :

  1. etcdadm, CLI pour une gestion simplifiée du cluster etcd.
  2. nœudadm, une CLI pour l'administration des nœuds qui étend kubeadm et déploie les dépendances nécessaires à kubeadm.
  3. cctl, un outil de gestion du cycle de vie des clusters qui adopte l'API Cluster de la communauté Kubernetes et utilise nodeadm et etcdadm pour fournir et maintenir de manière transparente des clusters Kubernetes hautement disponibles dans des environnements sur site et même physiquement isolés.

Ensemble, ces trois outils effectuent les tâches suivantes :

  • Provisionnez et gérez facilement un cluster etcd hautement disponible et un tableau de bord Kubernetes dans des environnements sur site physiquement isolés via l'API Cluster.
  • Restauration du panneau de configuration du cluster après une panne à l'aide de la sauvegarde etcd.
  • Empaquetez tous les artefacts nécessaires pour fournir Kubernetes dans des environnements physiquement isolés.

Fonctionnalités du Klusterkit

  • Prise en charge multi-maître (cluster HA K8).
  • Livraison et gestion de clusters etcd sécurisés.
  • Travailler dans des environnements physiquement isolés.
  • Prend en charge les mises à niveau et les restaurations progressives.
  • Flannel (vxlan) comme CNI pour le backend ; Il est prévu de soutenir d'autres CNI.
  • Sauvegarde et restauration des clusters etcd après perte de quorum.
  • Protège le panneau de commande contre le manque de mémoire et de temps CPU.

Architecture des solutions Klusterkit

KlusterKit

Pour des raisons de tolérance aux pannes et de 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 disposant de ce fichier d'état. Il peut s'agir de l'ordinateur portable d'un opérateur ou de tout autre ordinateur faisant partie du cluster Kubernetes.

Cctl implémente et appelle l'interface cluster-api depuis l'amont en tant que bibliothèque pour les opérations CRUD sur les clusters. Il utilise fournisseur ssh, un fournisseur d'API de cluster bare metal open source de Platform9, qui appelle à son tour etcdadm et nodeadm pour effectuer des opérations sur le cluster.

Comment utiliser Klusterkit et ses composants :

1 – N’importe lequel des trois outils peut être facilement collecté 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 – Ces exécutables peuvent ensuite être empaquetés et copiés sur les machines cibles sur lesquelles le cluster Kubernetes hautement disponible doit être exécuté. 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 vous avez besoin d'orchestrer un cluster Kubernetes localement, dans un environnement physiquement isolé, les dépendances nécessaires peuvent être facilement téléchargées au préalable sur un ordinateur ayant accès à Internet à l'aide de la commande nodeadm et etcdadm download. Ensuite, les éléments téléchargés (c'est-à-dire le fichier kubelet et l'unité kubelet pour systemd, les fichiers exécutables CNI, le fichier kubeadm, toutes les images de conteneur, y compris Kubernetes, l'image keepalived et le fichier systemd, l'image du conteneur etcd et les fichiers de configuration correspondants) peuvent être facilement copiés sur des hôtes physiquement isolés. avec cctl, nodeadm et etcdadm. (Voir détails dans wiki).

4 – Une fois que 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. –help affiche une liste des 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

Lire plus de documentation sur GitHub.

Source: habr.com

Ajouter un commentaire