Kubernetes (K8s) to oprogramowanie do automatyzacji instalacji, skalowania i zarządzania aplikacji skonteneryzowanych. Jest w pełno otwarte i przenośne; idealnie nadaje się do deklaratywnej konfiguracji środowisk, jak i automatycznej ich generacji. To jeden z najszybciej rosnących ekosystemów tego rodzaju - pojawia się coraz więcej usług dla Kubernetes, wsparcie jest coraz szersze, a kompatybilność lepsza. Kubernetes rozwijane jest przez Google od 2014 roku
Jednak, jak wyjaśnia dyrektor generalny Rancher Labs, Sheng Liang, „istniejące dystrybucje Kubernetes są często bardzo zasobożerne, jeśli chodzi np. o pamięć, a także zbyt skomplikowane dla środowisk przetwarzania na kraedzi chmury”. Dlatego też firma opracowała i uruchomiła K3s, lekką dystrybucję Kubernetes przeznaczoną dla programistów i operatorów poszukujących sposobu na uruchomienie Kubernetes na ograniczonych zasobach systemów wbudowanych i platformach sprzętowych takich jak x86, Armv7-A czy 64-bitowy Armv8-A. Są one często spotykanych w środowiskach na krawędzi chmury.
Rancher Labs udało się istotnie zmniejszyć wymagania Kubernetesa i lepiej dostosować go do tego rodzaju sprzętu. Konieczne były cztery główne kroki:
* Usunięcie starszego i niekrytycznego kodu - funkcjonalności będących w wersji alfa, innych niż domyślne kontrolerów, providerów usług w chmurze, driverów magazynów danych etc. Wszystko to zostało domyślnie wyłączone i musi być dodane ręcznie przez użytkownika.
* Konsolidacja pakowania uruchomionych procesów - aby oszczędzać RAM w systemie, wszystkie procesy w których typowo pracuje Kubernetes zamienione zostały na pojedynczy proces, wliczając w to Kubelet, kubeproxy i agent flannela.
* Wykorzystanie containerd zamiast Dockera do obsługi kontenerów. Z jednej strony oznacza to usunięcie takich funkcjonalności jak libnetwork, Rancher czy swarm, a także usunięcie sterowników magazynów danych dla Dockera oraz innych jego pluginów. Z drugiej strony istotnie zmniejszyło to obciążenie komputera.
* Wprowadzenie SQLite jako opcjonalnego magazynu danych. Jest to lekka alternatywa dla etcd.
Rezultatem powyższych starań jest pakiet, który łatwo się instaluje i który nie wymaga wiele zasobów. Sama binarka do instalacji zajmuje 40 MB. System wymaga Linuksa 3.10 lub nowszego oraz 512 MB pamięci RAM na serwer i po 75 MB na każdy węzeł (node) w sieci.
Jedną z firm chętnych do wykorzystania nowej implementacji w konkretnym przypadku jest Goldwind Smart Energy. Firma ta zarządza ponad 30 tysiącami turbin wiatrowych, a K3s umożliwiają im wdrożenie klastrów Kubernetes na tysiącach lokalizacji na krawędziach chmury zbierającej dane z tych turbin.
Instrukcje instalacji K3s na Raspberry Pi można znaleźć na stronie dostawcy, ale zasadniczo, jeśli mamy już skonfigurowane obrazy systemu dla naszej płytki, wszystko co musimy zrobić, to uruchomić następującą komendę w terminalu:
Powinno to automatycznie zainstalować K3s dla naszej architektury systemu (amd64, armhf, or arm64). Więcej detali, jeśli o instalację chodzi, znaleźć możemy np. na repozytorium projektu na Githubie.
Aby uruchomić serwer Kubernetes wpisujemy w terminalu:
Następnie, potrzebny nam będzie jeden agent:
Gdzie NODE_TOKEN pochodzi z /var/lib/rancher/k3s/server/node-token z serwera.
Tematyka ta, wraz z samym K3s zaprezentowana była na konferencji FOSDEM 2019 w ramach wykładu pod tytułem "CI/CD dla platform wbudowanych, z wytkorzystaniem ESP8266, Arduino-cli, Gitlab-ci, Raspberry Pi i Kibernetes".
Źródło: https://www.cnx-software.com/2019/03/08/k3s-lightweight-kubernetes-distribution-x86-arm/
Jednak, jak wyjaśnia dyrektor generalny Rancher Labs, Sheng Liang, „istniejące dystrybucje Kubernetes są często bardzo zasobożerne, jeśli chodzi np. o pamięć, a także zbyt skomplikowane dla środowisk przetwarzania na kraedzi chmury”. Dlatego też firma opracowała i uruchomiła K3s, lekką dystrybucję Kubernetes przeznaczoną dla programistów i operatorów poszukujących sposobu na uruchomienie Kubernetes na ograniczonych zasobach systemów wbudowanych i platformach sprzętowych takich jak x86, Armv7-A czy 64-bitowy Armv8-A. Są one często spotykanych w środowiskach na krawędzi chmury.
Rancher Labs udało się istotnie zmniejszyć wymagania Kubernetesa i lepiej dostosować go do tego rodzaju sprzętu. Konieczne były cztery główne kroki:
* Usunięcie starszego i niekrytycznego kodu - funkcjonalności będących w wersji alfa, innych niż domyślne kontrolerów, providerów usług w chmurze, driverów magazynów danych etc. Wszystko to zostało domyślnie wyłączone i musi być dodane ręcznie przez użytkownika.
* Konsolidacja pakowania uruchomionych procesów - aby oszczędzać RAM w systemie, wszystkie procesy w których typowo pracuje Kubernetes zamienione zostały na pojedynczy proces, wliczając w to Kubelet, kubeproxy i agent flannela.
* Wykorzystanie containerd zamiast Dockera do obsługi kontenerów. Z jednej strony oznacza to usunięcie takich funkcjonalności jak libnetwork, Rancher czy swarm, a także usunięcie sterowników magazynów danych dla Dockera oraz innych jego pluginów. Z drugiej strony istotnie zmniejszyło to obciążenie komputera.
* Wprowadzenie SQLite jako opcjonalnego magazynu danych. Jest to lekka alternatywa dla etcd.
Rezultatem powyższych starań jest pakiet, który łatwo się instaluje i który nie wymaga wiele zasobów. Sama binarka do instalacji zajmuje 40 MB. System wymaga Linuksa 3.10 lub nowszego oraz 512 MB pamięci RAM na serwer i po 75 MB na każdy węzeł (node) w sieci.
Jedną z firm chętnych do wykorzystania nowej implementacji w konkretnym przypadku jest Goldwind Smart Energy. Firma ta zarządza ponad 30 tysiącami turbin wiatrowych, a K3s umożliwiają im wdrożenie klastrów Kubernetes na tysiącach lokalizacji na krawędziach chmury zbierającej dane z tych turbin.
Instrukcje instalacji K3s na Raspberry Pi można znaleźć na stronie dostawcy, ale zasadniczo, jeśli mamy już skonfigurowane obrazy systemu dla naszej płytki, wszystko co musimy zrobić, to uruchomić następującą komendę w terminalu:
Kod: Bash
Powinno to automatycznie zainstalować K3s dla naszej architektury systemu (amd64, armhf, or arm64). Więcej detali, jeśli o instalację chodzi, znaleźć możemy np. na repozytorium projektu na Githubie.
Aby uruchomić serwer Kubernetes wpisujemy w terminalu:
Kod: Bash
Następnie, potrzebny nam będzie jeden agent:
Kod: Bash
Gdzie NODE_TOKEN pochodzi z /var/lib/rancher/k3s/server/node-token z serwera.
Tematyka ta, wraz z samym K3s zaprezentowana była na konferencji FOSDEM 2019 w ramach wykładu pod tytułem "CI/CD dla platform wbudowanych, z wytkorzystaniem ESP8266, Arduino-cli, Gitlab-ci, Raspberry Pi i Kibernetes".
Źródło: https://www.cnx-software.com/2019/03/08/k3s-lightweight-kubernetes-distribution-x86-arm/
Fajne? Ranking DIY