Zestaw KlusterKit

KlusterKit: zestaw narzędzi typu open source upraszczający wdrożenia Kubernetes i działający w fizycznie izolowanych środowiskach lokalnych

Zestaw KlusterKit

Dziś z radością ogłaszamy, że Platform9 to Klusterkit typu open source, pakiet trzech narzędzi, dostępny na licencji Apache v2.0 w serwisie GitHub.

Nasi klienci wdrażają oprogramowanie w prywatnych centrach danych, które często nie są podłączone do Internetu (ze względów bezpieczeństwa lub z innych powodów). Te duże firmy chcą wykorzystać Kubernetes i unowocześnić swoje aplikacje, jednocześnie wdrażając je w różnych centrach danych, które często nie są połączone ze światem zewnętrznym. W tym miejscu z pomocą przychodzi Klusterkit, który ułatwia udostępnianie klastrów K8 i zarządzanie nimi w fizycznie izolowanych środowiskach.

Klusterkit zawiera trzy niezależne narzędzia, których można używać razem lub osobno do zarządzania cyklem życia klastra produkcyjnego Kubernetes:

  1. itd, CLI dla uproszczonego zarządzania klastrami itp.
  2. nodeadm, interfejs CLI do administrowania węzłami, który rozszerza kubeadm i wdraża zależności potrzebne kubeadm.
  3. cctl, narzędzie do zarządzania cyklem życia klastra, które wykorzystuje Cluster API od społeczności Kubernetes i wykorzystuje nodeadm i etcdadm do bezproblemowego dostarczania i utrzymywania wysoce dostępnych klastrów Kubernetes w środowiskach lokalnych, a nawet fizycznie izolowanych.

Razem te trzy narzędzia wykonują następujące zadania:

  • Z łatwością udostępniaj i zarządzaj wysoce dostępnym klastrem etcd i pulpitem Kubernetes w fizycznie izolowanych środowiskach lokalnych za pośrednictwem Cluster API.
  • Przywracanie panelu sterowania klastra po awarii przy użyciu kopii zapasowej etcd.
  • Pakowanie wszystkich artefaktów potrzebnych do dostarczenia Kubernetesa do fizycznie izolowanych środowisk.

Funkcje Klusterkita

  • Obsługa wielu masterów (klaster HA K8s).
  • Dostarczanie i zarządzanie bezpiecznymi klastrami itp.
  • Praca w fizycznie izolowanych środowiskach.
  • Obsługuje stopniowe aktualizacje i wycofywanie.
  • Flanela (vxlan) jako CNI dla backendu; Istnieją plany wspierania innych CNI.
  • Tworzenie kopii zapasowych i przywracanie klastrów itp. po utracie kworum.
  • Chroni panel sterowania przed wyczerpaniem się pamięci i czasu procesora.

Architektura rozwiązania Klusterkit

Zestaw KlusterKit

Aby zapewnić odporność na awarie i prostotę, Klusterkit używa pojedynczego pliku cctl-state.yaml do przechowywania metadanych klastra Kubernetes. Za pomocą interfejsu CLI cctl możesz zarządzać cyklem życia klastra Kubernetes na dowolnej maszynie, która ma ten plik stanu. Może to być laptop operatora lub dowolny inny komputer będący częścią klastra Kubernetes.

Cctl implementuje i wywołuje interfejs klastra-api z źródła jako bibliotekę do operacji CRUD na klastrach. On używa dostawca ssh, dostawca interfejsu API klastra bare metal o otwartym kodzie źródłowym z Platform9, który z kolei wywołuje narzędzia etcdadm i nodeadm w celu wykonywania operacji na klastrze.

Jak korzystać z Klusterkit i jego komponentów:

1 – Każde z trzech narzędzi można łatwo zebrać za pomocą polecenia „idź pobierz”:

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

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

2 – Te pliki wykonywalne można następnie spakować i skopiować na maszyny docelowe, na których powinien działać klaster Kubernetes o wysokiej dostępności. Umieść pliki nodeadm i etcdadm w katalogach wersji:

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

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

3 – Jeśli chcesz zorganizować klaster Kubernetes lokalnie, w fizycznie izolowanym środowisku, niezbędne zależności można łatwo pobrać wcześniej na komputer z dostępem do Internetu za pomocą poleceń pobierania nodeadm i etcdadm. Następnie pobrane elementy (tj. pliki jednostek kubelet i kubelet dla systemd, pliki wykonywalne CNI, plik kubeadm, wszystkie obrazy kontenerów, w tym Kubernetes, obraz keepalived i plik systemd, obraz kontenera itp. i odpowiednie pliki konfiguracyjne) można łatwo skopiować do fizycznie izolowanych hostów wraz z cctl, nodeadm i etcdadm. (Szczegóły w wiki).

4 – Gdy wszystko będzie już gotowe, możesz utworzyć pierwszy klaster Kubernetes za pomocą kilku poleceń:

– Najpierw utwórz poświadczenia dla klastra.

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

– Następnie utwórz obiekt klastra. –help wyświetla listę obsługiwanych opcji.

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

– Na koniec utwórz pierwszą maszynę w klastrze.

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

Przeczytaj więcej dokumentacji na stronie GitHub.

Źródło: www.habr.com

Dodaj komentarz