Jeśli chcesz uruchomić platformę Kubernetes na urządzeniach brzegowych i zauważysz, że rozwiązania zarządzane nie spełniają Twoich wymagań, możesz eksplorować rozwiązanie bez systemu operacyjnego jako opcję. Ten dokument ułatwia znalezienie najlepszej dostępnej opcji dla twojego przypadku użycia podczas konfigurowania klastrów Kubernetes na brzegu sieci.
Uwaga
Ten artykuł nie jest wyczerpującym porównaniem; zamiast tego przedstawia potencjalne ścieżki do podejmowania decyzji w oparciu o główne kwalifikatory między typowymi opcjami.
Drzewo decyzyjne dla platformy Kubernetes bez systemu operacyjnego na krawędzi
Przy podejmowaniu decyzji o opcjach przedstawionych poniżej dla platformy Kubernetes bez systemu operacyjnego na krawędzi odwołaj się do następującego drzewa.
Pobieranie pliku programu Visio z tego schematu blokowego
MicroK8s: Zgodne rozwiązanie Kubernetes "Low Ops" firmy Canonical
K3s: Certyfikowana dystrybucja Kubernetes utworzona na potrzeby obliczeń IoT i brzegowych
kubeadm: narzędzie Kubernetes do tworzenia klastrów Kubernetes w warstwie Podstawy; dobre dla standardowych obliczeń (Linux/Windows)
Uwaga
Niskie operacje odnoszą się do obniżonego kosztu operacji, gdy niektóre zadania operacyjne są abstrakcjonowane lub łatwiejsze, takie jak aktualizacje automatyczne lub uproszczone uaktualnienia.
MicroK8s firmy Canonical
MikroK8s jest dostarczany jako pojedynczy pakiet przystawki , który można łatwo zainstalować na maszynach z systemem Linux z obsługą przyciągania. Alternatywne instalacje są dostępne dla systemów Windows, macOS i raspberry PI/ARM. Po zainstalowaniu narzędzie MicroK8s tworzy klaster z jednym węzłem, którym można zarządzać za pomocą narzędzi MicroK8s. Jest on spakowany przy użyciu własnego narzędzia kubectl, a niektóre dodatki mogą być włączone (na przykład helm, dns, ingress, metallb i inne). Obsługiwane są również scenariusze z wieloma węzłami, węzłami systemu Windows i wysoką dostępnością.
Zagadnienia do rozważenia:
Istnieją różne wymagania dotyczące zasobów w zależności od tego, gdzie chcesz uruchomić narzędzie MicroK8s. Dokumentacja produktu zawiera informacje o minimalnych wymaganiach dotyczących zasobów. Na przykład:
Ubuntu: 4 GB pamięci RAM, 20 GB miejsca na dysku
Windows: 4 GB pamięci RAM, 40 GB miejsca na dysku
Obciążenia systemu Windows są obsługiwane tylko w przypadku klastrów MicroK8s z calico CNI.
Każdy węzeł w klastrze wielowęźle MicroK8s wymaga własnego środowiska do pracy, niezależnie od tego, czy jest to oddzielna maszyna wirtualna, czy kontener na jednej maszynie, czy na innej maszynie w tej samej sieci.
Problemy mogą pojawić się podczas uruchamiania mikroK8s na niektórych urządzeniach ARM. Dokumentacja dotycząca potencjalnych środków zaradczych.
K3s przez Rancher
K3s to lekki rozkład platformy Kubernetes. K3s jest wdrażany jako pojedynczy plik binarny i jest dostarczany z narzędziami osadzonymi, takimi jak kubectl i ctr, podobnie jak MicroK8s.
Zagadnienia do rozważenia:
Plik binarny jest mniejszy niż 100 MB, ale nadal istnieją minimalne wymagania dotyczące zasobów w zależności od scenariusza. Dokumentacja zawiera informacje o minimalnych wymaganiach dotyczących zasobów.
SQLite3 jest domyślnym systemem magazynu, choć są obsługiwane inne opcje .
Węzły systemu Windows nie są obecnie obsługiwane w przypadku K3s.
Wysoką dostępność można osiągnąć za pomocą zewnętrznej bazy danych lub osadzonej bazy danych. K3s dodał pełną obsługę osadzonych itp. w wersji 1.19.5+k3s1.
kubeadm
Kubeadm to zwykła waniliowa instalacja Kubernetes od podstaw.
Zagadnienia do rozważenia:
Wymaga 2 gibajtów (gibibajtów) lub więcej pamięci RAM na maszynę.
Wymaga co najmniej 2 procesorów CPU w węźle płaszczyzny sterowania.
Węzeł płaszczyzny sterowania musi być maszyną z systemem operacyjnym Linux zgodnym z deb/rpm.
Zasady obsługi niesymetryczności wersji i wersji platformy Kubernetes dotyczą narzędzia kubeadm i platformy Kubernetes. Sprawdź, jakie są obsługiwane wersje platformy Kubernetes i kubeadm.
Zarządzanie/automatyzacja
Jeśli chodzi o automatyzację i zarządzanie aprowizowaniem klastrów bez systemu operacyjnego, istnieje kilka opcji do zbadania: Ansible i Metal3.
Rozwiązanie Ansible umożliwia łatwe zarządzanie zasobami zdalnymi i dlatego jest głównym kandydatem do zarządzania węzłami zdalnymi i dołączania ich do klastra Kubernetes. Wszystko, czego potrzebujesz, to plik binarny rozwiązania Ansible uruchomiony na maszynie z systemem Linux i protokół SSH na maszynach zdalnych. Ta metoda zapewnia elastyczny mechanizm uruchamiania dowolnych skryptów na maszynach docelowych, co oznacza, że można użyć rozwiązania Ansible z dowolnymi narzędziami wymienionymi powyżej.
Metal3 ma inne podejście do rozwiązania tego problemu, wykorzystując podobne pojęcia do interfejsu API klastra. Należy utworzyć wystąpienie klastra efemerycznego, aby aprowizować klastry bez systemu operacyjnego i zarządzać nimi przy użyciu natywnych obiektów Kubernetes. W momencie pisania tekstu system Metal3 używa narzędzia kubeadm i dlatego nie obsługuje uproszczonych dystrybucji Kubernetes.
W przypadku zarządzania poza aprowizowaniem klastra rozważ zapoznanie się z klastrami z obsługą usługi Azure Arc w celu zarządzania klastrami na platformie Azure.
Następne kroki
Aby uzyskać więcej informacji, zobacz następujące artykuły: