KlusterKit

KlusterKit: Odprtokodni komplet orodij za poenostavitev uvajanja Kubernetes in delovanje v fizično izoliranih okoljih na mestu uporabe

KlusterKit

Danes z veseljem sporočamo, da je Platform9 odprtokodni Klusterkit, nabor treh orodij, pod licenco Apache v2.0 na GitHubu.

Naše stranke uvajajo programsko opremo v zasebnih podatkovnih centrih, ki pogosto niso povezani z internetom (zaradi varnosti ali drugih razlogov). Ta velika podjetja želijo izkoristiti Kubernetes in posodobiti svoje aplikacije ter jih hkrati uvesti v različnih podatkovnih centrih, ki pogosto niso povezani z zunanjim svetom. Tukaj nastopi Klusterkit, ki olajša zagotavljanje in upravljanje gruč K8s v fizično izoliranih okoljih.

Klusterkit vključuje tri neodvisna orodja, ki jih je mogoče uporabljati skupaj ali ločeno za upravljanje življenjskega cikla produkcijske gruče Kubernetes:

  1. itddadm, CLI za poenostavljeno upravljanje gruče etcd.
  2. nodeadm, CLI za upravljanje vozlišča, ki razširja kubeadm in uvaja odvisnosti, ki jih potrebuje kubeadm.
  3. cctl, orodje za upravljanje življenjskega cikla gruče, ki prevzame Cluster API iz skupnosti Kubernetes in uporablja nodeadm in etcdadm za brezhibno zagotavljanje in vzdrževanje visoko razpoložljivih gruč Kubernetes v lokalnih in celo fizično izoliranih okoljih.

Ta tri orodja skupaj opravljajo naslednje naloge:

  • Enostavno zagotovite in upravljajte visoko razpoložljivo gručo etcd in nadzorno ploščo Kubernetes v fizično izoliranih okoljih na mestu uporabe prek Cluster API.
  • Obnovitev nadzorne plošče gruče po napaki z uporabo varnostne kopije etcd.
  • Pakiranje vseh artefaktov, potrebnih za dostavo Kubernetesa v fizično izolirana okolja.

Funkcije Klusterkit

  • Podpora za več glavnih (HA grozd K8s).
  • Dostava in upravljanje varnih itdd grozdov.
  • Delo v fizično izoliranih okoljih.
  • Podpira tekoče nadgradnje in povrnitve.
  • Flannel (vxlan) kot CNI za zaledje; Obstajajo načrti za podporo drugim CNI.
  • Varnostno kopiranje in obnovitev gruč etcd po izgubi kvoruma.
  • Ščiti nadzorno ploščo pred zmanjkanjem pomnilnika in procesorskega časa.

Arhitektura rešitve Klusterkit

KlusterKit

Za toleranco napak in preprostost Klusterkit uporablja eno samo datoteko cctl-state.yaml za shranjevanje metapodatkov gruče Kubernetes. Prek cctl CLI lahko upravljate življenjski cikel gruče Kubernetes na katerem koli računalniku, ki ima to datoteko stanja. To je lahko prenosnik operaterja ali kateri koli drug računalnik, ki je del gruče Kubernetes.

Cctl implementira in kliče vmesnik API-ja gruče od zgoraj kot knjižnico za operacije CRUD v gručah. On uporablja ssh-ponudnik, odprtokodnega golega ponudnika API-ja za gruče iz Platform9, ki pokliče etcdadm in nodeadm za izvajanje operacij v gruči.

Kako uporabljati Klusterkit in njegove komponente:

1 – Katero koli od treh orodij je mogoče preprosto zbrati z ukazom 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 – Te izvršljive datoteke je mogoče nato zapakirati in kopirati v ciljne računalnike, kjer bi se morala izvajati visoko razpoložljiva gruča Kubernetes. Datoteki nodeadm in etcdadm postavite v imenike različic:

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

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

3 – Če morate organizirati gručo Kubernetes lokalno, v fizično izoliranem okolju, lahko potrebne odvisnosti enostavno vnaprej prenesete v računalnik z dostopom do interneta z uporabo ukaza za prenos nodeadm in etcdadm. Nato lahko prenesene elemente (tj. kubelet in datoteko enote kubelet za systemd, izvršljive datoteke CNI, datoteko kubeadm, vse slike vsebnika, vključno s Kubernetes, sliko keepalived in datoteko systemd, sliko vsebnika itd. in ustrezne konfiguracijske datoteke) enostavno kopirate na fizično izolirane gostitelje. s cctl, nodeadm in etcdadm. (Glej podrobnosti v wiki).

4 – Ko je vse na svojem mestu, lahko ustvarite prvo gručo Kubernetes z nekaj ukazi:

– Najprej ustvarite poverilnice za gručo.

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

– Nato ustvarite objekt gruče. –help prikaže seznam podprtih možnosti.

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

– Končno ustvarite prvi stroj v gruči.

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

Preberite več dokumentacije na GitHub.

Vir: www.habr.com

Dodaj komentar