KlusterKit

KlusterKit: Et verktøysett med åpen kildekode for å forenkle Kubernetes-distribusjoner og kjøre i fysisk isolerte lokale miljøer

KlusterKit

I dag er vi glade for å kunngjøre at Platform9 er åpen kilde til Klusterkit, en pakke med tre verktøy, under Apache v2.0-lisensen på GitHub.

Våre kunder ruller ut programvare i private datasentre som ofte ikke er koblet til Internett (av sikkerhet eller andre årsaker). Disse store selskapene ønsker å dra nytte av Kubernetes og modernisere applikasjonene sine og samtidig rulle dem ut i ulike datasentre, som ofte ikke er koblet til omverdenen. Det er her Klusterkit kommer inn, noe som gjør det enkelt å klargjøre og administrere K8s-klynger i fysisk isolerte miljøer.

Klusterkit inkluderer tre uavhengige verktøy som kan brukes sammen eller hver for seg for å administrere livssyklusen til en Kubernetes-produksjonsklynge:

  1. etcdadm, CLI for forenklet etcd cluster management.
  2. nodeadm, en CLI for nodeadministrasjon som utvider kubeadm og distribuerer avhengighetene som trengs av kubeadm.
  3. cctl, et verktøy for administrasjon av klyngelivssyklus som tar i bruk Cluster API fra Kubernetes-fellesskapet og bruker nodeadm og etcdadm for sømløst å levere og vedlikeholde svært tilgjengelige Kubernetes-klynger i lokale og til og med fysisk isolerte miljøer.

Sammen utfører disse tre verktøyene følgende oppgaver:

  • Klargjør og administrer enkelt en svært tilgjengelig etcd-klynge og Kubernetes-dashboard i fysisk isolerte lokale miljøer via Cluster API.
  • Gjenoppretting av klyngekontrollpanelet etter en feil ved bruk av etcd backup.
  • Pakke alle gjenstander som trengs for å levere Kubernetes til fysisk isolerte miljøer.

Klusterkit funksjoner

  • Multi-master støtte (HA cluster K8s).
  • Levering og forvaltning av sikre etcd klynger.
  • Arbeid i fysisk isolerte miljøer.
  • Støtter rullende oppgraderinger og tilbakeføringer.
  • Flanell (vxlan) som CNI for backend; Det er planer om å støtte andre CNIer.
  • Sikkerhetskopiering og restaurering av etcd-klynger etter tap av quorum.
  • Beskytter kontrollpanelet mot å gå tom for minne og CPU-tid.

Klusterkit Solution Architecture

KlusterKit

For feiltoleranse og enkelhet bruker Klusterkit en enkelt cctl-state.yaml-fil for å lagre Kubernetes-klyngemetadata. Gjennom cctl CLI kan du administrere livssyklusen til en Kubernetes-klynge på en hvilken som helst maskin som har denne tilstandsfilen. Dette kan være en operatørs bærbare datamaskin eller en hvilken som helst annen datamaskin som er en del av Kubernetes-klyngen.

Cctl implementerer og kaller cluster-api-grensesnittet fra oppstrøms som et bibliotek for CRUD-operasjoner på klynger. Han bruker ssh-leverandør, en åpen kildekode bare metal cluster-api-leverandør fra Platform9, som igjen kaller etcdadm og nodeadm for å utføre operasjoner på klyngen.

Slik bruker du Klusterkit og dets komponenter:

1 – Hvilke som helst av de tre verktøyene kan enkelt samles med kommandoen 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 – Disse kjørbare filene kan deretter pakkes og kopieres til målmaskinene der den svært tilgjengelige Kubernetes-klyngen skal kjøres. Plasser nodeadm- og etcdadm-filene i versjonskatalogene:

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

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

3 – Hvis du trenger å orkestrere en Kubernetes-klynge lokalt, i et fysisk isolert miljø, kan de nødvendige avhengighetene enkelt lastes ned på forhånd på en datamaskin med Internett-tilgang ved å bruke nedlastingskommandoen nodeadm og etcdadm. Deretter kan de nedlastede elementene (dvs. kubelet og kubelet enhetsfil for systemd, kjørbare CNI-filer, kubeadm-fil, alle containerbilder inkludert Kubernetes, keepalive-bilde og systemd-fil, etcd containerbilde og tilsvarende konfigurasjonsfiler) enkelt kopieres til fysisk isolerte verter. med cctl, nodeadm og etcdadm. (Se detaljer i wiki).

4 – Når alt er på plass, kan du opprette den første Kubernetes-klyngen med et par kommandoer:

– Opprett først legitimasjon for klyngen.

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

– Lag deretter et klyngeobjekt. –help viser en liste over støttede alternativer.

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

– Til slutt oppretter du den første maskinen i klyngen.

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

Les mer dokumentasjon på GitHub.

Kilde: www.habr.com

Legg til en kommentar