Oktatóanyag: Alkalmazások üzembe helyezése a GitOps használatával Flux v2-vel

Ez az oktatóanyag bemutatja, hogyan használható a GitOps egy Kubernetes-fürtben. A Flux v2-vel rendelkező GitOps fürtbővítményként engedélyezve van az Azure Arc-kompatibilis Kubernetes-fürtökben vagy az Azure Kubernetes Service- (AKS-) fürtökben. A microsoft.flux fürtbővítmény telepítése után létrehozhat egy vagy több fluxConfigurations olyan erőforrást, amely szinkronizálja a Git-adattár forrásait a fürttel, és egyezteti a fürtöt a kívánt állapotba. A GitOps segítségével a Git-adattárat használhatja a fürtkonfiguráció és az alkalmazástelepítés igazságforrásaként.

Ebben az oktatóanyagban egy példa GitOps-konfigurációt használunk két kustomizációval, így láthatja, hogyan függhet az egyik kustomizáció a másiktól. A forgatókönyvtől függően szükség szerint további kustomizációkat és függőségeket adhat hozzá.

Mielőtt belevág, szánjon egy kis időt, hogy megtudja, hogyan működik a GitOps a Fluxszal.

Tipp.

Bár az oktatóanyag forrása egy Git-adattár, a Flux más gyakori fájlforrásokat is támogat, például a Helm-adattárakat, a gyűjtőket és az Azure Blob Storage-t.

Flux-konfigurációkat bicep, ARM-sablonok vagy Terraform AzAPI-szolgáltató használatával is létrehozhat. További információ: Microsoft.KubernetesConfiguration fluxConfigurations.

Fontos

A microsoft.flux bővítmény kiadta az 1.0.0-s főverziót. Ez magában foglalja a több-bérlős funkciót is. Ha meglévő GitOps Flux v2-konfigurációkkal rendelkezik, amelyek a microsoft.flux bővítmény egy korábbi verzióját használják, manuálisan frissíthet a legújabb verzióra az Azure CLI használatával: az k8s-extension create -g <RESOURCE_GROUP> -c <CLUSTER_NAME> -n flux --extension-type microsoft.flux -t <CLUSTER_TYPE> (Arc-fürtök és -t managedClusters AKS-fürtök esetén).-t connectedClusters

Előfeltételek

Ha a GitOps használatával szeretne alkalmazásokat üzembe helyezni a Flux v2-vel, a következőkre van szüksége:

Azure Arc-kompatibilis Kubernetes-fürtök esetén

Azure Kubernetes Service-fürtök esetén

  • Egy MSI-alapú AKS-fürt, amely működik.

    Fontos

    Győződjön meg arról, hogy az AKS-fürt MSI-vel (nem SPN-vel) lett létrehozva, mert a microsoft.flux bővítmény nem működik SPN-alapú AKS-fürtökkel. Az az aks create használatával létrehozott új AKS-fürtök esetén a fürt alapértelmezés szerint MSI-alapú lesz. A már létrehozott SPN-alapú fürtök esetében, amelyeket MSI-vé kell konvertálni, futtassa a következőt az aks update -g $RESOURCE_GROUP -n $CLUSTER_NAME --enable-managed-identity: . További információ: Felügyelt identitás használata az AKS-ben.

  • Olvasási és írási engedélyek az Microsoft.ContainerService/managedClusters erőforrástípushoz.

Mindkét fürttípus esetében gyakori

  • Olvasási és írási engedélyek az alábbi erőforrástípusokhoz:

    • Microsoft.KubernetesConfiguration/extensions
    • Microsoft.KubernetesConfiguration/fluxConfigurations
  • Az Azure CLI 2.15-ös vagy újabb verziója. Telepítse az Azure CLI-t , vagy a következő parancsokkal frissítsen a legújabb verzióra:

    az version
    az upgrade
    
  • A Kubernetes parancssori ügyfele, a kubectl. kubectl az Azure Cloud Shell használata esetén már telepítve van.

    Telepítse kubectl helyileg a az aks install-cli következő paranccsal:

    az aks install-cli
    
  • A következő Azure-erőforrás-szolgáltatók regisztrálása:

    az provider register --namespace Microsoft.Kubernetes
    az provider register --namespace Microsoft.ContainerService
    az provider register --namespace Microsoft.KubernetesConfiguration
    

    A regisztráció egy aszinkron folyamat, és legfeljebb 10 percet vehet igénybe. A regisztrációs folyamat figyeléséhez használja a következő parancsot:

    az provider show -n Microsoft.KubernetesConfiguration -o table
    
    Namespace                          RegistrationPolicy    RegistrationState
    ---------------------------------  --------------------  -------------------
    Microsoft.KubernetesConfiguration  RegistrationRequired  Registered
    

Verzió- és régiótámogatás

A GitOps jelenleg minden olyan régióban támogatott, amelyet az Azure Arc-kompatibilis Kubernetes támogat. A GitOps jelenleg az AKS által támogatott régiók egy részében támogatott. A GitOps szolgáltatás rendszeresen új támogatott régiókat ad hozzá.

A Flux v2 bővítmény legújabb verziója és az előző két verzió (N-2) támogatott. Általában azt javasoljuk, hogy a bővítmény legújabb verzióját használja.

A hálózatra vonatkozó követelmények

A GitOps-ügynököknek a megfelelő működés érdekében kimenő TCP-re van szükségük az adattár forrásához a 22-es (SSH) vagy a 443-as (HTTPS) porton. Az ügynököknek a következő kimenő URL-címekhez is hozzá kell férniük:

Végpont (DNS) Leírás
https://management.azure.com Az ügynök és a Kubernetes konfigurálási szolgáltatása közötti kommunikációhoz szükséges.
https://<region>.dp.kubernetesconfiguration.azure.com Az ügynök adatsíkvégpontja az állapot leküldéséhez és a konfigurációs információk lekéréséhez. <region> Függ (a korábban említett támogatott régióktól).
https://login.microsoftonline.com Az Azure Resource Manager-tokenek beolvasásához és frissítéséhez szükséges.
https://mcr.microsoft.com A Flux-vezérlők tárolórendszerképeinek lekéréséhez szükséges.

PARANCSSOR-bővítmények engedélyezése

Telepítse a legújabb k8s-configuration és k8s-extension CLI-bővítménycsomagokat:

az extension add -n k8s-configuration
az extension add -n k8s-extension

A csomagok frissítése a legújabb verziókra:

az extension update -n k8s-configuration
az extension update -n k8s-extension

Az összes telepített Azure CLI-bővítmény és verziójuk listájának megtekintéséhez használja a következő parancsot:

az extension list -o table

Experimental   ExtensionType   Name                   Path                                                       Preview   Version
-------------  --------------  -----------------      -----------------------------------------------------      --------  --------
False          whl             connectedk8s           C:\Users\somename\.azure\cliextensions\connectedk8s         False     1.2.7
False          whl             k8s-configuration      C:\Users\somename\.azure\cliextensions\k8s-configuration    False     1.5.0
False          whl             k8s-extension          C:\Users\somename\.azure\cliextensions\k8s-extension        False     1.1.0

Tipp.

Ha segítségre van szüksége a hibák elhárításához, tekintse meg az Azure Arc-kompatibilis Kubernetes-fürtök bővítményproblémáinak elhárításáról szóló GitOps (Flux v2) szakaszt.

Flux-konfiguráció alkalmazása

k8s-configuration Az Azure CLI-bővítmény vagy az Azure Portal használatával engedélyezheti a GitOpst egy AKS- vagy Arc-kompatibilis Kubernetes-fürtben. A bemutatóhoz használja a nyilvános gitops-flux2-kustomize-helm-mt adattárat .

Fontos

A bemutató adattár úgy lett kialakítva, hogy egyszerűsítse az oktatóanyag használatát, és bemutassa néhány fő alapelvet. A naprakészség érdekében az adattár időnként kompatibilitástörő változásokat kaphat a verziófrissítésekből. Ezek a módosítások nem érintik az oktatóanyag új alkalmazását, csak a korábbi, nem törölt oktatóanyag-alkalmazásokat. A módosítások kezelésével kapcsolatos további információkért tekintse meg a kompatibilitástörő változásra vonatkozó jogi nyilatkozatot.

Az alábbi példa a parancs használatával alkalmazza a az k8s-configuration create Flux-konfigurációt egy fürtre a következő értékekkel és beállításokkal:

  • A fürtöt tartalmazó erőforráscsoport az flux-demo-rg.
  • Az Azure Arc-fürt neve .flux-demo-arc
  • A fürt típusa Az Azure Arc (-t connectedClusters), de ez a példa az AKS-sel (-t managedClusters) is működik.
  • A Flux-konfiguráció neve a következő cluster-config: .
  • A konfiguráció telepítésének névtere a következő cluster-config: .
  • A nyilvános Git-adattár URL-címe.https://github.com/Azure/gitops-flux2-kustomize-helm-mt
  • A Git-adattár ága .main
  • A konfiguráció hatóköre: cluster. Ez a hatókör engedélyeket ad az operátoroknak a teljes fürtben végzett módosításokhoz. Az oktatóanyag hatókörének használatához namespace tekintse meg a szükséges módosításokat.
  • Két kustomizáció van megadva névvel infra és apps. Mindegyik egy elérési úthoz van társítva az adattárban.
  • A apps kustomizáció a infra kustomizációtól függ. (A infra kustomizációnak a kustomizáció futtatása előtt apps be kell fejeződnie.)
  • Állítsa be prune=true mindkét kustomizációt. Ez a beállítás biztosítja, hogy a fürtben üzembe helyezett Flux-objektumok törlődjenek, ha el lettek távolítva az adattárból, vagy ha a Flux-konfiguráció vagy a kustomizációk törlődnek.
az k8s-configuration flux create -g flux-demo-rg \
-c flux-demo-arc \
-n cluster-config \
--namespace cluster-config \
-t connectedClusters \
--scope cluster \
-u https://github.com/Azure/gitops-flux2-kustomize-helm-mt \
--branch main  \
--kustomization name=infra path=./infrastructure prune=true \
--kustomization name=apps path=./apps/staging prune=true dependsOn=\["infra"\]

A microsoft.flux bővítmény telepítve van a fürtre (ha még nem volt telepítve egy korábbi GitOps-telepítésben).

Tipp.

A az k8s-configuration create parancs üzembe helyezi a microsoft.flux bővítményt a fürtben, és létrehozza a konfigurációt. Bizonyos esetekben érdemes lehet külön létrehozni a fluxusbővítmény-példányt a konfigurációs erőforrások létrehozása előtt. Ehhez a az k8s-extension create paranccsal hozza létre a bővítmény egy példányát a fürtön.

A fluxuskonfiguráció első telepítésekor előfordulhat PendingNon-compliant , hogy a kezdeti megfelelőségi állapot vagy az egyeztetés még folyamatban van. Egy perc múlva újra lekérdezheti a konfigurációt a végleges megfelelőségi állapot megtekintéséhez.

az k8s-configuration flux show -g flux-demo-rg -c flux-demo-arc -n cluster-config -t connectedClusters

Az üzembe helyezés sikerességének ellenőrzéséhez futtassa a következő parancsot:

az k8s-configuration flux show -g flux-demo-rg -c flux-demo-arc -n cluster-config -t connectedClusters

Sikeres üzembe helyezés esetén a következő névterek jönnek létre:

  • flux-system: A Flux-bővítményvezérlőket tárolja.
  • cluster-config: A Flux konfigurációs objektumait tárolja.
  • nginx, , podinforedis: A Git-adattár jegyzékfájljaiban leírt számítási feladatok névterei.

A névterek megerősítéséhez futtassa a következő parancsot:

kubectl get namespaces

A flux-system névtér tartalmazza a Flux-bővítmény objektumait:

  • Azure Flux-vezérlők: fluxconfig-agent, fluxconfig-controller
  • OSS Flux-vezérlők: source-controller, kustomize-controller, , helm-controllernotification-controller

A Flux-ügynöknek és a vezérlő podoknak futó állapotban kell lenniük. Ezt a következő paranccsal erősítse meg:

kubectl get pods -n flux-system

NAME                                      READY   STATUS    RESTARTS   AGE
fluxconfig-agent-9554ffb65-jqm8g          2/2     Running   0          21m
fluxconfig-controller-9d99c54c8-nztg8     2/2     Running   0          21m
helm-controller-59cc74dbc5-77772          1/1     Running   0          21m
kustomize-controller-5fb7d7b9d5-cjdhx     1/1     Running   0          21m
notification-controller-7d45678bc-fvlvr   1/1     Running   0          21m
source-controller-df7dc97cd-4drh2         1/1     Running   0          21m

A névtér cluster-config fluxus konfigurációs objektumokkal rendelkezik.

kubectl get crds

NAME                                                   CREATED AT
alerts.notification.toolkit.fluxcd.io                  2022-04-06T17:15:48Z
arccertificates.clusterconfig.azure.com                2022-03-28T21:45:19Z
azureclusteridentityrequests.clusterconfig.azure.com   2022-03-28T21:45:19Z
azureextensionidentities.clusterconfig.azure.com       2022-03-28T21:45:19Z
buckets.source.toolkit.fluxcd.io                       2022-04-06T17:15:48Z
connectedclusters.arc.azure.com                        2022-03-28T21:45:19Z
customlocationsettings.clusterconfig.azure.com         2022-03-28T21:45:19Z
extensionconfigs.clusterconfig.azure.com               2022-03-28T21:45:19Z
fluxconfigs.clusterconfig.azure.com                    2022-04-06T17:15:48Z
gitconfigs.clusterconfig.azure.com                     2022-03-28T21:45:19Z
gitrepositories.source.toolkit.fluxcd.io               2022-04-06T17:15:48Z
helmcharts.source.toolkit.fluxcd.io                    2022-04-06T17:15:48Z
helmreleases.helm.toolkit.fluxcd.io                    2022-04-06T17:15:48Z
helmrepositories.source.toolkit.fluxcd.io              2022-04-06T17:15:48Z
imagepolicies.image.toolkit.fluxcd.io                  2022-04-06T17:15:48Z
imagerepositories.image.toolkit.fluxcd.io              2022-04-06T17:15:48Z
imageupdateautomations.image.toolkit.fluxcd.io         2022-04-06T17:15:48Z
kustomizations.kustomize.toolkit.fluxcd.io             2022-04-06T17:15:48Z
providers.notification.toolkit.fluxcd.io               2022-04-06T17:15:48Z
receivers.notification.toolkit.fluxcd.io               2022-04-06T17:15:48Z
volumesnapshotclasses.snapshot.storage.k8s.io          2022-03-28T21:06:12Z
volumesnapshotcontents.snapshot.storage.k8s.io         2022-03-28T21:06:12Z
volumesnapshots.snapshot.storage.k8s.io                2022-03-28T21:06:12Z
websites.extensions.example.com                        2022-03-30T23:42:32Z

Az alábbi parancsokkal erősítse meg a konfiguráció egyéb részleteit.

kubectl get fluxconfigs -A

NAMESPACE        NAME             SCOPE     URL                                                       PROVISION   AGE
cluster-config   cluster-config   cluster   https://github.com/Azure/gitops-flux2-kustomize-helm-mt   Succeeded   44m
kubectl get gitrepositories -A

NAMESPACE        NAME             URL                                                       READY   STATUS                                                            AGE
cluster-config   cluster-config   https://github.com/Azure/gitops-flux2-kustomize-helm-mt   True    Fetched revision: main/4f1bdad4d0a54b939a5e3d52c51464f67e474fcf   45m
kubectl get helmreleases -A

NAMESPACE        NAME      READY   STATUS                             AGE
cluster-config   nginx     True    Release reconciliation succeeded   66m
cluster-config   podinfo   True    Release reconciliation succeeded   66m
cluster-config   redis     True    Release reconciliation succeeded   66m
kubectl get kustomizations -A


NAMESPACE        NAME                   READY   STATUS                                                            AGE
cluster-config   cluster-config-apps    True    Applied revision: main/4f1bdad4d0a54b939a5e3d52c51464f67e474fcf   65m
cluster-config   cluster-config-infra   True    Applied revision: main/4f1bdad4d0a54b939a5e3d52c51464f67e474fcf   65m

A számítási feladatok a Git-adattárban lévő jegyzékekből vannak üzembe helyezve.

kubectl get deploy -n nginx

NAME                                       READY   UP-TO-DATE   AVAILABLE   AGE
nginx-ingress-controller                   1/1     1            1           67m
nginx-ingress-controller-default-backend   1/1     1            1           67m

kubectl get deploy -n podinfo

NAME      READY   UP-TO-DATE   AVAILABLE   AGE
podinfo   1/1     1            1           68m

kubectl get all -n redis

NAME                 READY   STATUS    RESTARTS   AGE
pod/redis-master-0   1/1     Running   0          68m

NAME                     TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
service/redis-headless   ClusterIP   None          <none>        6379/TCP   68m
service/redis-master     ClusterIP   10.0.13.182   <none>        6379/TCP   68m

NAME                            READY   AGE
statefulset.apps/redis-master   1/1     68m

Annak szabályozása, hogy mely vezérlők legyenek üzembe helyezve a Flux-fürtbővítménnyel

Bizonyos esetekben érdemes lehet módosítani, hogy mely Flux-vezérlők legyenek telepítve a Flux-fürtbővítménnyel.

A source, helm, kustomizeés notification Flux vezérlők alapértelmezés szerint telepítve vannak. A image-automation Git-adattár frissítéséhez használt vezérlőket és image-reflector vezérlőket, amikor új tárolólemezképek érhetők el, explicit módon engedélyezni kell.

A parancs használatával k8s-extension módosíthatja az alapértelmezett beállításokat:

  • --config source-controller.enabled=<true/false> (alapértelmezett true)
  • --config helm-controller.enabled=<true/false> (alapértelmezett true)
  • --config kustomize-controller.enabled=<true/false> (alapértelmezett true)
  • --config notification-controller.enabled=<true/false> (alapértelmezett true)
  • --config image-automation-controller.enabled=<true/false> (alapértelmezett false)
  • --config image-reflector-controller.enabled=<true/false> (alapértelmezett false)

Az értesítések letiltásához például beállíthatja a következőt notification-controller.enabledfalse: .

Ez a példaparancs telepíti a vezérlőket és image-automation a image-reflector vezérlőket. Ha a Flux-bővítmény automatikusan jött létre a Flux-konfiguráció első létrehozásakor, a bővítmény neve a következő lesz flux: .

az k8s-extension create -g <cluster_resource_group> -c <cluster_name> -t <connectedClusters or managedClusters or provisionedClusters> --name flux --extension-type microsoft.flux --config image-automation-controller.enabled=true image-reflector-controller.enabled=true

Kubelet-identitás használata hitelesítési módszerként az AKS-fürtökhöz

Az AKS-fürtök esetében az egyik használható hitelesítési lehetőség a kubelet-identitás. Az AKS alapértelmezés szerint saját kubelet-identitást hoz létre a felügyelt erőforráscsoportban. Ha szeretné, használhat előre létrehozott kubelet felügyelt identitást. Ehhez adja hozzá a paramétert --config useKubeletIdentity=true a Flux-bővítmény telepítésekor.

az k8s-extension create --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type managedClusters --name flux --extension-type microsoft.flux --config useKubeletIdentity=true

A Red Hat OpenShift előkészítési útmutatója

A Flux-vezérlők nemroot biztonsági környezeti korlátozást igényelnek a podok fürtre való megfelelő kiépítéséhez. Ezeket a korlátozásokat a bővítmény megkezdése előtt hozzá kell adni a microsoft.flux fürthöz.

NS="flux-system"
oc adm policy add-scc-to-user nonroot system:serviceaccount:$NS:kustomize-controller
oc adm policy add-scc-to-user nonroot system:serviceaccount:$NS:helm-controller
oc adm policy add-scc-to-user nonroot system:serviceaccount:$NS:source-controller
oc adm policy add-scc-to-user nonroot system:serviceaccount:$NS:notification-controller
oc adm policy add-scc-to-user nonroot system:serviceaccount:$NS:image-automation-controller
oc adm policy add-scc-to-user nonroot system:serviceaccount:$NS:image-reflector-controller

A Flux előkészítéséhez szükséges OpenShift-útmutatóról további információt a Flux dokumentációjában talál.

Paraméterek használata

A Flux számos paramétert támogat a különböző forgatókönyvek engedélyezéséhez. A Flux által támogatott paraméterek leírását a flux hivatalos dokumentációjában találja. Az Azure Flux még nem támogatja az összes paramétert. Tudassa velünk, hogy hiányzik-e egy szükséges paraméter az Azure-implementációból.

Az elérhető paraméterekről és azok használatáról további információt a GitOps (Flux v2) által támogatott paraméterekben talál.

Fürtkonfiguráció kezelése a Flux Kustomize vezérlővel

A Flux Kustomize vezérlő a microsoft.flux fürtbővítmény részeként van telepítve. Lehetővé teszi a fürtkonfiguráció és az alkalmazás üzembe helyezésének deklaratív kezelését a Git-adattárból szinkronizált Kubernetes-jegyzékek használatával. Ezek a Kubernetes-jegyzékek opcionálisan kustomize.yaml fájlt is tartalmazhatnak.

A használati adatokért tekintse meg a következő erőforrásokat:

Helm-diagramkiadások kezelése a Flux Helm-vezérlővel

A Flux Helm-vezérlő a microsoft.flux fürtbővítmény részeként van telepítve. Lehetővé teszi a Helm-diagramkiadások deklaratív kezelését a Git-adattárban karbantartott Kubernetes-jegyzékekkel.

A használati adatokért tekintse meg a következő erőforrásokat:

Tipp.

Mivel a Helm hogyan kezeli az indexfájlokat, a Helm-diagramok feldolgozása költséges művelet, és nagyon nagy memóriaigényű lehet. Ennek eredményeképpen nagy számú Helm-diagram egyidejű egyeztetése memóriakiugrásokat és OOMKilled hibákat okozhat. A vezérlő alapértelmezés szerint 1Gi-ra állítja a memóriakorlátot, a memóriakérelmét pedig 64Mi értékre. A microsoft.flux bővítmény telepítése után futtassa a következő parancsot a korlát és a nagy számú Helm-diagram egyeztetése miatti kérések növeléséhez:

az k8s-extension update -g <resource-group> -c <cluster-name> -n flux -t connectedClusters --config source-controller.resources.limits.memory=2Gi source-controller.resources.requests.memory=300Mi

A GitRepository forrásának használata Helm-diagramokhoz

Ha a Helm-diagramok az GitRepository erőforrás részeként fluxConfigurations konfigurált forrásban vannak tárolva, a Helm-diagramok forrásaként a HelmRelease.yaml fájlhoz való hozzáadással clusterconfig.azure.com/use-managed-source: "true" jelezheti, hogy a konfigurált forrást kell használnia a Helm-diagramok forrásaként, ahogyan az az alábbi példában látható:

---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: somename
  namespace: somenamespace
  annotations:
    clusterconfig.azure.com/use-managed-source: "true"
spec:
  ...

Ha ezt a megjegyzést használja, az üzembe helyezett HelmRelease ki lesz javítva a konfigurált forrásra mutató hivatkozással. Jelenleg csak GitRepository a forrás támogatott.

Helm-eltolódás észlelése

A Helm-kiadások eltérésészlelése alapértelmezés szerint nincs engedélyezve. Az 1.7.5-ös verziótól microsoft.flux kezdve az alábbi parancs futtatásával engedélyezheti a Helm-eltérésészlelést:

az k8s-extension update --resource-group <resource-group> --cluster-name <cluster-name> --name flux --cluster-type <cluster-type> --config helm-controller.detectDrift=true 

Helm OOM-óra

Az 1.7.5-ös verziótól microsoft.flux kezdve engedélyezheti a Helm OOM-órát. További információ: Helm engedélyezése az OOM-észlelés közelében.

A funkció engedélyezésekor mindenképpen tekintse át a lehetséges szervizelési stratégiákat , és alkalmazza őket szükség szerint.

Az OOM-figyelő engedélyezéséhez futtassa a következő parancsot:

az k8s-extension update --resource-group <resource-group> --cluster-name <cluster-name> --name flux --cluster-type <cluster-type> --config helm-controller.outOfMemoryWatch.enabled=true helm-controller.outOfMemoryWatch.memoryThreshold=70 helm-controller.outOfMemoryWatch.interval=700ms

Ha nem ad meg értékeket memoryThreshold , az outOfMemoryWatchalapértelmezett memóriaküszöb 95%-ra van állítva, és a memória kihasználtságának ellenőrzése 500 ms-ra van állítva.

Számítási feladatok identitása az AKS-fürtökben

Az 1.8.0-s verziótól microsoft.flux kezdve Flux-konfigurációkat hozhat létre az AKS-fürtökben, amelyekben engedélyezve van a számítási feladat identitása. Ehhez módosítsa a fluxusbővítményt az alábbi lépésekben látható módon.

  1. Kérje le a fürt OIDC-kiállítójának URL-címét .

  2. Hozzon létre egy felügyelt identitást, és jegyezze fel az ügyfél-azonosítóját.

  3. Hozza létre a fluxusbővítményt a fürtön az alábbi paranccsal:

    az k8s-extension create --resource-group <resource_group_name> --cluster-name <aks_cluster_name> --cluster-type managedClusters --name flux --extension-type microsoft.flux --config workloadIdentity.enable=true workloadIdentity.azureClientId=<user_assigned_client_id>
    
  4. Összevont identitás hitelesítő adatainak létrehozása. Példa:

    # For source-controller
    az identity federated-credential create --name ${FEDERATED_IDENTITY_CREDENTIAL_NAME} --identity-name "${USER_ASSIGNED_IDENTITY_NAME}" --resource-group "${RESOURCE_GROUP}" --issuer "${AKS_OIDC_ISSUER}" --subject system:serviceaccount:"flux-system":"source-controller" --audience api://AzureADTokenExchange
    
    # For image-reflector controller if you plan to enable it during extension creation, it is not deployed by default
    az identity federated-credential create --name ${FEDERATED_IDENTITY_CREDENTIAL_NAME} --identity-name "${USER_ASSIGNED_IDENTITY_NAME}" --resource-group "${RESOURCE_GROUP}" --issuer "${AKS_OIDC_ISSUER}" --subject system:serviceaccount:"flux-system":"image-reflector-controller" --audience api://AzureADTokenExchange
    
  5. Győződjön meg arról, hogy a számítási feladat identitásának használatához szükséges egyéni erőforrás értéke azure meg van adva .spec.provider a jegyzékben. Példa:

    apiVersion: source.toolkit.fluxcd.io/v1beta2
    kind: HelmRepository
    metadata:
      name: acrrepo
    spec:
      interval: 10m0s
      type: <helm_repository_type>
      url: <helm_repository_link>
      provider: azure
    
  6. Ügyeljen arra, hogy megfelelő engedélyeket adjon a számítási feladatok identitásához ahhoz az erőforráshoz, amelyet le szeretne húzni a forrásvezérlőhöz vagy a képvisszaverő vezérlőhöz. Ha például az Azure Container Registryt használja, AcrPull engedélyekre van szükség.

A Flux-konfiguráció és -bővítmény törlése

Az alábbi parancsokkal törölheti a Flux-konfigurációkat, és szükség esetén magát a Flux-bővítményt.

A Flux-konfigurációk törlése

Az alábbi parancs törli az fluxConfigurations Azure-beli erőforrást és a fürt Flux konfigurációs objektumait is. Mivel a Flux-konfiguráció eredetileg a prune=true kustomizáció paraméterével lett létrehozva, a rendszer a Flux-konfiguráció eltávolításakor eltávolítja a fürtben a Git-adattár jegyzékfájljai alapján létrehozott összes objektumot. Ez a parancs azonban nem távolítja el magát a Flux-bővítményt.

az k8s-configuration flux delete -g flux-demo-rg -c flux-demo-arc -n cluster-config -t connectedClusters --yes

A Flux-fürt bővítményének törlése

A Flux-bővítmény törlésekor az microsoft.flux Azure-beli bővítményerőforrás és a fürt Flux-bővítményobjektumai is törlődnek.

Fontos

A Flux-bővítmény törlése előtt mindenképpen törölje a fürt összes Flux-konfigurációját. Ha a bővítményt a Flux-konfigurációk első törlése nélkül törli, a fürt instabil állapotba kerülhet.

Ha a Flux-bővítmény automatikusan jött létre a Flux-konfiguráció első létrehozásakor, a bővítmény neve .flux

az k8s-extension delete -g flux-demo-rg -c flux-demo-arc -n flux -t connectedClusters --yes

Tipp.

Ezek a parancsok az Azure Arc-kompatibilis Kubernetes-fürtökhöz megfelelő parancsokat használják -t connectedClusters. AKS-fürtökhöz használja -t managedClusters inkább.

Következő lépések