Włączenie uruchamiania aplikacji Kubeapps na klastrze NSIS Magnum Kubernetes
Kubeapps app-launcher umożliwia szybkie wdrażanie aplikacji na klastrze Kubernetes, z wygodnym graficznym interfejsem użytkownika. W tym artykule przedstawiamy wskazówki dotyczące tworzenia klastra Kubernetes z włączoną funkcją Kubeapps i wdrażania przykładowych aplikacji.
Co będziemy omawiać
Krótkie wprowadzenie - wdrażanie aplikacji na Kubernetes
Utwórz klaster z włączoną funkcją szybkiego uruchamiania Kubeapps
Dostęp do usługi Kubeapps lokalnie z poziomu przeglądarki
Uruchom przykładową aplikację z Kubeapps
Obecne ograniczenia
Wymagania wstępne
Nr 1 Hosting
Potrzebne jest konto hostingowe NSIS z interfejsem Horizon https://horizon.cloudferro.com.
Zasoby, których potrzebujesz i używasz, będą odzwierciedlały stan Twojego portfela konta. Sprawdź statystyki swojego konta na stronie https://nsis-cloud-innovation.cloudferro.com/login.
Nr 2 Tworzenie klastra Kubernetes z poziomu interfejsu graficznego Horizon
Wiedza na temat tworzenia klastra Kubernetes z poziomu interfejsu graficznego Horizon została opisana w artykule Jak utworzyć klaster Kubernetes przy użyciu NSIS OpenStack Magnum.
Nr 3 Jak uzyskać dostęp do klastra Kubernetes po wdrożeniu
Dostęp do wiersza poleceń systemu Linux i możliwość dostępu do klastra, jak opisano w artykule Jak uzyskać dostęp do klastra Kubernetes po wdrożeniu przy użyciu Kubectl na NSIS OpenStack Magnum?
Nr 4 Handling Helmet
Pewna znajomość Helm, aby dostosować wdrożenia aplikacji za pomocą Kubeapps. Zobacz Wdrażanie Helm Charts na klastrach Magnum Kubernetes w chmurze NSIS Cloud.
Nr 5 Dostęp do chmury CloudFerro
Kontekst
Wdrażanie złożonych aplikacji na Kubernetes staje się znacznie bardziej wydajne i wygodne dzięki Helm. Dodatkowo, Kubeapps, program do uruchamiania aplikacji z graficznym interfejsem użytkownika (GUI), zapewnia przyjazny dla użytkownika punkt wyjścia do zarządzania aplikacjami. Ten graficzny interfejs użytkownika pozwala na wdrażanie i zarządzanie aplikacjami na klastrze K8s, ograniczając potrzebę głębokiej znajomości wiersza poleceń.
Kubeapps app-launcher można włączyć podczas tworzenia klastra. Będzie on działał jako usługa lokalna, dostępna z poziomu przeglądarki.
Utworzenie klastra Kubernetes z włączoną funkcją szybkiego uruchamiania Kubeapps
Tworzenie klastra Kubernetes z włączonymi aplikacjami Kubeapps odbywa się zgodnie z ogólnymi wytycznymi opisanymi w warunku wstępnym nr 2.
Podczas tworzenia klastra w Horizon zgodnie z tymi wytycznymi:
wstawić trzy etykiety z poniższymi wartościami w zakładce „Zaawansowane” i
wybrać, aby zastąpić etykiety.
kubeapps_enabled=true,helm_client_tag=v3.11.3,helm_client_sha256=ca2d5d40d4cdfb9a3a6205dd803b5bc8def00bd2f13e5526c127e9b667974a89
Ważne
Pomiędzy wartościami etykiet nie może być spacji.
Wstawianie tych etykiet pokazano na poniższym obrazku:
Dostęp do usługi Kubeapps lokalnie z poziomu przeglądarki
Po utworzeniu klastra należy uzyskać dostęp do konsoli systemu Linux. Powinieneś mieć dostępne narzędzie wiersza poleceń kubectl, jak określono w warunku wstępnym nr 3.
Usługa Kubeapps jest włączona dla konta usługi kubeapps-operator. Musimy uzyskać token uwierzytelniający to konto usługi w klastrze.
Aby wydrukować token, uruchom następujące polecenie:
kubectl get secret __DOLLAR_SIGN__(kubectl get serviceaccount kubeapps-operator -o jsonpath='{.secrets[].name}') -o go-template='{{.data.token | base64decode}}' && echo
W rezultacie wydrukowany zostanie długi token, podobny do poniższego:
Skopiuj token. Następnie uruchom następujące polecenie, aby tunelować ruch między komputerem lokalnym a usługą Kubeapps:
kubectl port-forward -n kube-system svc/magnum-apps-kubeapps 8080:80
Wpisz localhost:8080 w przeglądarce, aby uzyskać dostęp do Kubeapps, wklej skopiowany wcześniej token i kliknij Submit:
Możesz teraz obsługiwać aplikacje Kubeapps:
Uruchom przykładową aplikację z Kubeapps
Kliknięcie przycisku „Catalog” powoduje wyświetlenie długiej listy aplikacji dostępnych do pobrania ze sklepu z aplikacjami Kubeapps.
Jako przykład zainstalujemy serwer WWW Apache i aby to zrobić, kliknij pole „Apache”. Należy pamiętać, że interfejs Kubeapps jest graficznym skrótem, który za kulisami instaluje wykres Helm na klastrze.
Po zapoznaniu się z wymaganiami wstępnymi i dodatkowymi informacjami na temat tego wykresu, kliknij Deploy w prawym górnym rogu:
Następny ekran z domyślnie włączoną zakładką „Visual Editor” pozwala na zdefiniowanie kilku głównych zmian w sposobie wdrażania usługi, np. określenie typu usługi lub liczby replik. Dostęp do bardziej szczegółowych konfiguracji (odzwierciedlających plik konfiguracyjny Helm chart values.yaml) jest również dostępny w zakładce GUI „YAML editor”.
Aby postępować zgodnie z artykułem, nie zmieniaj ustawień domyślnych, wprowadź tylko nazwę wdrożenia (w naszym przypadku apache-test) i naciśnij Deploy z dostępną wersją:
Ponieważ wdrożyliśmy usługę typu LoadBalancer, musimy poczekać kilka minut, aż zostanie ona wdrożona w chmurze. Po zakończeniu tego procesu możemy zobaczyć ekran potwierdzający zakończenie wdrożenia:
Ponadto w konsoli możemy dwukrotnie sprawdzić, czy usługa Apache, wraz z wdrożeniem i podem, została poprawnie wdrożona. Wykonaj następujące polecenia:
kubectl get deployments
kubectl get pods
kubectl get services
Wyniki będą podobne do tych:
Obecne ograniczenia
Zarówno Kubeapps, jak i wykresy Helm wdrażane przez ten program uruchamiający są projektami typu open source, które stale ewoluują. Wersje zainstalowane w chmurze NSIS Cloud zapewniają migawkę tego rozwoju, jako wygodną funkcję.
Oczekuje się, że nie wszystkie aplikacje można zainstalować jednym kliknięciem, a w każdym konkretnym przypadku wymagana będzie dodatkowa konfiguracja.
Jednym ze znanych ograniczeń jest to, że niektóre wykresy będą wymagać oświadczeń o trwałych woluminach RWM (ReadWriteMany) do prawidłowego działania. Obecnie trwałe woluminy RWM nie są natywnie dostępne w chmurze NSIS Cloud. Obejściem może być instalacja serwera NFS i wdrożenie StorageClass z provisionerem obsługującym RWM, np. przy użyciu projektu nfs-subdir-external-provisioner z GitHub.
Dla NFS na klastrze Kubernetes, zobacz Tworzenie i dostęp do serwera NFS z Kubernetes na NSIS.