KlusterKit

KlusterKit : un ensemble d'outils open source pour simplifier le déploiement de Kubernetes et le fonctionnement dans des environnements locaux physiquement isolés

KlusterKit

Aujourd'hui, nous sommes heureux d'annoncer que Platform9 ouvre le code source de Klusterkit, un ensemble 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 sont souvent non connectés à Internet (pour des raisons de sécurité ou 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 pas de connexion au monde extérieur. C'est là que Klusterkit intervient, simplifiant le déploiement et la gestion des clusters K8s 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 Kubernetes en production :

  1. etcdadm, un CLI pour la gestion simplifiée du cluster etcd.
  2. nodeadm, un CLI pour l'administration des nƓuds, qui complĂšte kubeadm et dĂ©ploie les dĂ©pendances nĂ©cessaires Ă  kubeadm.
  3. cctl, un outil de gestion du cycle de vie du cluster, qui utilise l'API Cluster de la communauté Kubernetes et combine nodeadm et etcdadm pour déployer et maintenir sans souci des clusters Kubernetes hautement disponibles dans des environnements locaux et physiquement isolés.

Ensemble, ces trois outils accomplissent les tĂąches suivantes :

  • DĂ©ploiement et gestion simples d'un cluster etcd hautement disponible et de l'interface de gestion Kubernetes dans des environnements locaux physiquement isolĂ©s via l'API Cluster.
  • RĂ©cupĂ©ration de l'interface de gestion du cluster aprĂšs une panne en utilisant une sauvegarde etcd.
  • Conditionnement de tous les artefacts nĂ©cessaires au dĂ©ploiement de Kubernetes dans des environnements physiquement isolĂ©s.

Fonctionnalités de Klusterkit

  • Support de plusieurs maĂźtres (cluster K8s HA).
  • DĂ©ploiement et gestion de clusters etcd sĂ©curisĂ©s.
  • Fonctionnement dans des environnements physiquement isolĂ©s.
  • Support pour les mises Ă  jour et les retours en arriĂšre sĂ©quentiels.
  • Flannel (vxlan) comme CNI pour le backend ; soutien prĂ©vu pour d'autres CNI.
  • Sauvegarde et rĂ©cupĂ©ration des clusters etcd aprĂšs une perte de quorum.
  • Protection de l’interface de gestion contre le manque de mĂ©moire et les temps de CPU Ă©levĂ©s.

Architecture de la solution Klusterkit

KlusterKit

Pour assurer la résilience et la simplicité, Klusterkit utilise un seul fichier cctl-state.yaml pour stocker les métadonnées du cluster Kubernetes. Via le CLI cctl, on peut gérer le cycle de vie du cluster Kubernetes sur toute machine disposant de ce fichier d'état. Il peut s'agir d'un ordinateur portable d'opérateur ou de tout autre ordinateur faisant partie du cluster Kubernetes.

Cctl implémente et appelle depuis upstream l'interface cluster-api comme une bibliothÚque d'opérations CRUD sur des clusters. Il utilise ssh-provider, un fournisseur cluster-api open source sur du « matériel nu » de Platform9, qui à son tour appelle etcdadm et nodeadm pour exécuter des opérations sur le cluster.

Comment utiliser Klusterkit et ses composants :

1 – Chacun des trois outils peut ĂȘtre facilement rĂ©cupĂ©rĂ© 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 exĂ©cutables peuvent ĂȘtre emballĂ©s et copiĂ©s sur les machines cibles, oĂč le cluster Kubernetes Ă  haute disponibilitĂ© doit fonctionner. Placez les fichiers nodeadm et etcdadm dans les rĂ©pertoires de versions :

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

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

3 – Si vous devez orchestrer le cluster Kubernetes localement, dans un environnement physiquement isolĂ©, les dĂ©pendances nĂ©cessaires peuvent facilement ĂȘtre tĂ©lĂ©chargĂ©es Ă  l'avance sur un ordinateur avec connexion Internet Ă  l'aide de la commande de rĂ©cupĂ©ration de nodeadm et etcdadm. Les Ă©lĂ©ments tĂ©lĂ©chargĂ©s (c'est-Ă -dire kubelet et le fichier d'unitĂ© kubelet pour systemd, les exĂ©cutables CNI, le fichier kubeadm, toutes les images de conteneurs, y compris Kubernetes, l'image keepalived et le fichier systemd, l'image de conteneur etcd et les fichiers de configuration associĂ©s) peuvent ĂȘtre facilement copiĂ©s sur des hĂŽtes physiquement isolĂ©s avec cctl, nodeadm et etcdadm. (Pour plus de dĂ©tails, voir wiki).

4 – Lorsque tout est en place, vous pouvez crĂ©er le premier cluster Kubernetes avec quelques commandes :

– Tout d'abord, crĂ©ez les identifiants pour le cluster.

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

– Ensuite, crĂ©ez un objet cluster. –help appelle la liste des paramĂštres pris 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 dans le cluster.

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

Pour plus de documentation, consultez GitHub.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster