Megosztás a következőn keresztül:


Helm-diagramok üzembe helyezése a GitOps használatával egy Azure Arc-kompatibilis Kubernetes-fürtön

Fontos

Ez a cikk a Flux v1-et tartalmazó GitOpshoz készült. A Flux v2-vel rendelkező GitOps mostantól elérhető az Azure Arc-kompatibilis Kuberneteshez és az Azure Kubernetes Service-fürtökhöz; nyissa meg a GitOps és a Flux v2 oktatóanyagát. Javasoljuk , hogy mihamarabb migráljon a Flux v2-re .

A 2024. január 1. előtt létrehozott Flux v1-alapú fürtkonfigurációs erőforrások támogatása 2025. május 24-én megszűnik. 2024. január 1-től kezdődően nem hozhat létre új Flux v1-alapú fürtkonfigurációs erőforrásokat. A Helm egy nyílt forráskódú csomagoló eszköz, amely a Kubernetes-alkalmazások telepítését és életciklusának kezelését segíti. A Linux-csomagkezelőkhöz, például az APT-hez és a Yumhoz hasonlóan a Helm a Kubernetes-diagramok kezelésére szolgál, amelyek előre konfigurált Kubernetes-erőforrások csomagjai.

Ez a cikk bemutatja, hogyan konfigurálhatja és használhatja a Helmt az Azure Arc-kompatibilis Kubernetes-lel.

Előfeltételek

A GitOps és a Helm Azure Arc-kompatibilis Kubernetes-lel való használatának áttekintése

A Helm-operátor a Flux bővítményét biztosítja, amely automatizálja a Helm Chart kiadásait. A Helm-diagram kiadását egy HelmRelease nevű egyéni Kubernetes-erőforrás ismerteti. A Flux szinkronizálja ezeket az erőforrásokat a Gitből a fürtbe, míg a Helm-operátor gondoskodik arról, hogy a Helm-diagramok az erőforrásokban megadott módon legyenek felszabadítva.

A cikkben használt példaadattár a következő módon van strukturálva:

├── charts
│   └── azure-arc-sample
│       ├── Chart.yaml
│       ├── templates
│       │   ├── NOTES.txt
│       │   ├── deployment.yaml
│       │   └── service.yaml
│       └── values.yaml
└── releases
    └── app.yaml

A Git-adattárban két könyvtár található: az egyik helm-diagramot és egy kiadási konfigurációt tartalmaz. releases A címtárban a app.yaml HelmRelease konfigurációja található, az alábbiakban látható:

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

A Helm kiadási konfigurációja a következő mezőket tartalmazza:

Mező Description
metadata.name Kötelező mező. Követnie kell a Kubernetes elnevezési konvencióit.
metadata.namespace Nem kötelező kitölteni. Meghatározza a kiadás létrehozásának helyét.
spec.releaseName Nem kötelező kitölteni. Ha nincs megadva, a kiadás neve a következő lesz $namespace-$name: .
spec.chart.path A diagramot tartalmazó könyvtár (az adattár gyökérkönyvtárához viszonyítva).
spec.values A diagram alapértelmezett paraméterértékeinek felhasználói testreszabása.

A HelmRelease-ben spec.values megadott beállítások felülbírálják a diagramforrásban values.yaml megadott beállításokat.

A HelmRelease-ről a Helm Operator hivatalos dokumentációjában olvashat bővebben.

Konfiguráció létrehozása

Az Azure CLI-bővítmény k8s-configurationhasználatával csatolja a csatlakoztatott fürtöt a git-adattárhoz. Adja meg ennek a konfigurációnak a nevét azure-arc-sample , és helyezze üzembe a Flux operátort a arc-k8s-demo névtérben.

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

Konfigurációs paraméterek

A konfiguráció létrehozásának testreszabásához további paraméterekkel ismerkedhet meg.

A konfiguráció ellenőrzése

Az Azure CLI használatával ellenőrizze, hogy a konfiguráció sikeresen létrejött-e.

az k8s-configuration show --name azure-arc-sample --cluster-name AzureArcTest1 --resource-group AzureArcTest --cluster-type connectedClusters

A konfigurációs erőforrás megfelelőségi állapottal, üzenetekkel és hibakeresési információkkal frissül.

{
  "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"
}

Alkalmazás ellenőrzése

Futtassa a következő parancsot, és keresse meg localhost:8080 a böngészőben az alkalmazás futásának ellenőrzéséhez.

kubectl port-forward -n arc-k8s-demo svc/arc-k8s-demo 8080:8080

Következő lépések

Fürtkonfigurációk nagy léptékű alkalmazása az Azure Policy használatával.