Wdrażanie pakietów Helm przy użyciu metodyki GitOps w klastrze Kubernetes z obsługą usługi Azure Arc
Ważne
Ten artykuł dotyczy metodyki GitOps z platformą Flux w wersji 1. Usługa GitOps z rozwiązaniem Flux v2 jest teraz dostępna dla klastrów Kubernetes i Azure Kubernetes Service (AKS) z obsługą usługi Azure Arc; Przejdź do samouczka dotyczącego metodyki GitOps z rozwiązaniem Flux w wersji 2. Zalecamy jak najszybsze przeprowadzenie migracji do wersji Flux v2 .
Obsługa zasobów konfiguracji klastra opartych na platformie Flux w wersji 1 utworzonych przed 1 stycznia 2024 r. zakończy się 24 maja 2025 r. Od 1 stycznia 2024 r. nie będzie można utworzyć nowych zasobów konfiguracji klastra opartego na platformie Flux w wersji 1. Helm to narzędzie do tworzenia pakietów typu open source, które ułatwia instalowanie cyklu życia aplikacji Kubernetes i zarządzanie nim. Podobnie jak menedżerowie pakietów systemu Linux, tacy jak APT i Yum, program Helm służy do zarządzania wykresami Kubernetes, które są pakietami wstępnie skonfigurowanych zasobów Kubernetes.
W tym artykule pokazano, jak skonfigurować narzędzie Helm i używać go z platformą Kubernetes z obsługą usługi Azure Arc.
Wymagania wstępne
Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
Istniejący połączony klaster Kubernetes z włączoną usługą Azure Arc.
- Jeśli klaster nie został jeszcze połączony, zapoznaj się z naszymi Połączenie przewodnik Szybki start dotyczący klastra Kubernetes z obsługą usługi Azure Arc.
Zrozumienie korzyści i architektury tej funkcji. Przeczytaj więcej w artykule Configurations and GitOps - Azure Arc-enabled Kubernetes (Konfiguracje i GitOps — platforma Kubernetes z obsługą usługi Azure Arc).
Zainstaluj rozszerzenie interfejsu
k8s-configuration
wiersza polecenia platformy Azure w wersji >= 1.0.0:az extension add --name k8s-configuration
Omówienie korzystania z usług GitOps i Helm z platformą Kubernetes z włączoną usługą Azure Arc
Operator programu Helm udostępnia rozszerzenie flux, które automatyzuje wydania pakietu Helm Chart. Wydanie pakietu Helm Chart zostało opisane za pośrednictwem niestandardowego zasobu Kubernetes o nazwie HelmRelease. Platforma Flux synchronizuje te zasoby z usługi Git z klastrem, a operator programu Helm upewnia się, że wykresy programu Helm są zwalniane zgodnie z wymaganiami w zasobach.
Przykładowe repozytorium używane w tym artykule jest ustrukturyzowane w następujący sposób:
├── charts
│ └── azure-arc-sample
│ ├── Chart.yaml
│ ├── templates
│ │ ├── NOTES.txt
│ │ ├── deployment.yaml
│ │ └── service.yaml
│ └── values.yaml
└── releases
└── app.yaml
W repozytorium Git mamy dwa katalogi: jeden zawierający pakiet Helm Chart i jeden zawierający konfigurację wydań. releases
W katalogu zawiera app.yaml
konfigurację programu HelmRelease pokazaną poniżej:
apiVersion: helm.fluxcd.io/v1
kind: HelmRelease
metadata:
name: azure-arc-sample
namespace: arc-k8s-demo
spec:
releaseName: arc-k8s-demo
chart:
git: https://github.com/Azure/arc-helm-demo
ref: master
path: charts/azure-arc-sample
values:
serviceName: arc-k8s-demo
Konfiguracja wydania programu Helm zawiera następujące pola:
Pole | Opis |
---|---|
metadata.name |
Pole obowiązkowe. Musi przestrzegać konwencji nazewnictwa platformy Kubernetes. |
metadata.namespace |
Pole opcjonalne. Określa miejsce utworzenia wydania. |
spec.releaseName |
Pole opcjonalne. Jeśli nazwa wydania nie zostanie podana, będzie to $namespace-$name . |
spec.chart.path |
Katalog zawierający wykres (względem katalogu głównego repozytorium). |
spec.values |
Dostosowania użytkownika domyślnych wartości parametrów z samego wykresu. |
Opcje określone w wersji Helm Przesłonią spec.values
opcje określone w values.yaml
źródle wykresu.
Więcej informacji na temat wersji helm można uzyskać w oficjalnej dokumentacji programu Helm Operator.
Tworzenie konfiguracji
Za pomocą rozszerzenia k8s-configuration
interfejsu wiersza polecenia platformy Azure dla programu połącz połączony klaster z przykładowym repozytorium Git. Nadaj tej konfiguracji nazwę azure-arc-sample
i wdróż operator Flux w arc-k8s-demo
przestrzeni nazw.
az k8s-configuration create --name azure-arc-sample --cluster-name AzureArcTest1 --resource-group AzureArcTest --operator-instance-name flux --operator-namespace arc-k8s-demo --operator-params='--git-readonly --git-path=releases' --enable-helm-operator --helm-operator-chart-version='1.2.0' --helm-operator-params='--set helm.versions=v3' --repository-url https://github.com/Azure/arc-helm-demo.git --scope namespace --cluster-type connectedClusters
Parametry konfiguracji
Aby dostosować tworzenie konfiguracji, dowiedz się więcej o dodatkowych parametrach.
Weryfikacja konfiguracji
Za pomocą interfejsu wiersza polecenia platformy Azure sprawdź, czy konfiguracja została pomyślnie utworzona.
az k8s-configuration show --name azure-arc-sample --cluster-name AzureArcTest1 --resource-group AzureArcTest --cluster-type connectedClusters
Zasób konfiguracji jest aktualizowany przy użyciu informacji o stanie zgodności, komunikatach i debugowaniu.
{
"complianceStatus": {
"complianceState": "Installed",
"lastConfigApplied": "2019-12-05T05:34:41.481000",
"message": "{\"OperatorMessage\":null,\"ClusterState\":null}",
"messageLevel": "3"
},
"enableHelmOperator": "True",
"helmOperatorProperties": {
"chartValues": "--set helm.versions=v3",
"chartVersion": "1.2.0"
},
"id": "/subscriptions/57ac26cf-a9f0-4908-b300-9a4e9a0fb205/resourceGroups/AzureArcTest/providers/Microsoft.Kubernetes/connectedClusters/AzureArcTest1/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/azure-arc-sample",
"name": "azure-arc-sample",
"operatorInstanceName": "flux",
"operatorNamespace": "arc-k8s-demo",
"operatorParams": "--git-readonly --git-path=releases",
"operatorScope": "namespace",
"operatorType": "Flux",
"provisioningState": "Succeeded",
"repositoryPublicKey": "",
"repositoryUrl": "https://github.com/Azure/arc-helm-demo.git",
"resourceGroup": "AzureArcTest",
"type": "Microsoft.KubernetesConfiguration/sourceControlConfigurations"
}
Weryfikowanie aplikacji
Uruchom następujące polecenie i przejdź do localhost:8080
w przeglądarce, aby sprawdzić, czy aplikacja jest uruchomiona.
kubectl port-forward -n arc-k8s-demo svc/arc-k8s-demo 8080:8080
Następne kroki
Stosowanie konfiguracji klastra na dużą skalę przy użyciu usługi Azure Policy.