KlusterKit

KlusterKit: Malfermfonta ilaro por simpligi Kubernetes-deplojojn kaj funkcii en fizike izolitaj surlokaj medioj

KlusterKit

Hodiaŭ ni ĝojas anonci, ke Platform9 estas malferma fonto Klusterkit, aro de tri iloj, sub la licenco Apache v2.0 sur GitHub.

Niaj klientoj lanĉas programaron en privataj datumcentroj, kiuj ofte ne estas konektitaj al Interreto (pro sekureco aŭ aliaj kialoj). Ĉi tiuj grandaj kompanioj volas utiligi Kubernetes kaj modernigi siajn aplikaĵojn kaj samtempe disvolvi ilin en malsamaj datumcentroj, kiuj ofte ne estas konektitaj al la ekstera mondo. Jen kie Klusterkit eniras, faciligante provizi kaj administri K8s-grupojn en fizike izolitaj medioj.

Klusterkit inkluzivas tri sendependajn ilojn, kiuj povas esti uzataj kune aŭ aparte por administri la vivociklon de Kubernetes-produktada areto:

  1. ktpdadm, CLI por simpligita etcd-grupo-administrado.
  2. nodeadm, CLI por administrado de nodoj, kiu etendas kubeadm kaj deplojas la dependecojn bezonatajn de kubeadm.
  3. cctl, cluster-vivciklo-administrado kiu adoptas la Cluster API de la Kubernetes-komunumo kaj uzas nodeadm kaj etcdadm por perfekte liveri kaj konservi tre haveblajn Kubernetes-aretojn en surlokaj kaj eĉ fizike izolitaj medioj.

Kune, ĉi tiuj tri iloj plenumas la sekvajn taskojn:

  • Facile provizi kaj administri tre haveblan etcd-areton kaj Kubernetes-panelon en fizike izolitaj surlokaj medioj per la Cluster API.
  • Restarigi la aretkontrolpanelon post malsukceso uzante etcd-rezervon.
  • Enpaki ĉiujn artefaktojn necesajn por liveri Kubernetes en fizike izolitaj medioj.

Karakterizaĵoj de Klusterkit

  • Plurmastra subteno (HA-grupo K8s).
  • Livero kaj administrado de sekuraj etcd-aretoj.
  • Laborante en fizike izolitaj medioj.
  • Elportas ruliĝantajn ĝisdatigojn kaj retrovigojn.
  • Flanelo (vxlan) kiel CNI por la backend; Estas planoj subteni aliajn CNIojn.
  • Rezervo kaj restarigo de etcd-aretoj post perdo de kvorumo.
  • Protektas la kontrolpanelon kontraŭ elĉerpiĝo de memoro kaj CPU-tempo.

Klusterkit Solva Arkitekturo

KlusterKit

Por erartoleremo kaj simpleco, Klusterkit uzas ununuran cctl-state.yaml-dosieron por stoki Kubernetes-grupo-metadatenojn. Per la cctl CLI vi povas administri la vivociklon de Kubernetes-grupo sur iu ajn maŝino, kiu havas ĉi tiun ŝtatdosieron. Ĉi tio povas esti tekkomputilo de funkciigisto aŭ iu ajn alia komputilo kiu estas parto de la Kubernetes-areo.

Cctl efektivigas kaj vokas la areto-api-interfacon de kontraŭflue kiel biblioteko por CRUD-operacioj sur aretoj. Li uzas ssh-provizanto, malfermfonta nuda metala cluster-api provizanto de Platform9, kiu siavice vokas etcdadm kaj nodeadm por fari operaciojn sur la areto.

Kiel uzi Klusterkit kaj ĝiajn komponantojn:

1 - Iu ajn el la tri iloj povas esti facile kolektita per la komando 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 - Ĉi tiuj ruligeblaj tiam povas esti pakitaj kaj kopiitaj al la celaj maŝinoj, kie la tre disponebla Kubernetes-areo devus funkcii. Metu la nodeadm kaj etcdadm dosierojn en la versio-dosierujoj:

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

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

3 – Se vi bezonas reĝisori Kubernetes-grupon loke, en fizike izolita medio, la necesaj dependecoj povas esti facile elŝutitaj anticipe sur komputilo kun Interreta aliro uzante la nodeadm kaj etcdadm elŝuta komando. Tiam la elŝutitaj eroj (t.e. kubelet kaj kubelet-unuodosiero por systemd, CNI ruleblaj dosieroj, kubeadm-dosiero, ĉiuj ujbildoj inkluzive de Kubernetes, keepalived-bildo kaj systemd-dosiero, etcd-ujo-bildo kaj respondaj agordaj dosieroj) povas esti facile kopiitaj al fizike izolitaj gastigantoj laŭlonge. kun cctl, nodeadm kaj etcdadm. (Vidu detalojn en vikio).

4 - Kiam ĉio estas en loko, vi povas krei la unuan Kubernetes-grupon per kelkaj komandoj:

– Unue kreu akreditaĵojn por la areto.

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

– Poste kreu amasobjekton. –help alportas liston de subtenataj opcioj.

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

– Fine, kreu la unuan maŝinon en la areto.

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

Legu pli da dokumentaro ĉe GitHub.

fonto: www.habr.com

Aldoni komenton