AutoK3s: zarządzaj klastrami K3s wszędzie — bez bólu głowy

Featured image for AutoK3s: zarządzaj klastrami K3s wszędzie — bez bólu głowy

Jeśli pracujesz z K3s — lekką dystrybucją Kubernetes od Rancher Labs — prędzej czy później trafisz na ten sam problem: uruchomienie klastra na EC2, lokalnej maszynie wirtualnej czy Raspberry Pi to za każdym razem inny zestaw poleceń, skryptów i ręcznych kroków. AutoK3s rozwiązuje ten problem jednym narzędziem z interfejsem graficznym i CLI.

Czym jest AutoK3s?

AutoK3s to otwartoźródłowe narzędzie rozwijane przez zespół Rancher (SUSE), które upraszcza cały cykl życia klastrów K3s — od provisjonowania przez skalowanie po usuwanie. Projekt żyje pod adresem github.com/cnrancher/autok3s i jest dostępny na licencji Apache 2.0. Hasło projektu to „Run K3s Everywhere" — i nie jest to przesada. AutoK3s obsługuje m.in.:

  • AWS (EC2)
  • Google Cloud (GCE, z automatycznym wdrożeniem CCM)
  • Alibaba Cloud
  • Tencent Cloud
  • Harvester (wirtualizacja od SUSE)
  • k3d (lokalne klastry w Dockerze)
  • Native — dowolne maszyny dostępne przez SSH, bez integracji z chmurowym SDK

Dla środowisk hybrydowych i on-premise provider native to szczególnie przydatna opcja: wystarczy SSH i gotowe.

Co AutoK3s faktycznie potrafi?

Provisjonowanie i HA. AutoK3s tworzy klastry z konfigurowalnymi opcjami wysokiej dostępności. Obsługuje różne backendy dla datastora: wbudowany etcd, SQLite oraz zewnętrzne bazy RDS. Można wybrać topologię odpowiednią do środowiska — od pojedynczego węzła do klastra z wieloma masterami. UI dashboard. Narzędzie uruchamia lokalny daemon z interfejsem webowym (domyślnie na porcie 8080). Z poziomu przeglądarki można tworzyć klastry, dodawać węzły, monitorować stan i zarządzać kubeconfig — bez dotykania terminala. Do podglądu klastra integruje się z kube-explorer. Airgap. Obsługuje instalację w środowiskach bez dostępu do internetu — AutoK3s zarządza paczkami K3s lokalnie i dostarcza je na węzły. Przydatne w sieciach korporacyjnych i środowiskach zamkniętych. Add-ony. Wbudowany mechanizm zarządzania wtyczkami pozwala wdrożyć wybrane komponenty (np. Helm charts) bezpośrednio po postawieniu klastra. Jeden krok zamiast kilku. Kubeconfig. AutoK3s automatycznie scala i przechowuje kubeconfig dla wszystkich zarządzanych klastrów w ~/.autok3s/.kube/config. Polecenie autok3s kubectl daje natychmiastowy dostęp do dowolnego klastra.

Instalacja i uruchomienie

Na Linuksie wystarczy jedno polecenie: bash

curl -sS https://rancher-mirror.rancher.cn/autok3s/install.sh | sh

Alternatywnie przez Docker (działa też na macOS): bash

# Linux
docker run -itd --restart=unless-stopped --net=host \
  -v /var/run/docker.sock:/var/run/docker.sock \
  cnrancher/autok3s:v0.9.3

# macOS
docker run -itd --restart=unless-stopped -p 8080:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e DOCKER_HOST="" \
  cnrancher/autok3s:v0.9.3

Po uruchomieniu UI dostępne jest pod http://localhost:8080. Przykład szybkiego klastra lokalnego przez CLI z providerem k3d: bash

autok3s -d create -p k3d --name mycluster --masters 1 --workers 2

Klaster gotowy w około minutę.

Kiedy to ma sens, a kiedy nie?

AutoK3s sprawdza się dobrze, gdy:

  • prowadzisz środowiska deweloperskie lub CI na K3s i chcesz szybko tworzyć/niszczyć klastry,
  • zarządzasz K3s na wielu maszynach przez SSH (provider native) bez jednorodnej infrastruktury chmurowej,
  • potrzebujesz airgap na środowiskach izolowanych,
  • chcesz dashboard zamiast skryptów shell dla mniej doświadczonych członków zespołu.
  • wdrażasz klastry K3s na urządzeniach brzegowych w architekturach IoT — Raspberry Pi, NVIDIA Jetson, mini-PC klasy industrial. K3s ma bardzo niskie wymagania sprzętowe (512 MB RAM wystarczy), a AutoK3s przez provider native pozwala zarządzać dziesiątkami takich węzłów przez SSH jak zwykłymi węzłami klastra. W połączeniu z obsługą airgap i SQLite jako datastorem — zamiast etcd — to realistyczna opcja dla flot urządzeń brzegowych bez stałego dostępu do sieci centralnej.

Nie jest to narzędzie do zarządzania produkcyjnymi klastrami AKS, EKS czy GKE — do tego służą dedykowane narzędzia platformowe. AutoK3s to narzędzie dla ekosystemu K3s i dobrze trzyma się tej roli.

Podsumowanie

AutoK3s to solidne, pragmatyczne narzędzie, które wypełnia lukę między skryptami install.sh K3s a pełnoprawnymi platformami zarządzania chmurą. Jeśli K3s jest częścią twojego stosu — na edge, w CI, w środowiskach hybrydowych lub lokalnie — warto je mieć w zestawie narzędzi. Kod źródłowy: github.com/cnrancher/autok3s Licencja: Apache 2.0 Projekt pod parasolem: SUSE / Rancher Engineering