Wybieranie platformy Kubernetes bez systemu operacyjnego na platformie brzegowej

Azure Kubernetes Service (AKS)

Jeśli chcesz uruchomić rozwiązanie Kubernetes na urządzeniach brzegowych i zauważysz, że rozwiązania zarządzane nie spełniają Twoich wymagań, możesz eksplorować platformę 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 na podstawie głównych kwalifikatorów 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 należy odwołać się do następującego drzewa.

Diagram przedstawiający schemat blokowy do decydowania o tym, jakie opcje od zera mają być używane.

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 edge

  • kubeadm: narzędzie Kubernetes do tworzenia podstawowych klastrów Kubernetes; dobre dla standardowych obliczeń (Linux/Windows)

Uwaga

Funkcja Low Ops odnosi się do obniżonego kosztu operacji, gdy niektóre zadania operacyjne są abstrakcjonowane lub łatwiejsze, takie jak automatyczne aktualizacje 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. 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 mikrok8s wymaga własnego środowiska do pracy, niezależnie od tego, czy jest to oddzielna maszyna wirtualna lub 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. W dokumentacji można znaleźć potencjalne środki zaradcze.

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 w przypadku mikroK8s.

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 dodano pełną obsługę osadzonych itp. w wersji 1.19.5+k3s1.

kubeadm

Kubeadm to prosta instalacja platformy Kubernetes z podstaw.

Zagadnienia do rozważenia:

  • Wymaga co najmniej 2 gibajtów 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ą rozwiązania kubeadm i platformy Kubernetes. Sprawdź, jakie są obsługiwane wersje platform Kubernetes i kubeadm, aby dowiedzieć się, jakie wersje platformy Kubernetes i kubeadm są obsługiwane.

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 zapewnia łatwy sposób zarządzania 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 korzysta z innego podejścia do rozwiązania tego problemu, wykorzystując podobne koncepcje 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 lekkich 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: