KlusterKit

KlusterKit: Et open source-værktøjssæt til at forenkle Kubernetes-implementeringer og køre i fysisk isolerede lokale miljøer

KlusterKit

I dag er vi glade for at kunne meddele, at Platform9 åbner Klusterkit, en suite af tre værktøjer, under Apache v2.0-licensen på GitHub.

Vores kunder udruller software i private datacentre, der ofte ikke er forbundet til internettet (af sikkerhedsmæssige eller andre årsager). Disse store virksomheder ønsker at udnytte Kubernetes og modernisere deres applikationer og samtidig rulle dem ud i forskellige datacentre, som ofte ikke er forbundet med omverdenen. Det er her, Klusterkit kommer ind i billedet, hvilket gør det nemt at klargøre og administrere K8s-klynger i fysisk isolerede miljøer.

Klusterkit inkluderer tre uafhængige værktøjer, der kan bruges sammen eller hver for sig til at styre livscyklussen for en Kubernetes-produktionsklynge:

  1. etcdadm, CLI til forenklet etcd cluster management.
  2. nodeadm, en CLI til nodeadministration, der udvider kubeadm og implementerer de afhængigheder, der er nødvendige for kubeadm.
  3. cctl, et værktøj til administration af klyngelivscyklus, der adopterer Cluster API fra Kubernetes-fællesskabet og bruger nodeadm og etcdadm til problemfrit at levere og vedligeholde højt tilgængelige Kubernetes-klynger i lokale og endda fysisk isolerede miljøer.

Sammen udfører disse tre værktøjer følgende opgaver:

  • Klargør og administrer nemt en meget tilgængelig etcd-klynge og Kubernetes-dashboard i fysisk isolerede lokale miljøer via Cluster API.
  • Gendannelse af klyngens kontrolpanel efter en fejl ved hjælp af etcd backup.
  • Pakning af alle artefakter, der er nødvendige for at levere Kubernetes til fysisk isolerede miljøer.

Klusterkit funktioner

  • Multi-master support (HA cluster K8s).
  • Levering og styring af sikre etcd klynger.
  • Arbejde i fysisk isolerede miljøer.
  • Understøtter rullende opgraderinger og tilbagerulninger.
  • Flannel (vxlan) som CNI for backend; Der er planer om at støtte andre CNI'er.
  • Backup og gendannelse af etcd-klynger efter tab af quorum.
  • Beskytter kontrolpanelet mod at løbe tør for hukommelse og CPU-tid.

Klusterkit Solution Architecture

KlusterKit

For fejltolerance og enkelhed bruger Klusterkit en enkelt cctl-state.yaml-fil til at gemme Kubernetes-klyngemetadata. Gennem cctl CLI kan du administrere livscyklussen for en Kubernetes-klynge på enhver maskine, der har denne tilstandsfil. Dette kan være en operatørs bærbare computer eller enhver anden computer, der er en del af Kubernetes-klyngen.

Cctl implementerer og kalder cluster-api-grænsefladen fra opstrøms som et bibliotek til CRUD-operationer på klynger. Han bruger ssh-udbyder, en open source bare metal cluster-api-udbyder fra Platform9, som igen kalder etcdadm og nodeadm for at udføre operationer på klyngen.

Sådan bruger du Klusterkit og dets komponenter:

1 – Ethvert af de tre værktøjer kan nemt indsamles med go get-kommandoen:

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

go get -u github.com/kubernetes-sigs/etcdadm

2 – Disse eksekverbare filer kan derefter pakkes og kopieres til målmaskinerne, hvor den meget tilgængelige Kubernetes-klynge skal køre. Placer nodeadm- og etcdadm-filerne i versionsmapperne:

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

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

3 – Hvis du skal orkestrere en Kubernetes-klynge lokalt, i et fysisk isoleret miljø, kan de nødvendige afhængigheder nemt downloades på forhånd på en computer med internetadgang ved hjælp af nodeadm og etcdadm download-kommandoen. Derefter kan de downloadede elementer (dvs. kubelet og kubelet enhedsfil for systemd, CNI eksekverbare filer, kubeadm fil, alle containerbilleder inklusive Kubernetes, keepalive image og systemd fil, etcd container image og tilsvarende konfigurationsfiler) nemt kopieres til fysisk isolerede værter langs med cctl, nodeadm og etcdadm. (Se detaljer i wiki).

4 – Når alt er på plads, kan du oprette den første Kubernetes-klynge med et par kommandoer:

– Opret først legitimationsoplysninger til klyngen.

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

– Opret derefter et klyngeobjekt. –help viser en liste over understøttede muligheder.

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

– Til sidst skal du oprette den første maskine i klyngen.

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

Læs mere dokumentation på GitHub.

Kilde: www.habr.com

Tilføj en kommentar