Nasazení chartů Helm pomocí GitOps v clusteru Kubernetes s podporou Azure Arc
Důležité
Tento článek je určený pro GitOps s flux v1. GitOps s flux v2 je teď k dispozici pro clustery Kubernetes s podporou Azure Arc a Azure Kubernetes Service (AKS). Přejděte do kurzu pro GitOps s flux v2. Doporučujeme migrovat na Flux v2 co nejdříve.
Podpora prostředků konfigurace clusteru založených na flux v1 vytvořených před 1. lednem 2024 skončí 24. května 2025. Od 1. ledna 2024 nebudete moct vytvářet nové prostředky konfigurace clusteru založené na fluxu v1. Helm je opensourcový nástroj pro správu balíčků, který vám pomůže s instalací a správou životního cyklu aplikací Kubernetes. Podobně jako správci balíčků pro Linux, jako je APT a Yum, se Helm používá ke správě grafů Kubernetes, což jsou balíčky předem nakonfigurovaných prostředků Kubernetes.
V tomto článku se dozvíte, jak nakonfigurovat a používat Helm s Kubernetes s podporou Azure Arc.
Požadavky
Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
Existující připojený cluster Kubernetes s podporou Azure Arc.
- Pokud jste cluster ještě nepřipojili, projděte si naši Připojení rychlý start ke clusteru Kubernetes s podporou Azure Arc.
Porozumění výhodám a architektuře této funkce Přečtěte si další informace o konfiguracích a GitOps – článek Kubernetes s podporou Azure Arc.
k8s-configuration
Nainstalujte rozšíření Azure CLI verze >= 1.0.0:az extension add --name k8s-configuration
Přehled používání GitOps a Helmu s kubernetes s podporou Azure Arc
Operátor Helm poskytuje rozšíření fluxu, které automatizuje vydání Helm Chartu. Verze Helm Chartu je popsaná prostřednictvím vlastního prostředku Kubernetes s názvem HelmRelease. Flux synchronizuje tyto prostředky z Gitu do clusteru, zatímco operátor Helm zajistí, aby byly v prostředcích vydány charty Helm.
Ukázkové úložiště použité v tomto článku je strukturované následujícím způsobem:
├── charts
│ └── azure-arc-sample
│ ├── Chart.yaml
│ ├── templates
│ │ ├── NOTES.txt
│ │ ├── deployment.yaml
│ │ └── service.yaml
│ └── values.yaml
└── releases
└── app.yaml
V úložišti Git máme dva adresáře: jeden obsahuje Helm Chart a jeden obsahující konfiguraci vydaných verzí. releases
V adresáři app.yaml
obsahuje konfiguraci HelmRelease, jak je znázorněno níže:
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
Konfigurace verze Helm obsahuje následující pole:
Pole | Popis |
---|---|
metadata.name |
Povinné pole. Je potřeba dodržovat zásady vytváření názvů Kubernetes. |
metadata.namespace |
Volitelné pole. Určuje, kde se verze vytvoří. |
spec.releaseName |
Volitelné pole. Pokud není zadaný název vydané verze, bude $namespace-$name . |
spec.chart.path |
Adresář obsahující graf (vzhledem k kořenovému adresáři úložiště). |
spec.values |
Přizpůsobení výchozích hodnot parametrů ze samotného grafu |
Možnosti zadané v HelmRelease spec.values
přepíší možnosti zadané ze values.yaml
zdroje grafu.
Další informace o HelmRelease najdete v oficiální dokumentaci operátora Helm.
Vytvoření konfigurace
Pomocí rozšíření Azure CLI propojte k8s-configuration
připojený cluster s ukázkovým úložištěm Git. Pojmenujte tuto azure-arc-sample
konfiguraci a nasaďte operátor Flux v arc-k8s-demo
oboru názvů.
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 konfigurace
Pokud chcete přizpůsobit vytvoření konfigurace, přečtěte si další parametry.
Ověření konfigurace
Pomocí Azure CLI ověřte, že se konfigurace úspěšně vytvořila.
az k8s-configuration show --name azure-arc-sample --cluster-name AzureArcTest1 --resource-group AzureArcTest --cluster-type connectedClusters
Prostředek konfigurace se aktualizuje o stav dodržování předpisů, zprávy a informace o ladění.
{
"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"
}
Ověření aplikace
Spusťte následující příkaz a přejděte do localhost:8080
prohlížeče a ověřte, že je aplikace spuštěná.
kubectl port-forward -n arc-k8s-demo svc/arc-k8s-demo 8080:8080
Další kroky
Použití konfigurací clusteru ve velkém měřítku pomocí Služby Azure Policy