KlusterKit

KlusterKit: et sett med verktøy med åpen kildekode for å forenkle distribusjoner av Kubernetes og drift i fysisk isolerte lokale miljøer

KlusterKit

I dag er vi glade for å kunngjøre at Platform9 åpner kildekoden til Klusterkit, et sett med tre verktøy, under Apache v2.0-lisensen på GitHub.

Kundene våre distribuerer programvare i private datasentre som ofte ikke er tilknyttet Internett (av sikkerhetsgrunner eller andre årsaker). Disse store selskapene ønsker å dra nytte av Kubernetes og modernisere applikasjonene sine, samtidig som de distribuerer dem i ulike datasentre som ofte ikke har kontakt med omverdenen. Her kommer Klusterkit til unnsetning, da det forenkler levering og styring av K8s-klynger i fysisk isolerte miljøer.

Klusterkit inkluderer tre uavhengige verktøy som kan brukes sammen eller hver for seg for å håndtere livssyklusen til et produksjonsklyngen av Kubernetes:

  1. etcdadm, CLI for forenklet administrasjon av etcd-klynger.
  2. nodeadm, CLI for administrering av noder, som kompletterer kubeadm og distribuerer avhengigheter nødvendige for kubeadm.
  3. cctl, et verktøy for å håndtere livssyklusen til klyngen som tar imot Cluster API fra Kubernetes-samfunnet og bruker nodeadm og etcdadm for enkelt å levere og vedlikeholde høyt tilgjengelige Kubernetes-klynger i lokale, samt i fysisk isolerte miljøer.

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

  • Enkel levering og administrasjon av høyt tilgjengelig etcd-klynge og kontrollpanel for Kubernetes i fysisk isolerte lokale miljøer via Cluster API.
  • Gjenoppretting av kontrollpanelet for klyngen etter et sammenbrudd ved hjelp av etcd-backup.
  • Pakking av alle artefakter nødvendige for distribusjonen av Kubernetes i fysisk isolerte miljøer.

Muligheter i Klusterkit

  • Støtte for flere mastere (HA-klynge K8s).
  • Levering og administrasjon av sikre etcd-klynger.
  • Drift i fysisk isolerte miljøer.
  • Støtte for sekvensielle oppdateringer og tilbakerulling.
  • Flannel (vxlan) som CNI for backend; planlegger også støtte for andre CNI.
  • Reservering og gjenoppretting av etcd-klynger etter tap av kvorum.
  • Beskyttelse av kontrollpanelet mot minne- og CPU-mangel.

Arkitekturen til Klusterkit-løsningen

KlusterKit

For fault tolerance and simplicity, Klusterkit uses a single file cctl-state.yaml to store Kubernetes cluster metadata. Through the cctl CLI, you can manage the lifecycle of a Kubernetes cluster on any machine that has this state file. This can be the operator's laptop or any other computer that is part of the Kubernetes cluster.

Cctl implements and invokes the upstream cluster-api interface as a CRUD operations library for clusters. It uses ssh-provider, an open-source cluster-api provider on "bare metal" from Platform9, which in turn calls etcdadm and nodeadm to perform operations on the cluster.

How to use Klusterkit and its components:

1 – Any of the three tools can be easily built using the go get command:

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

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

2 – Then, these executables can be packaged and copied to the target machines where the high-availability Kubernetes cluster should run. Place the files nodeadm and etcdadm in the version directories:

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

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

3 – If you need to orchestrate a Kubernetes cluster locally in a physically isolated environment, the necessary dependencies can easily be preloaded on a machine with internet access using the nodeadm and etcdadm download commands. The preloaded items (i.e., kubelet and the kubelet unit file for systemd, executable CNI files, the kubeadm file, all container images including Kubernetes, the keepalived image, and the systemd file, the etcd container image, and corresponding configuration files) can then be easily copied to physically isolated hosts along with cctl, nodeadm, and etcdadm. (For details, see wiki).

4 – When everything is in place, you can create the first Kubernetes cluster with a couple of commands:

– First, create the credentials for the cluster.

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

– Then, create the cluster object. The --help option calls up a list of supported parameters.

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

– Finally, create the first machine in the cluster.

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

Read more documentation at GitHub.

Kilde: habr.com

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster