KlusterKit: un conjunt d'eines de codi obert per simplificar els desplegaments de Kubernetes i executar-se en entorns locals aïllats físicament

Avui ens complau anunciar que Platform9 té Klusterkit de subministrament obert, un conjunt de tres eines, sota la llicència Apache v2.0 a GitHub.
Els nostres clients implementen programari en centres de dades privats que sovint no estan connectats a Internet (per motius de seguretat o altres). Aquestes grans empreses volen aprofitar Kubernetes i modernitzar les seves aplicacions i, al mateix temps, desplegar-les en diferents centres de dades, que sovint no estan connectats amb el món exterior. Aquí és on entra Klusterkit, que facilita el subministrament i la gestió de clústers K8s en entorns físicament aïllats.
Klusterkit inclou tres eines independents que es poden utilitzar juntes o per separat per gestionar el cicle de vida d'un clúster de producció de Kubernetes:
- , CLI per a la gestió simplificada del clúster etcd.
- , una CLI per a l'administració de nodes que amplia kubeadm i desplega les dependències necessàries per kubeadm.
- , una eina de gestió del cicle de vida del clúster que adopta l'API del clúster de la comunitat de Kubernetes i utilitza nodeadm i etcdadm per oferir i mantenir clústers de Kubernetes d'alta disponibilitat en entorns locals i fins i tot físicament aïllats.
En conjunt, aquestes tres eines realitzen les següents tasques:
- Subministreu i gestioneu fàcilment un clúster etcd d'alta disponibilitat i un tauler de control de Kubernetes en entorns locals aïllats físicament mitjançant l'API del clúster.
- Restauració del tauler de control del clúster després d'un error mitjançant la còpia de seguretat d'etcd.
- Empaquetar tots els artefactes necessaris per oferir Kubernetes en entorns físicament aïllats.
Característiques de Klusterkit
- Suport multimaster (clúster HA K8s).
- Lliurament i gestió de clústers etcd segurs.
- Treballar en entorns físicament aïllats.
- Admet actualitzacions i retrocessos.
- Franela (vxlan) com a CNI per al backend; Hi ha plans per donar suport a altres CNI.
- Còpia de seguretat i restauració de clústers etcd després de la pèrdua de quòrum.
- Protegeix el tauler de control de l'esgotament de memòria i temps de CPU.
Arquitectura de solucions Klusterkit
Per a la tolerància a errors i la simplicitat, Klusterkit utilitza un únic fitxer cctl-state.yaml per emmagatzemar les metadades del clúster de Kubernetes. Mitjançant la CLI de cctl podeu gestionar el cicle de vida d'un clúster de Kubernetes a qualsevol màquina que tingui aquest fitxer d'estat. Pot ser l'ordinador portàtil d'un operador o qualsevol altre ordinador que formi part del clúster de Kubernetes.
Cctl implementa i crida a la interfície clúster-api des de aigües amunt com a biblioteca per a operacions CRUD en clústers. Ell utilitza , un proveïdor d'API de clúster de codi obert de Platform9, que al seu torn crida a etcdadm i nodeadm per realitzar operacions al clúster.
Com utilitzar Klusterkit i els seus components:
1 - Qualsevol de les tres eines es pot recollir fàcilment amb l'ordre go get:
go get -u github.com/platform9/cctl
go get -u github.com/platform9/nodeadm
go get -u github.com/kubernetes-sigs/etcdadm2: aquests executables es poden empaquetar i copiar a les màquines de destinació on s'hauria d'executar el clúster de Kubernetes d'alta disponibilitat. Col·loqueu els fitxers nodeadm i etcdadm als directoris de versions:
cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//
cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//3 – Si necessiteu orquestrar un clúster de Kubernetes localment, en un entorn físicament aïllat, les dependències necessàries es poden descarregar fàcilment amb antelació en un ordinador amb accés a Internet mitjançant l'ordre de descàrrega nodeadm i etcdadm. A continuació, els elements descarregats (és a dir, fitxers d'unitat kubelet i kubelet per a systemd, fitxers executables CNI, fitxer kubeadm, totes les imatges de contenidors, inclosos Kubernetes, imatge keepalived i fitxer systemd, imatge de contenidor etcd i els fitxers de configuració corresponents) es poden copiar fàcilment als amfitrions aïllats físicament. amb cctl, nodeadm i etcdadm. (Vegeu els detalls a ).
4 - Un cop tot estigui al seu lloc, podeu crear el primer clúster de Kubernetes amb un parell d'ordres:
– Primer creeu les credencials per al clúster.
$GOPATH/bin/cctl create credential --user root --private-key ~/.ssh/id_rsa– A continuació, creeu un objecte clúster. –help mostra una llista d'opcions compatibles.
$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24– Finalment, creeu la primera màquina del clúster.
$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role masterLlegeix més documentació a .
Font: www.habr.com
