KlusterKit

KlusterKit: un insieme di strumenti open source per semplificare i deploy di Kubernetes e il lavoro in ambienti locali fisicamente isolati

KlusterKit

Oggi con piacere annunciamo che Platform9 ha aperto il codice sorgente di Klusterkit, un insieme di tre strumenti, sotto 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 per altre ragioni). Queste grandi aziende vogliono sfruttare i vantaggi di Kubernetes e modernizzare le loro applicazioni, distribuendole in diversi data center, che spesso non hanno connessione con il mondo esterno. Qui entra in gioco Klusterkit, che semplifica la fornitura e la gestione dei cluster K8s in ambienti fisicamente isolati.

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

  1. etcdadm, CLI per la gestione semplificata del cluster etcd.
  2. nodeadm, CLI per l'amministrazione dei nodi, che integra kubeadm e distribuisce le dipendenze necessarie a kubeadm.
  3. cctl, uno strumento per la gestione del ciclo di vita del cluster, che adotta il Cluster API della comunità Kubernetes e utilizza nodeadm e etcdadm per fornire e mantenere cluster Kubernetes ad alta disponibilità senza problemi negli ambienti locali, compresi quelli fisicamente isolati.

Insieme, questi tre strumenti svolgono le seguenti funzioni:

  • Fornitura semplice e gestione di un cluster etcd ad alta disponibilità e della console di gestione Kubernetes in ambienti locali fisicamente isolati tramite Cluster API.
  • Ripristino della console del cluster dopo un guasto utilizzando un backup di etcd.
  • Pacchettizzazione di tutti gli artefatti necessari per la distribuzione di Kubernetes in ambienti fisicamente isolati.

Funzionalità di Klusterkit

  • Supporto per più master (cluster K8s HA).
  • Fornitura e gestione di cluster etcd sicuri.
  • Funzionamento in ambienti fisicamente isolati.
  • Supporto per aggiornamenti e rollback sequenziali.
  • Flannel (vxlan) come CNI per il backend; è prevista l'integrazione di altri CNI.
  • Backup e ripristino dei cluster etcd dopo la perdita di quorum.
  • Protezione della console di gestione contro la mancanza di memoria e CPU.

Architettura della soluzione Klusterkit

KlusterKit

Per garantire resilienza e facilità d'uso, Klusterkit utilizza un unico file cctl-state.yaml per memorizzare i metadati del cluster Kubernetes. Attraverso la CLI cctl è possibile gestire il ciclo di vita del cluster Kubernetes su qualsiasi macchina in cui sia presente questo file di stato. Può essere il laptop di un operatore o qualsiasi altro computer che faccia parte del cluster Kubernetes.

Cctl implementa e chiama l'interfaccia cluster-api da upstream come libreria di operazioni CRUD sui cluster. Utilizza ssh-provider, un fornitore cluster-api open source su 'bare metal' fornito da Platform9, che a sua volta chiama etcdadm e nodeadm per eseguire operazioni sul cluster.

Come utilizzare Klusterkit e i suoi componenti:

1 – Uno dei tre strumenti può essere facilmente installato 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 – Successivamente, questi file eseguibili possono essere impacchettati e copiati sulle macchine target, dove dovrebbe funzionare il cluster Kubernetes ad alta disponibilità. Colloca i file nodeadm e etcdadm nelle cartelle di versioni:

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

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

3 – Se necessario orchestrare il cluster Kubernetes localmente, in un ambiente fisicamente isolato, le dipendenze richieste possono essere facilmente scaricate in anticipo su un computer con accesso a Internet utilizzando i comandi di download di nodeadm e etcdadm. Poi, gli elementi scaricati (ossia kubelet e unit file di kubelet per systemd, file eseguibili CNI, file kubeadm, tutte le immagini dei container, compresa Kubernetes, immagine keepalived e file systemd, immagine del container etcd e i relativi file di configurazione) possono essere facilmente copiati su host fisicamente isolati insieme a cctl, nodeadm e etcdadm. (Ulteriori dettagli sono disponibili in wiki).

4 – Quando tutto è al suo posto, il primo cluster Kubernetes può essere creato con un paio di comandi:

– Prima crea le credenziali per il cluster.

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

– Poi crea l'oggetto cluster. –help restituisce un elenco dei parametri supportati.

$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

Per ulteriori informazioni, consulta la documentazione su GitHub.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster