Wdrażanie za pomocą narzędzia Helm

Ukończone

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:

Screenshot that shows an example of a Helm chart tree.

  • 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.

Sprawdź swoją wiedzę

1.

Co to jest program Helm?

2.

Co sprawia, że program Helm jest szczególnie przydatny w potoku ciągłej integracji/ciągłego wdrażania?