Wdrażanie za pomocą narzędzia Helm
Pomyślnie utworzono i wypchnięliśmy zarówno obrazy przejściowe, jak i produkcyjne do wystąpienia usługi Azure Container Registry. Nadszedł czas, aby zautomatyzować wszystkie kroki i wykonać pracę potoku.
Obecnie należy ręcznie zmieniać pliki przy każdym uruchomieniu potoku, aby nie można było wdrażać automatycznie. Aby rozwiązać ten problem, możesz użyć wykresu helm do zarządzania wdrożeniami. W tej lekcji poznasz wykresy i szablony programu Helm.
Pakiety programu Helm
Helm to narzędzie do tworzenia pakietów typu open source podobne do menedżerów pakietów systemu Linux, takich jak APT i Yum. Program Helm może pomóc w zainstalowaniu cyklu życia aplikacji Kubernetes i zarządzaniu nim.
Program Helm służy do zarządzania wykresami Kubernetes, które są grupami jednego lub większej liczby obciążeń spakowanych z plikami konfiguracji i plikiem opisu wykresu. Po spakowaniu w pliku chart pliki można łatwo wdrożyć jako jednostkę w klastrze Kubernetes.
Jedną z zalet korzystania z programu Helm jest brak konieczności indywidualnego wdrażania plików. Aby wdrożyć wykres, możesz wydać jedno polecenie. Można nawet wdrożyć wiele zależnych elementów chart z zastosowaniem automatycznego rozwiązywania zależności.
Oto struktura typowego katalogu pakietu Helm:
- Plik Chart.yaml zawiera nazwę, opis i wersję wykresu.
- Katalog charts zawiera zależne wykresy.
- Katalog templates zawiera wszystkie pliki manifestu.
- Plik values.yaml zawiera wartości domyślne szablonów programu Helm.
Szablony programu Helm
Wyróżniającą się funkcją narzędzia Helm jest możliwość tworzenia szablonów i zarządzania nimi w celu przeprowadzania zautomatyzowanych wdrożeń. Szablony umożliwiają zautomatyzowanie plików manifestu i dodanie ich do potoku ciągłej integracji/ciągłego wdrażania. Plik szablonu to plik manifestu, który zawiera symbole zastępcze dla wartości zmiennych.
Przyjrzyj się następującemu przykładowi pliku deployment.yaml w katalogu kubernetes rozwidlenia witryny internetowej:
apiVersion: apps/v1
kind: Deployment
metadata:
name: contoso-website
spec:
selector:
matchLabels:
app: contoso-website
template:
metadata:
labels:
app: contoso-website
spec:
containers:
- image: !IMAGE!
name: contoso-website
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 80
name: http
Przepływ pracy zastępuje !IMAGE!
symbol zastępczy wystąpieniem usługi Container Registry i nazwą obrazu. W ręcznym przepływie pracy możesz uruchomić następujące polecenie, aby zastąpić !IMAGE!
symbol zastępczy, a następnie wydrukować wynik. Aby ręcznie uruchomić kod, możesz przekazać polecenie w potok, aby kubectl apply -f -
utworzyć obciążenia:
$ sed 's+!IMAGE!+'"$ACR_NAME"'/contoso-website+g' kubernetes/deployment.yaml
Jednak to rozwiązanie ręczne nie jest eleganckie ani wydajne. Korzystając z natywnego tworzenia szablonów programu Helm, możesz zastąpić !IMAGE!
zmienną {{.Values.containerImage}}
zamiast niej.
...
template:
...
spec:
containers:
- image: {{.Values.containerImage}}
...
Następnie uruchom polecenie helm install
, aby wskazać obraz i przekazać folder charts :
$ helm install contoso-website ./chart-location --set containerImage="$ACR_NAME/contoso-website"
Program Helm oferuje również funkcje szablonu dla bardziej złożonej logiki, na przykład w celu uwzględnienia wartości domyślnych i wymaganych w danym środowisku. Przejdź do następnej lekcji, aby utworzyć wykres helm, aby zwiększyć wydajność potoku ciągłej integracji/ciągłego wdrażania.