KlusterKit

KlusterKit: un set de instrumente open source pentru a simplifica implementările Kubernetes și a rula în medii locale izolate fizic

KlusterKit

Astăzi suntem încântați să anunțăm că Platform9 oferă Klusterkit de surse deschise, o suită de trei instrumente, sub licența Apache v2.0 pe GitHub.

Clienții noștri lansează software în centre de date private care adesea nu sunt conectate la Internet (din motive de securitate sau din alte motive). Aceste companii mari doresc să profite de Kubernetes și să își modernizeze aplicațiile și, în același timp, să le implementeze în diferite centre de date, care adesea nu sunt conectate la lumea exterioară. Aici intervine Klusterkit, facilitând furnizarea și gestionarea clusterelor K8s în medii izolate fizic.

Klusterkit include trei instrumente independente care pot fi utilizate împreună sau separat pentru a gestiona ciclul de viață al unui cluster de producție Kubernetes:

  1. etcdadm, CLI pentru management simplificat etcd cluster.
  2. nodeadm, un CLI pentru administrarea nodurilor care extinde kubeadm și implementează dependențele necesare kubeadm.
  3. cctl, un instrument de management al ciclului de viață al clusterului care adoptă API-ul Cluster de la comunitatea Kubernetes și utilizează nodeadm și etcdadm pentru a livra și menține fără probleme clustere Kubernetes cu disponibilitate ridicată în medii on-premise și chiar izolate fizic.

Împreună, aceste trei instrumente îndeplinesc următoarele sarcini:

  • Furnizați și gestionați cu ușurință un cluster etcd foarte disponibil și un tablou de bord Kubernetes în medii locale izolate fizic prin API-ul Cluster.
  • Restaurarea panoului de control al clusterului după o eroare utilizând backup etcd.
  • Împachetarea tuturor artefactelor necesare pentru a livra Kubernetes în medii izolate fizic.

Caracteristicile Klusterkit

  • Suport multi-master (HA cluster K8s).
  • Livrarea și gestionarea clusterelor etcd securizate.
  • Lucrul în medii izolate fizic.
  • Suportă upgrade-uri și rollback-uri.
  • Flanel (vxlan) ca CNI pentru backend; Există planuri de sprijinire a altor CNI-uri.
  • Backup și restaurarea clusterelor etcd după pierderea cvorumului.
  • Protejează panoul de control împotriva epuizării memoriei și a timpului CPU.

Arhitectura soluției Klusterkit

KlusterKit

Pentru toleranță la erori și simplitate, Klusterkit folosește un singur fișier cctl-state.yaml pentru a stoca metadatele clusterului Kubernetes. Prin intermediul CLI cctl puteți gestiona ciclul de viață al unui cluster Kubernetes pe orice mașină care are acest fișier de stare. Acesta poate fi laptopul unui operator sau orice alt computer care face parte din clusterul Kubernetes.

Cctl implementează și apelează interfața cluster-api din amonte ca bibliotecă pentru operațiuni CRUD pe clustere. El foloseste furnizorul ssh, un furnizor open-source bare metal cluster-api de la Platform9, care la rândul său cheamă etcdadm și nodeadm pentru a efectua operațiuni pe cluster.

Cum se utilizează Klusterkit și componentele sale:

1 – Oricare dintre cele trei instrumente poate fi colectat cu ușurință cu comanda 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 – Aceste executabile pot fi apoi împachetate și copiate pe mașinile țintă unde ar trebui să ruleze cluster-ul Kubernetes cu disponibilitate ridicată. Plasați fișierele nodeadm și etcdadm în directoarele versiunii:

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

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

3 – Dacă trebuie să orchestrați un cluster Kubernetes local, într-un mediu izolat fizic, dependențele necesare pot fi descărcate cu ușurință în avans pe un computer cu acces la Internet folosind comanda nodeadm și etcdadm download. Apoi, elementele descărcate (adică fișierul unitar kubelet și kubelet pentru systemd, fișierele executabile CNI, fișierul kubeadm, toate imaginile containerului, inclusiv Kubernetes, imaginea keepalived și fișierul systemd, imaginea containerului etcd și fișierele de configurare corespunzătoare) pot fi copiate cu ușurință pe gazde izolate fizic de-a lungul cu cctl, nodeadm și etcdadm. (Vezi detalii în Wiki).

4 – Odată ce totul este la locul său, puteți crea primul cluster Kubernetes cu câteva comenzi:

– Mai întâi creați acreditări pentru cluster.

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

– Apoi creați un obiect cluster. –help afișează o listă de opțiuni acceptate.

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

– În cele din urmă, creați prima mașină din cluster.

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

Citiți mai multe documentații la GitHub.

Sursa: www.habr.com

Adauga un comentariu