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-configurationpř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