KlusterKit

KlusterKit: un insieme di strumenti open source per semplificare i deployment di Kubernetes e lavorare in ambienti locali fisicamente isolati

KlusterKit

Oggi siamo lieti di annunciare che Platform9 apre il codice sorgente di Klusterkit, un set di tre strumenti, con licenza Apache v2.0 su GitHub.

I nostri clienti distribuiscono software in data center privati, spesso non connessi a Internet (per motivi di sicurezza o per altre ragioni). Queste grandi aziende desiderano sfruttare i vantaggi di Kubernetes e modernizzare le proprie 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 gestire in modo semplificato il cluster etcd.
  2. nodeadm, CLI per l'amministrazione dei nodi, che integra kubeadm e implementa le dipendenze necessarie a kubeadm.
  3. cctl, uno strumento di gestione del ciclo di vita del cluster che adotta il Cluster API della comunità Kubernetes e utilizza nodeadm ed etcdadm per fornire e mantenere senza problemi cluster Kubernetes altamente disponibili in ambienti locali e fisicamente isolati.

Insieme, questi tre strumenti svolgono le seguenti funzioni:

  • Fornitura e gestione semplici di un cluster etcd altamente disponibile e del pannello di gestione Kubernetes in ambienti locali fisicamente isolati tramite Cluster API.
  • Ripristino del pannello di gestione del cluster dopo un guasto utilizzando un backup di etcd.
  • Imballaggio di tutti gli artefatti necessari per la fornitura 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 sequentiali.
  • Flannel (vxlan) come CNI per il backend; supporto per altri CNI in programma.
  • Riserva e ripristino di cluster etcd dopo la perdita di quorum.
  • Protezione del pannello di gestione da esaurimento di memoria e CPU.

Architettura della soluzione Klusterkit

KlusterKit

Per garantire l'affidabilità e la semplicità, Klusterkit utilizza un unico file cctl-state.yaml per memorizzare i metadati del cluster Kubernetes. Tramite l'interfaccia a riga di comando cctl è possibile gestire il ciclo di vita del cluster Kubernetes su qualsiasi macchina in cui si trovi questo file di stato. Può essere un laptop dell'operatore o qualsiasi altro computer che accede al cluster Kubernetes.

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

Come utilizzare Klusterkit e i suoi componenti:

1 – Qualsiasi dei tre strumenti può essere facilmente scaricato 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 deve funzionare un cluster Kubernetes ad alta disponibilità. Posizionare i file nodeadm e etcdadm nelle directory delle versioni:

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, è possibile scaricare facilmente le dipendenze necessarie in anticipo su un computer con accesso a Internet utilizzando il comando di download nodeadm e etcdadm. Successivamente, gli elementi scaricati (cioè kubelet e il file unit kubelet per systemd, i file eseguibili CNI, il file kubeadm, tutte le immagini dei container, inclusi Kubernetes, l'immagine keepalived e il file systemd, l'immagine del container etcd e i relativi file di configurazione) possono essere facilmente copiati su host fisicamente isolati insieme a cctl, nodeadm e etcdadm. (Per dettagli, vedi in wiki).

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

– Prima di tutto, crea le credenziali per il cluster.

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

– Poi crea l'oggetto cluster. –help richiama l'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 documentazioni, leggi su GitHub.

Fonte: habr.com

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