KlusterKit

KlusterKit: un toolkit open source per semplificare le distribuzioni di Kubernetes ed eseguirlo in ambienti locali fisicamente isolati

KlusterKit

Oggi siamo lieti di annunciare che Platform9 rende open source Klusterkit, una suite di tre strumenti, sotto la licenza Apache v2.0 su GitHub.

I nostri clienti implementano software in data center privati ​​che spesso non sono connessi a Internet (per motivi di sicurezza o altri). Queste grandi aziende vogliono trarre vantaggio da Kubernetes e modernizzare le loro applicazioni e allo stesso tempo distribuirle in diversi data center, che spesso non sono collegati al mondo esterno. È qui che entra in gioco Klusterkit, semplificando il provisioning e la gestione dei cluster K8 in ambienti fisicamente isolati.

Klusterkit include tre strumenti indipendenti che possono essere utilizzati insieme o separatamente per gestire il ciclo di vita di un cluster di produzione Kubernetes:

  1. ecc, CLI per la gestione semplificata dei cluster etcd.
  2. nodoadm, una CLI per l'amministrazione dei nodi che estende kubeadm e distribuisce le dipendenze necessarie a kubeadm.
  3. ccTL, uno strumento di gestione del ciclo di vita dei cluster che adotta l'API Cluster della community Kubernetes e utilizza nodeadm ed etcdadm per fornire e mantenere senza problemi cluster Kubernetes ad alta disponibilità in ambienti on-premise e anche fisicamente isolati.

Insieme, questi tre strumenti svolgono le seguenti attività:

  • Effettua il provisioning e gestisci facilmente un cluster etcd a disponibilità elevata e un dashboard Kubernetes in ambienti on-premise fisicamente isolati tramite l'API Cluster.
  • Ripristino del pannello di controllo del cluster dopo un errore utilizzando il backup etcd.
  • Packaging di tutti gli artefatti necessari per distribuire Kubernetes in ambienti fisicamente isolati.

Caratteristiche di Klusterkit

  • Supporto multi-master (cluster HA K8).
  • Fornitura e gestione di cluster ETC sicuri.
  • Lavorare in ambienti fisicamente isolati.
  • Supporta aggiornamenti e rollback in sequenza.
  • Flanella (vxlan) come CNI per il backend; Ci sono piani per sostenere altri CNI.
  • Backup e ripristino dei cluster etcd dopo la perdita del quorum.
  • Protegge la centrale dall'esaurimento della memoria e del tempo della CPU.

Architettura della soluzione Klusterkit

KlusterKit

Per tolleranza agli errori e semplicità, Klusterkit utilizza un singolo file cctl-state.yaml per archiviare i metadati del cluster Kubernetes. Attraverso la CLI cctl puoi gestire il ciclo di vita di un cluster Kubernetes su qualsiasi macchina che abbia questo file di stato. Può trattarsi del laptop di un operatore o di qualsiasi altro computer che fa parte del cluster Kubernetes.

Cctl implementa e chiama l'interfaccia cluster-api dall'upstream come libreria per le operazioni CRUD sui cluster. Lui usa provider ssh, un provider API cluster bare metal open source di Platform9, che a sua volta chiama etcdadm e nodeadm per eseguire operazioni sul cluster.

Come utilizzare Klusterkit e i suoi componenti:

1 – Uno qualsiasi dei tre strumenti può essere facilmente raccolto con il comando 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 – Questi eseguibili possono quindi essere compressi e copiati sulle macchine di destinazione su cui dovrebbe essere in esecuzione il cluster Kubernetes ad alta disponibilità. Inserisci i file nodeadm e etcdadm nelle directory della versione:

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

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

3 – Se è necessario orchestrare un cluster Kubernetes localmente, in un ambiente fisicamente isolato, le dipendenze necessarie possono essere facilmente scaricate preventivamente su un computer con accesso a Internet utilizzando il comando nodeadm e etcdadm download. Quindi gli elementi scaricati (ad esempio kubelet e file di unità kubelet per systemd, file eseguibili CNI, file kubeadm, tutte le immagini del contenitore incluso Kubernetes, immagine keepalived e file systemd, immagine del contenitore etcd e file di configurazione corrispondenti) possono essere facilmente copiati su host fisicamente isolati insieme con cctl, nodeadm e etcdadm. (Vedi dettagli in wiki).

4 – Una volta che tutto è a posto, puoi creare il primo cluster Kubernetes con un paio di comandi:

– Creare innanzitutto le credenziali per il cluster.

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

– Quindi crea un oggetto cluster. –help visualizza un elenco di opzioni supportate.

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

– Infine, crea la prima macchina nel cluster.

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

Leggi altra documentazione su GitHub.

Fonte: habr.com

Aggiungi un commento