KlusterKit

KlusterKit: atvirojo kodo įrankių rinkinys, skirtas supaprastinti Kubernetes diegimą ir paleisti fiziškai izoliuotose vietinėse aplinkose

KlusterKit

Šiandien džiaugiamės galėdami pranešti, kad Platform9 yra atviro šaltinio Klusterkit, trijų įrankių rinkinys, pagal Apache v2.0 licenciją GitHub.

Mūsų klientai įdiegia programinę įrangą privačiuose duomenų centruose, kurie dažnai nėra prisijungę prie interneto (dėl saugumo ar kitų priežasčių). Šios didelės įmonės nori pasinaudoti Kubernetes teikiamais privalumais ir modernizuoti savo programas bei tuo pačiu jas diegti skirtinguose duomenų centruose, kurie dažnai nesusiję su išoriniu pasauliu. Čia atsiranda „Klusterkit“, todėl lengva sudaryti ir valdyti K8s grupes fiziškai izoliuotoje aplinkoje.

„Klusterkit“ apima tris nepriklausomus įrankius, kurie gali būti naudojami kartu arba atskirai, norint valdyti „Kubernetes“ gamybos klasterio gyvavimo ciklą:

  1. etcdadm, CLI supaprastintam etcd klasterių valdymui.
  2. nodeadm, mazgo administravimo CLI, kuri išplečia kubeadm ir diegia kubeadm reikalingas priklausomybes.
  3. cctl, klasterio gyvavimo ciklo valdymo įrankis, kuris priima Cluster API iš Kubernetes bendruomenės ir naudoja nodeadm ir etcdadm, kad sklandžiai pristatytų ir prižiūrėtų labai prieinamas Kubernetes grupes vietinėse ir net fiziškai izoliuotose aplinkose.

Kartu šie trys įrankiai atlieka šias užduotis:

  • Lengvai suteikite ir valdykite labai prieinamą etcd klasterį ir „Kubernetes“ prietaisų skydelį fiziškai izoliuotose vietinėse aplinkose naudodami „Cluster“ API.
  • Klasterio valdymo skydelio atkūrimas po gedimo naudojant etcd atsarginę kopiją.
  • Visų artefaktų, reikalingų Kubernetes pristatymui į fiziškai izoliuotą aplinką, pakavimas.

Klusterkit savybės

  • Multi-master palaikymas (HA klasteris K8s).
  • Saugių etcd grupių pristatymas ir valdymas.
  • Darbas fiziškai izoliuotoje aplinkoje.
  • Palaiko nuolatinius atnaujinimus ir atšaukimus.
  • Flanelė (vxlan) kaip CNI užpakalinei programai; Planuojama remti kitas CNI.
  • Atsarginė etcd grupių kopijavimas ir atkūrimas praradus kvorumą.
  • Apsaugo valdymo skydelį nuo atminties ir procesoriaus laiko trūkumo.

„Klusterkit“ sprendimų architektūra

KlusterKit

Dėl tolerancijos gedimams ir paprastumo Klusterkit naudoja vieną cctl-state.yaml failą Kubernetes klasterio metaduomenims saugoti. Naudodami cctl CLI galite valdyti Kubernetes klasterio gyvavimo ciklą bet kuriame kompiuteryje, kuriame yra šis būsenos failas. Tai gali būti operatoriaus nešiojamas kompiuteris arba bet kuris kitas kompiuteris, kuris yra „Kubernetes“ klasterio dalis.

Cctl įgyvendina ir iškviečia klasterio-api sąsają iš priešsrovės kaip biblioteką CRUD operacijoms klasteriuose. Jis naudoja ssh teikėjas, atvirojo kodo pliko metalo klasterio API teikėjas iš Platform9, kuris savo ruožtu iškviečia etcdadm ir nodeadm, kad atliktų operacijas klasteryje.

Kaip naudoti Klusterkit ir jo komponentus:

1 – bet kurį iš trijų įrankių galima lengvai surinkti naudojant komandą 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 – šie vykdomieji failai gali būti supakuoti ir nukopijuoti į tikslinius įrenginius, kuriuose turėtų veikti labai prieinamas „Kubernetes“ klasteris. Įdėkite nodeadm ir etcdadm failus į versijų katalogus:

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

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

3 – Jei reikia organizuoti Kubernetes klasterį lokaliai, fiziškai izoliuotoje aplinkoje, reikiamas priklausomybes galima nesunkiai iš anksto atsisiųsti į kompiuterį su interneto prieiga naudojant komandą nodeadm ir etcdadm download. Tada atsisiųstus elementus (pvz., kubelet ir kubelet vieneto failą, skirtą systemd, CNI vykdomiesiems failams, kubeadm failą, visus konteinerio vaizdus, ​​įskaitant Kubernetes, nuolatinį vaizdą ir systemd failą, etcd konteinerio vaizdą ir atitinkamus konfigūracijos failus) galima lengvai nukopijuoti į fiziškai izoliuotus pagrindinius kompiuterius. su cctl, nodeadm ir etcdadm. (Išsamią informaciją žr wiki).

4 - Kai viskas bus vietoje, galite sukurti pirmąjį Kubernetes klasterį su keliomis komandomis:

– Pirmiausia sukurkite klasterio kredencialus.

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

– Tada sukurkite klasterio objektą. –pagalba pateikia palaikomų parinkčių sąrašą.

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

– Galiausiai sukurkite pirmąjį įrenginį klasteryje.

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

Skaitykite daugiau dokumentacijos adresu GitHub.

Šaltinis: www.habr.com

Добавить комментарий