Podstawy programu Helm

Ukończone

Podczas wdrażania, przechowywania wersji i aktualizowania aplikacji należy upewnić się, że masz poprawne wersje bibliotek i konfiguracji oprogramowania, aby aplikacja działa zgodnie z oczekiwaniami.

Załóżmy, że twój zespół programistyczny zdecyduje się wdrożyć witrynę internetową firmy zajmującej się sklepem dla zwierząt domowych na platformie Kubernetes. W ramach tego procesu zespół tworzy pliki wdrożenia, usługi i ruchu przychodzącego oparte na technologii YAML. Kodujesz i przechowujesz informacje w każdym pliku dla każdego środowiska docelowego ręcznie. Jednak utrzymywanie trzech plików dla każdego środowiska jest kłopotliwe i zwiększa złożoność w miarę zwiększania się aplikacji.

A diagram that shows a container deployed to a Kubernetes node using a deployment, a service, and an ingress YAML file.

Za pomocą programu Helm można uprościć proces wdrażania aplikacji i uniknąć zakodowanych na stałe zmiennych i ustawień wdrażania.

Co to jest program Helm?

Helm to menedżer pakietów dla platformy Kubernetes, który łączy wszystkie zasoby aplikacji i informacje o wdrożeniu w jednym pakiecie wdrożeniowym.

A diagram shows a containerized app deployed to a Kubernetes cluster using a Helm chart.

Program Helm można traktować podobnie do Menedżer pakietów systemu Windows w systemie Windows, narzędzia Advanced Package Tool (apt) w systemie Linux lub oprogramowania Homebrew w systemie macOS. Najpierw określasz nazwę aplikacji, którą chcesz zainstalować, zaktualizować lub usunąć, a następnie program Helm zajmuje się wykonaniem tego procesu.

Program Helm nie ogranicza się do instalowania pojedynczej aplikacji naraz. Helm umożliwia tworzenie plików skryptów YAML z szablonem w formacie do odczytu przez użytkownika w celu zarządzania wdrożeniem aplikacji. Pliki szablonów pozwalają określić wszystkie wymagane zależności, mapowanie konfiguracji oraz klucze tajne używane do skutecznego zarządzania wdrożeniem aplikacji.

Program Helm używa czterech składników do zarządzania wdrożeniami aplikacji w klastrze Kubernetes:

  • Klient programu Helm
  • Pakiety programu Helm
  • Wydania programu Helm
  • Repozytoria programu Helm

Co to jest klient programu Helm?

Klient programu Helm jest zainstalowanym klientem binarnym odpowiedzialnym za tworzenie i przesyłanie plików manifestu wymaganych do wdrożenia aplikacji Kubernetes. Klient jest odpowiedzialny za interakcję między użytkownikiem a klastrem Kubernetes.

A diagram shows the communication between three Helm components to create a Helm release; the client, chart, and repository.

Klient Helm jest dostępny dla wszystkich głównych systemów operacyjnych i jest instalowany na komputerze klienckim. Na platformie Azure klient helm jest wstępnie zainstalowany w usłudze Cloud Shell i obsługuje wszystkie funkcje zabezpieczeń, tożsamości i autoryzacji platformy Kubernetes.

Uwaga

W tym module przyjęto założenie, że jest używany program Helm w wersji 3. Aby sprawdzić wydanie Helm uruchomione na urządzeniu klienckim, możesz uruchomić polecenie helm version. Jeśli korzystasz z programu Helm v2, pamiętaj, że niektóre parametry polecenia w tym module będą się różnić.

Co to jest pakiet Helm?

Pakiet Helm to szablonowy pakiet wdrożeniowy, który opisuje powiązany zestaw zasobów Kubernetes. Zawiera wszystkie informacje wymagane do kompilowania i wdrażania plików manifestu w celu uruchomienia aplikacji w klastrze Kubernetes.

Pakiet Helm składa się z kilku plików i folderów opisujących ten pakiet. Niektóre składniki są wymagane, a niektóre są opcjonalne. To, które zostaną zastosowane, zależy od wymagań dotyczących konfiguracji konkretnej aplikacji.

Poniższa lista zawiera opis składników plików i folderów wykresu helm z wymaganymi elementami pogrubionymi:

Plik/folder opis
Chart.yaml Plik YAML zawierający informacje o pakiecie.
values.yaml Domyślne wartości konfiguracji pakietu.
templates/ Folder zawierający szablony wdrażania dla pakietu.
LICENSE Zwykły plik tekstowy zawierający licencję dla pakietu.
README.md Plik markdown zawierający instrukcje dotyczące używania pakietu.
values.schema.json** Plik schematu umożliwiający stosowanie struktury w pliku values.yaml.
charts/ Folder zawierający wszystkie pakiety podrzędne względem pakietu głównego.
crds/ Niestandardowe definicje zasobów.
templates/Notes.txt Plik tekstowy zawierający uwagi dotyczące użycia szablonu.

Co to jest wydanie programu Helm?

Wydanie programu Helm to aplikacja lub grupa aplikacji wdrożonych przy użyciu wykresu. Za każdym razem, gdy instalujesz pakiet, w klastrze tworzone jest nowe wystąpienie aplikacji. Każde wystąpienie ma nazwę wydania, która umożliwia interakcję z określonym wystąpieniem aplikacji.

A diagram shows the communication between three Helm components to create a Helm release: the client, chart, and repository. The release is highlighted.

Załóżmy na przykład, że na klastrze Kubernetes zainstalowano dwa wystąpienia Nginx przy użyciu wykresu. Później decydujesz się uaktualnić pierwsze wystąpienie serwera Nginx, ale drugie pozostawiasz bez zmian. Ponieważ obie wersje różnią się od siebie, można uaktualnić pierwszą wersję bez wpływu na drugą.

Co to jest repozytorium Helm?

Repozytorium programu Helm to dedykowany serwer HTTP, który przechowuje informacje na wykresach programu Helm. Serwer hostuje plik opisujący wykresy i miejsce pobierania każdego wykresu.

A diagram shows the communication between three Helm components to create a Helm release: the client, chart, and repository. The repository is highlighted.

Projekt programu Helm hostuje wiele publicznych pakietów. Dostępnych jest też wiele repozytoriów, które umożliwiają ponowne użycie pakietów. Repozytoria Helm upraszczają odnajdywanie i ponowne wykorzystywanie pakietów Helm.

Zalety korzystania z programu Helm

Helm wprowadza szereg korzyści, które upraszczają proces wdrażania aplikacji i zwiększają produktywność w zakresie cyklu tworzenia i wdrażania aplikacji natywnych dla chmury. Dzięki programowi Helm wydania aplikacji posiadają następujące cechy:

  • Powtarzalne
  • Niezawodne
  • Zarządzanie w wielu i złożonych środowiskach oraz
  • Możliwość wielokrotnego użycia przez różne zespoły programistyczne.

Pakiet Helm standaryzuje wdrażanie aplikacji przy użyciu spakowanej logiki szablonu sparametryzowanej przez ustawienie wartości wejściowych. Ten projekt pakietu opartego na szablonach zapewnia niezależne od środowiska podejście do wdrażania i udostępniania aplikacji natywnych dla chmury.