Jeśli masz doświadczenie w programowaniu, prawdopodobnie znasz pojęcie menedżera pakietów. Menedżery pakietów umożliwiają instalowanie zależności, aktualizowanie i cofanie wersji i tak dalej. W tym samouczku przyjrzymy się bardzo popularnemu menedżerowi pakietów dla Kubernetes, o nazwie Helm.
Helm pomaga w zarządzaniu aplikacjami Kubernetes. Za pomocą Helm można zdefiniować aplikację Kubernetes, określając jej metadane, zależności i konfiguracje. Helm może również instalować aplikacje w Kubernetes, a także aktualizować i cofać ich wersje. Na koniec możesz udostępnić swoją aplikację innym za pomocą pliku Helm. W tym samouczku pokażemy Ci, jak zainstalować Helm 3, a także jak konfigurować, aktualizować, wycofywać i zarządzać chartami i wydaniami w systemie operacyjnym Windows.
Zacznijmy!
Wymagania wstępne
Zanim rozpoczniemy samouczek, musisz upewnić się, że masz zainstalowane następujące elementy:
-
Jeśli nie masz skonfigurowanego Kubernetes w systemie Windows, najprostszym sposobem na rozpoczęcie pracy jest Docker Desktop. Przejdź do https://www.docker.com/products/docker-desktop. Pobierz i zainstaluj Docker Desktop. W tym samouczku będziemy pracować w systemie Windows. Dlatego będziemy musieli zainstalować WSL 2 Backend. Jest to podsystem Linux dla systemu Windows i umożliwia obsługę platformy Docker:

Gdy Docker Desktop będzie gotowy, przejdź do Settings -> Kubernetes, i zaznacz opcję Enable Kubernetes:


Aby sprawdzić, czy wszystko działa poprawnie, przejdź do terminala/PowerShella (w zależności od używanego systemu) i wpisz poniższe polecenie:
|
1 |
kubectl |
Jeśli zobaczysz poniższe dane wyjściowe, możesz kontynuować:

Alternatywnie, jeśli zdecydujesz się na pracę w systemie Ubuntu, możesz skorzystać z naszego szczegółowego przewodnika: How to Install and Use Kubernetes on Ubuntu 20.04.
Ponadto, zanim przejdziemy do procesu instalacji, przyjrzyjmy się kilku kluczowym pojęciom związanym z Helm.
-
Charty
Pliki YAML Kubernetes są pakowane w charty Helm.
-
Repozytoria Helm
Helm zapewnia obsługę repozytoriów. Repozytorium Helm to miejsce, w którym przechowywane są charty Helm, dzięki czemu inni mogą z nich korzystać. Helm umożliwia tworzenie własnych repozytoriów, a także obsługuje repozytoria firm trzecich.
-
Tiller
Tiller to komponent serwerowy Helm. Musi być zainstalowany w klastrze Kubernetes. Pobiera on chart Helm i odpowiednio konfiguruje klaster.
Możesz również zapoznać się z naszym wpisem na blogu, który zawiera szczegółowy przegląd Helm i wyjaśnia metody Helm ułatwiające wdrażanie aplikacji w Kubernetes.
Teraz jesteśmy gotowi, aby zacząć!
Krok 1: Zainstaluj Helm 3
Instalacja Helm 3 to prosty proces. Wydania są dostępne na stronie Helm w serwisie GitHub. Możesz pobrać wersję, której będziesz używać, w zależności od wybranego systemu operacyjnego. W tym samouczku będziemy korzystać z systemu operacyjnego Windows, więc w przypadku systemu Windows wykonaj poniższe kroki:
-
Na stronie GitHub pobierz pliki binarne Helm dla systemu Windows.
-
Po zakończeniu pobierania znajdziesz skompresowane archiwum w folderze Pobrane lub w miejscu, do którego zostało pobrane.
-
Następnie przenieś to archiwum w dogodne miejsce i rozpakuj je. W rozpakowanej zawartości powinieneś znaleźć plik helm.exe w rozpakowanej zawartości:

-
Skopiuj lokalizację folderu i dodaj ją do zmiennej PATH w zmiennych środowiskowych systemu.
-
Po zakończeniu otwórz terminal i wpisz poniższe polecenie:
|
1 |
helm |
Jeśli zobaczysz poniższe dane wyjściowe, instalacja Helm została zakończona pomyślnie. Możesz przejść do kolejnych kroków:

Krok 2: Skonfiguruj repozytoria i zainstaluj chart Helm
Helm obsługuje dostęp do repozytoriów i zarządzanie nimi. Repozytoria to miejsca, w których przechowywane są charty Helm. Początkowo Helm nie ma własnego repozytorium. Zamiast tego Helm zachęca menedżerów i specjalistów DevOps do tworzenia własnych repozytoriów. Oznacza to, że jeśli chcesz mieć MongoDB w swoim klastrze Kubernetes, musisz samodzielnie dodać je do repozytorium Helm. Aby ułatwić wyszukiwanie repozytoriów, możesz użyć Artifact.io. Jest to katalog open-source dla wszystkich chartów Helm, zarządzany przez CNCF.
Poniżej pokażemy, jak skonfigurować repozytorium oraz pobrać i zainstalować oprogramowanie. Jako przykład weźmiemy instalację MongoDB. Załóżmy, że chcesz zainstalować MongoDB na swoim klastrze Kubernetes. Wykonaj poniższe kroki, aby przeprowadzić instalację:
-
Najpierw przejdź do https://artifacthub.io.
-
Następnie wyszukaj MongoDB. Po wyszukaniu zobaczysz, że dostępnych jest wiele opcji. Ta, która nas interesuje, to MongoDB by Bitnami:

-
Po zakończeniu wyszukiwania zobaczysz różne opcje. Przy każdym charcie widoczny jest wydawca, wersja i inne istotne informacje. Gdy znajdziesz żądany chart, musisz go wybrać. Tutaj klikamy na MongoDB by Bitnami:

-
Teraz może rozpocząć się część techniczna. Jeśli spojrzysz na ogólny opis, zobaczysz, że dostępny jest dobry przewodnik dla każdego, kto chce zainstalować dowolną z usług. Możesz sprawdzić różne opcje, konfiguracje, parametry, sposób usunięcia chartu i wszystko inne, o czym możesz potrzebować informacji. Znajdź przycisk Install i kliknij go:

-
Oto wszystko, czego potrzebujesz do zainstalowania MongoDB. Najpierw musisz dodać repozytorium a następnie zainstalować chart. Aby dodać repozytorium, otwórz terminal i wpisz polecenie:
|
1 |
helm repo add bitnami https://charts.bitnami.com/bitnami |
Zobaczysz poniższy wynik:

Teraz, gdy masz już skonfigurowane repozytorium, musisz zainstalować chart. Skopiuj polecenie z okna dialogowego, a następnie je uruchom:
|
1 |
helm install my-mongodb bitnami/mongodb --version 10.23.10 |
Po zakończeniu procesu wszystko jest gotowe z MongoDB.
Krok 3: Zarządzanie wydaniami
W tworzeniu oprogramowania zarządzanie wydaniami jest kluczowe. Zawsze nadchodzi moment, kiedy trzeba zaktualizować wersję lub cofnąć się do poprzedniej. Na szczęście zarządzanie wydaniami w Helm jest stosunkowo prostym procesem. Helm zachowuje numery wersji, dzięki czemu zawsze można powrócić do poprzedniej wersji. Podobnie, załóżmy, że Twoja aplikacja jest wdrożona i działa produkcyjnie, a Ty musisz zmienić konfigurację – Helm również to obsługuje. Poniżej omówimy kilka dobrych praktyk, które pomogą Ci przeprowadzić te operacje.
-
Jak zaktualizować aplikację
Załóżmy, że w Twoim pliku values.YAML wskazujesz, że musisz mieć uruchomione dwie instancje aplikacji. Może to wynikać z faktu, że Twoja aplikacja musi być wysoce dostępna. Jednak później zdajesz sobie sprawę, że aplikacja wymaga trzech instancji. Bez Helma musiałbyś najpierw wyłączyć aplikację, a następnie ją skonfigurować i ponownie wdrożyć. Używając Helma, możesz najpierw wprowadzić zmiany w pliku values.YAML a następnie po prostu wykonać poniższe polecenie. W katalogu, w którym znajdują się pliki Helma, wykonaj następujące polecenie:
|
1 |
helm upgrade <app-name> |
-
Jak wycofać wydanie
Załóżmy teraz, że Twoje wydanie uległo awarii. Być może skonfigurowałeś błędne numery portów lub ścieżki. Aby powrócić do dowolnej poprzedniej wersji, wystarczy wykonać poniższe polecenie, a Helm przywróci wydanie do poprzedniej wersji:
|
1 |
C:\> helm rollback <release> |
Helm zajmie się wszystkimi wydaniami i wersjonowaniem. To jedna z największych zalet korzystania z Helma z Kubernetesem. Aby zobaczyć wszystkie wydania dowolnej aplikacji, wykonaj poniższe polecenie w katalogu zawierającym charty Helm i pliki YAML:
|
1 |
helm history RELEASE |
Krok 4: Utwórz własny chart
Na koniec, gdy już dobrze czujesz się z Helmem i rozumiesz, jak działa, nadszedł czas na stworzenie własnego chartu. Tworząc własny, niestandardowy chart, możesz łatwo dystrybuować swoją aplikację, a także hostować ją w dowolnym repozytorium. Tworzenie własnego chartu jest dość prostym procesem, jeśli wykonasz kroki, które opisujemy poniżej. Najpierw otwórz terminal i wykonaj poniższe polecenie:
|
1 |
helm create <chart-name> |
Spowoduje to utworzenie katalogu o podanej nazwie. Używamy nazwy my-app. Zobaczmy zawartość folderu:
|
1 2 |
cd my-app ls |
Otrzymasz poniższą strukturę:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
charts/ templates/ ├─ tests/ │ ├─ test-connection.yaml ├─ deployment.yaml ├─ hpa.yaml ├─ ingress.yaml ├─ NOTES.txt ├─ service.yaml ├─ serviceaccount.yaml ├─ _helpers.tpl ├─ .helmignore ├─ Chart.yaml ├─ values.yaml |
Oto podsumowanie zawartości wyjściowej:
- folder charts – Służy do dodawania zależnych wykresów.
- folder templates – Konfiguracja, która zostanie wdrożona w klastrze.
- Plik YAML – Zarys struktury wykresu Helm.
- Plik YAML – Informacje o formatowaniu do konfiguracji wykresu.
Następnie wykonaj poniższe kroki, aby zainstalować i skonfigurować swój wykres:
-
Skonfiguruj obraz i pobieranie (pull)
Otwórz plik values.YAML . Znajdź w nim węzeł image. Następnie możesz go skonfigurować według własnego uznania. Możliwe wartości to IfNotPresent, Always, Latest. Pełny zestaw wartości można znaleźć w oficjalnej dokumentacji.
-
Nadpisz nazwę wykresu
Ten krok jest opcjonalny, więc możesz go pominąć, jeśli chcesz:

-
Nazwa usługi
Otwórz plik
values.YAML i zlokalizuj
serviceName. Następnie dodaj żądaną nazwę. Dobrze jest mieć przygotowaną nazwę przed instalacją wykresu:

-
Zainstaluj wykres
Na koniec, aby zainstalować wykres, uruchom poniższe polecenie:
|
1 |
helm install <nadpisanie pełnej nazwy> <nazwa wykresu>/ --values <nazwa wykresu>/values.yaml |
Zalecamy dokładne zapoznanie się ze wszystkimi dostępnymi opcjami konfiguracji wykresu przed wdrożeniem go w klastrze.
Dlaczego programiści uwielbiają Helm
Helm zyskuje popularność wśród programistów i specjalistów DevOps, którzy muszą od czasu do czasu uruchamiać i zatrzymywać wdrożenia. Oto niektóre z głównych zalet Helm:
-
Helm upraszcza proces wdrażania. Nie wprowadza niczego nowego do nauki, raczej sprawia, że istniejące wdrożenia YAML są łatwe do skonfigurowania przez użytkownika.
-
Zamiast częstej zmiany konfiguracji, takiej jak liczba klastrów czy portów, Helm ułatwia jej konfigurację. Jedyne, co użytkownik musi zrobić, to zaktualizować wartości w pliku values.YAML .
-
Helm umożliwia udostępnianie aplikacji innym użytkownikom poprzez pakowanie jej do repozytoriów.
Podsumowanie
W tym samouczku omówiliśmy, jak od podstaw skonfigurować menedżer pakietów Helm w systemie Windows. Przyjrzeliśmy się różnym kluczowym pojęciom, które należy jasno zrozumieć, aby w pełni wykorzystać możliwości Helm. Zobaczyliśmy również różne funkcjonalności dostępne w zbadanych repozytoriach Helm. Powinieneś teraz czuć się swobodnie z Helm i wdrożyć go w swoim następnym projekcie/wdrożeniu Kubernetes.
Aby poszerzyć swoją wiedzę na temat Kubernetes i jego funkcjonalności, możesz zapoznać się z innymi samouczkami na naszym blogu:
- Wprowadzenie do Kubernetes
- Jak utworzyć klaster Kubernetes za pomocą Kubeadm na Ubuntu 18.04
- Wdrażanie aplikacji PHP w klastrze Kubernetes z Ubuntu 18.04
Udanego korzystania!
Komentarze
Brak komentarzy. Bądź pierwszy.