Szablony są niezbędne do automatyzacji opartej na GitOps
Opublikowany: 2022-05-27Spis treści
Automatyzacja oparta na GitOps
Kubernetes zasłynął z łatwości skalowania i administrowania aplikacjami kontenerowymi. Umożliwia sortowanie i zarządzanie węzłami, elementami, kontenerami, usługami i mapami konfiguracji przez cały cykl życia aplikacji. Trudno było osiągnąć taką elastyczność i kontrolę za pomocą skryptów.
Ale dzięki zapowiedzianemu podejściu Kubernets do infrastruktury, możesz zdefiniować precyzyjne zmiany na dowolnym poziomie. Kubernetes umożliwia integrację wielu narzędzi w celu ułatwienia automatycznego planowania, wdrażania i monitorowania kontenerów.
Jednym z takich narzędzi jest Helm, framework automatyzacji zaadoptowany przez CNCF, który stał się popularny nie tylko w kręgach Kubernetes, ale także w ekosystemie GitOps. W tym poście przyjrzymy się, jak Helm pomaga zautomatyzować aplikacje natywne dla chmury za pośrednictwem Kubernetes i GitOps.
Co to jest Hełm?
Chociaż określany jako menedżer pakietów, Helm jest potężnym narzędziem do automatyzacji instalacji, wdrażania, uaktualniania i zarządzania aplikacjami Kubernetes. Zarządzanie Manifestem Kubernetes to zadanie, które staje się coraz bardziej złożone w różnych systemach. Dla pojedynczego sortowania wymagane jest zduplikowanie wielu plików YAML i wartości kodu twardego. Kubernetes potrzebował lepszego sposobu zarządzania plikami YAML za pomocą prostego formatu pakowania, który doprowadził do stworzenia wykresów steru. Jednak cel Hełmu wykracza poza szablon.
Wykresy
Wykresy Helm to jednostki, których można używać w aplikacjach Kubernetes. Każdy wykres może zawierać pliki, metadane i infrastrukturę aplikacji. Wykresy napisane w Go będą przechowywane w określonych katalogach szablonów z powiązanymi zmiennymi, wersjami i opisami. Przechowując te wykresy jako archiwa w repozytorium, możesz udostępniać je całemu zespołowi programistów do ponownego wykorzystania.
Po zainstalowaniu kopii wykresu w klastrze Kubernetes jest ona nazywana danymi wyjściowymi. Za każdym razem, gdy używany jest wykres, tworzona jest nowa wersja, co może się zdarzyć wielokrotnie. Publikacje pomagają monitorować i instalować wykresy.
Poniżej znajduje się kilka ważnych zasad, które należy znać podczas pracy z Helmem.
Chart.YAML: Główny plik zawierający opis twojego wykresu
Values.YAML: Plik zawierający domyślne wartości Twojego wykresu
Wykresy: Katalog z pod-wykresami
Szablony: Katalog źródeł Kubernetes zdefiniowany jako szablony
Szablony
Folder szablonów to kluczowa funkcja Helm. Zawiera pliki konfiguracyjne aplikacji, które są następnie stosowane do klastra. Pliki w katalogu szablonów nazywają swoje wartości z values.YAML.
Dlaczego Hełm?
Helm dodaje wielką wartość do środowiska ciągłego dostarczania, ponieważ przynosi następujące korzyści.
Większa produktywność:
Helm (wraz z innymi narzędziami sortującymi, takimi jak Flux) umożliwia sortowanie oprogramowania za pomocą jednego przycisku lub pojedynczego polecenia. Pozwoli to Twojemu zespołowi skupić się wyłącznie na rozwoju oprogramowania.
Ułatwia proces:
Koncepcja wykresów umożliwia kopiowanie tego samego wykresu w całym potoku — opracowywaniu, testowaniu i produkcji — lub w przepływie pracy różnych zespołów. To znacznie zmniejsza problem.
Pomiar:
Wykresy są zaprojektowane tak, aby były zgodne z architekturą klastra Kubernetes, co ułatwia skalowalność.
Łatwa wypłata:
Helm zarządza wszystkimi wersjami, ułatwiając wprowadzanie zmian, gdy pojawiają się problemy.
GitOps wykorzystuje zarówno Helm, jak i Flux
Helm może zarządzać złożonymi wydaniami i uprościć wszystko, co mierzysz. Jednak w miarę wprowadzania zmian Helm będzie potrzebował dodatkowych narzędzi do aktualizacji klastra Kubernetes.
Flux to doskonałe rozwiązanie wypełniające dla Helm, ponieważ działa jako pomost między Helm a wszystkimi ważnymi repozytoriami Git, z których definiowany jest cały klaster Kubernetes i specyfikacje narzędzi.
Flux to rozwiązanie do automatyzacji wdrażania oparte na modelu GitOps, co sprawia, że Git jest punktem wyjścia i prawdziwym źródłem wszelkich zmian. Flux pozwala zachować spójność między repozytoriami kodu a klastrami Kubernetes oraz automatyzuje sortowanie po wprowadzeniu zmian w kodzie.
W skrócie, Flux Helm automatyzuje publikacje wykresów, synchronizując wykresy z Git do klastra Kubernetes.
Jak Flux współpracuje z Helmem?
Aby używać Flux jako operatora GitOps, zapisujesz wszystkie wykresy Helm wraz z ich plikami YAML i niestandardowymi zasobami Kubernetes w repozytorium Git. Ponadto umieszczasz niezmienne obrazy tych źródeł w rejestrze kontenerów.
Po wprowadzeniu zmian w Git za pomocą żądania „Pull”, Flux sprawdzi Twoje repozytorium i udostępni niezbędne zasoby. Zmiany są następnie włączane do klastra produkcyjnego. To oczywiście upraszcza proces i możesz zrobić o wiele więcej – na przykład testy palenia lub zatwierdzanie zmian specyficznych dla SRE – ale na razie zachowajmy prostotę.
Jeśli chcesz dowiedzieć się więcej o tym, jak Flux 2 i Helm współpracują ze sobą, aby zwiększyć szybkość i niezawodność przy jednoczesnym skróceniu czasu bezczynności, zapoznaj się z wykładem na YouTube Scotta Rigby'ego.
Wniosek
Hełm znacznie zmniejsza trudność w prowadzeniu Kubernetesa. Dodaje wielką wartość do potoku GitOps dzięki koncepcji wykresów lub szablonów. To powiedziawszy, istnieją inne wymagania poza szablonami, a mianowicie kompleksowa automatyzacja wdrażania. W tym miejscu potrzebne jest narzędzie takie jak Flux (lub Weave GitOps, wbudowane w Flux), aby używać steru. Ponadto rozwiązanie podobne do Magalix zapewnia, że zwolnienia Helm są kompatybilne i bezpieczne.
Weave KitApps to rozwiązanie do ciągłego dostarczania, które pozwala zarządzać Kubernetes na dużą skalę. Ułatwia to każdej firmie przyjęcie i wdrożenie GitOps. Weave GitOps upraszcza klaster funkcjonalny za pomocą poleceń, takich jak „instalacja gitops”, aby włączyć GitOps i „dodaj aplikację gitops”, które można dodać do aplikacji. Te polecenia oddzielają podstawowe złożone zadania, które w przeciwnym razie są zaangażowane w automatyzację wdrażania. Weave GitOps łączy cały potok GitOps, w tym Helm, Flux, Magalix i inne — dzięki czemu możesz zacząć korzystać z GitOps bez marnowania czasu.
jak-zostać-sprzedawcą-amazon-w-łatwych-krokach
digital-marketing-dla-cateringu