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


Rövid útmutató: Azure-alkalmazás-konfiguráció használata az Azure Kubernetes Service-ben

A Kubernetesben beállíthat podokat a konfigurációs adatok ConfigMapsből való felhasználásához. Ez a gyakorlat javítja az alkalmazások hordozhatóságát, mivel leválaszthatja a konfigurációs adatokat a tárolólemezképekről.

Az Azure App Configuration Kubernetes Provider lehetővé teszi a Kubernetes ConfigMaps és titkos kulcsok összeállítását az alkalmazáskonfigurációban tárolt kulcsértékekből és Azure Key Vault-hivatkozásokból. Ha ezt a szolgáltatót használja, az Alkalmazáskonfigurációval központilag tárolhatja és kezelheti a konfigurációs adatokat anélkül, hogy módosítanák az alkalmazás kódját.

A ConfigMap környezeti változóként vagy csatlakoztatott fájlként is használható. Ebben a rövid útmutatóban az Azure App Configuration Kubernetes Providert fogja beépíteni az AKS-számítási feladatba. A szolgáltató létrehoz egy ConfigMap-et az Alkalmazáskonfigurációs áruház adataiból. A számítási feladatban egy alapszintű ASP.NET Core-alkalmazást futtat egy podban, amely a ConfigMap-et egy adatkötetbe csatlakoztatott JSON-fájlként használja.

Tipp.

Az alkalmazáskonfiguráció Kubernetesben üzemeltetett számítási feladatokból való elérésének egyéb módjaiért tekintse meg az Azure Kubernetes Service alkalmazáskonfigurációhoz való hozzáférését.

Feljegyzés

Ez a rövid útmutató végigvezeti az Azure App Configuration Kubernetes Provider beállításán. Az azure-erőforrások kiépítéséhez és a rövid útmutatóban használt mintaalkalmazás üzembe helyezéséhez használhatja az alábbi Azure Developer CLI-parancsokat. Ezek a parancsok erre a célra használják a azure-appconfig-aks sablont. A sablonról további információt az azure-appconfig-aks GitHub adattárban talál.

azd init -t azure-appconfig-aks
azd up

Előfeltételek

Az AKS-ben futó alkalmazás létrehozása

Ebben a szakaszban egy alapszintű ASP.NET Core-webalkalmazást hoz létre, amely az AKS-ben fut. Az alkalmazás egy helyi JSON-fájlból olvassa be a konfigurációs adatokat. A következő szakaszban engedélyezheti, hogy az alkalmazás az alkalmazáskód módosítása nélkül használja fel a konfigurációs adatokat az Alkalmazáskonfigurációból.

Ha már rendelkezik olyan AKS-alkalmazással, amely beolvassa a konfigurációt egy fájlból, kihagyhatja ezt a szakaszt, és továbbléphet az Azure App Configuration Kubernetes Provider használatára. Ha kihagyja ezt a szakaszt, győződjön meg arról, hogy a szolgáltató által létrehozott konfigurációs fájl megegyezik az alkalmazás által használt fájlútvonallal.

Alkalmazás létrehozása

  1. A következő parancs futtatásához használja a .NET parancssori felületét . Létrehoz egy ASP.NET Core-webalkalmazás-projektet egy új MyWebApp-címtárban .

    dotnet new webapp --output MyWebApp --framework net8.0
    
  2. A MyWebApp könyvtárban nyissa meg a Pages könyvtárat, majd nyissa meg az Index.cshtml fájlt. Cserélje le a tartalmat a következő kódra:

    @page
    @model IndexModel
    @using Microsoft.Extensions.Configuration
    @inject IConfiguration Configuration
    @{
        ViewData["Title"] = "Home page";
    }
    
    <style>
        h1 {
            color: @Configuration["Settings:FontColor"];
        }
    </style>
    
    <div class="text-center">
        <h1>@Configuration["Settings:Message"]</h1>
    </div>
    
  3. Hozzon létre egy konfigurációs könyvtárat a projekt gyökerében. A konfigurációs könyvtárban adjon hozzá egy mysettings.json fájlt, amely a következő tartalmat tartalmazza:

    {
      "Settings": {
        "FontColor": "Black",
        "Message": "Message from the local configuration"
      }
    }
    
  4. A projekt gyökérkönyvtárában nyissa meg a Program.cs, majd adja hozzá a JSON-fájlt a konfigurációs forráshoz a AddJsonFile metódus meghívásával.

    // Existing code in Program.cs
    // ... ...
    
    // Add a JSON configuration source.
    builder.Configuration.AddJsonFile("config/mysettings.json", reloadOnChange: true, optional: false);
    
    var app = builder.Build();
    
    // The rest of the existing code in Program.cs
    // ... ...
    

Az alkalmazás tárolóba helyezése

  1. Az alkalmazás kiadási módban való létrehozásához és a közzétett címtárban lévő objektumok létrehozásához futtassa a dotnet publish parancsot .

    dotnet publish -c Release -o published
    
  2. Hozzon létre egy Dockerfile nevű fájlt a projektkönyvtár gyökerénél, nyissa meg egy szövegszerkesztőben, és írja be a következő tartalmat. A Dockerfile olyan szövegfájl, amely nem rendelkezik kiterjesztéssel. Tárolórendszerkép létrehozásához használja.

    FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
    WORKDIR /app
    COPY published/ ./
    ENTRYPOINT ["dotnet", "MyWebApp.dll"]
    
  3. Hozzon létre egy tárolórendszerképet aspnetapp a következő parancs futtatásával:

    docker build --tag aspnetapp .
    

A rendszerkép leküldése a Tárolóregisztrációs adatbázisba

  1. A tárolóregisztrációs adatbázisba való bejelentkezéshez futtassa az az acr bejelentkezési parancsot. Az alábbi kód bejelentkezik egy regisztrációs adatbázisba myregistry. Cserélje le a beállításjegyzék nevét a beállításjegyzék nevére.

    az acr login --name myregistry
    

    A parancs akkor ad Login Succeeded vissza, ha sikeresen bejelentkezik.

  2. A rendszerképhez hívott myregistry.azurecr.io/aspnetapp:v1 címke létrehozásához használja a aspnetappdocker-címke parancsot. Cserélje le myregistry a beállításjegyzék nevére.

    docker tag aspnetapp myregistry.azurecr.io/aspnetapp:v1
    

    Tipp.

    A meglévő Docker-rendszerképek és -címkék listájának áttekintéséhez futtassa a következőt docker image ls: . Ebben a forgatókönyvben a kimenetnek legalább két képet kell felsorolnia: aspnetapp és myregistry.azurecr.io/aspnetapp.

  3. A rendszerkép a tárolóregisztrációs adatbázisba való feltöltéséhez használja a docker leküldéses parancsot. A következő parancs például leküldi a rendszerképet egy, a beállításjegyzék myregistryalatt címkével ellátott aspnetapp adattárbav1:

    docker push myregistry.azurecr.io/aspnetapp:v1
    

Az alkalmazás üzembe helyezése

  1. Hozzon létre egy üzembehelyezési könyvtárat a projekt gyökérkönyvtárában.

  2. Az üzembe helyezés definiálásához adjon hozzá egy deployment.yaml fájlt az alábbi tartalommal az üzembehelyezési könyvtárhoz. Cserélje le a címke értékét template.spec.containers.image az előző szakaszban létrehozott címkére.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: aspnetapp-demo
      labels:
        app: aspnetapp-demo
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: aspnetapp-demo
      template:
        metadata:
          labels:
            app: aspnetapp-demo
        spec:
          containers:
          - name: aspnetapp
            image: myregistry.azurecr.io/aspnetapp:v1
            ports:
            - containerPort: 80
    
  3. Szolgáltatás definiálásához LoadBalancer adjon hozzá egy service.yaml fájlt a következő tartalommal az üzembehelyezési könyvtárhoz:

    apiVersion: v1
    kind: Service
    metadata:
      name: aspnetapp-demo-service
    spec:
      type: LoadBalancer
      ports:
      - port: 80
      selector:
        app: aspnetapp-demo
    
  4. Annak érdekében, hogy a kubectl csatlakozzon az AKS-fürthöz, futtassa a következő parancsot. Letölti az AKS-fürt hitelesítő adatait, és egyesíti őket a fürt környezetével.

    az aks get-credentials --name <your-AKS-instance-name> --resource-group <your-AKS-resource-group>
    
  5. Az alkalmazás az AKS-fürtön való üzembe helyezéséhez és az erőforrások létrehozásához futtassa a következő parancsokat:

    kubectl create namespace appconfig-demo
    kubectl apply -f ./Deployment -n appconfig-demo
    
  6. A szolgáltatás által LoadBalancer közzétett külső IP-cím lekéréséhez futtassa a következő parancsot:

    kubectl get service aspnetapp-demo-service -n appconfig-demo
    
  7. Egy böngészőablakban lépjen az előző lépésben beszerzett IP-címre. A weblapnak az alábbi képernyőképhez hasonlóan kell kinéznie:

    Képernyőkép egy alkalmazás weblapját megjelenítő böngészőről. A lap a helyi konfiguráció üzenetét tartalmazó szöveget tartalmaz.

Az Azure App Configuration Kubernetes Provider használata

Most, hogy egy alkalmazás fut az AKS-ben, a következő lépés az Azure App Configuration Kubernetes Provider üzembe helyezése az AKS-fürtön Kubernetes-vezérlőként való futtatáshoz. A szolgáltató adatokat kér le az alkalmazáskonfigurációs tárolóból, és létrehoz egy konfigurációtérképet, amely egy adatkötetbe csatlakoztatott JSON-fájlként használható.

Az Alkalmazáskonfigurációs áruház beállítása

Adja hozzá az alábbi kulcsokat és értékeket az Alkalmazáskonfigurációs áruházhoz. Mindegyiknél használjon alapértelmezett értékeket a címke és a tartalomtípus esetében. További információ arról, hogy miként adhat hozzá kulcsértékeket egy áruházhoz az Azure Portal vagy az Azure CLI használatával, olvassa el a Kulcs-érték létrehozása című témakört.

Kulcs Érték
Beállítások:FontColor Zöld
Beállítások:Üzenet Üdvözlet az Azure-alkalmazás konfigurációjából

Az Azure App Configuration Kubernetes Provider beállítása

  1. Telepítse az Azure App Configuration Kubernetes Providert az AKS-fürtön. A szolgáltatót AKS-bővítményként vagy Helm-diagram használatával telepítheti. Az AKS-bővítmény zökkenőmentes telepítést és felügyeletet biztosít az Azure CLI, az Azure Resource Manager-sablonok (ARM-sablonok) vagy a Bicep-fájlok segítségével. Az AKS-bővítmény használata megkönnyíti az automatikus alverzió- és javításverzió-frissítéseket is, így biztosítható, hogy a rendszer naprakész maradjon.

    Adja hozzá az k8s-extension Azure CLI-bővítményekhez.

    az extension add --name k8s-extension
    

    Regisztrálja az erőforrás-szolgáltatót KubernetesConfiguration .

    az provider register --namespace Microsoft.KubernetesConfiguration
    

    Telepítse az Alkalmazáskonfiguráció AKS-bővítményét. Cserélje le a és resource-group paraméterértékeket cluster-name az AKS-példány megfelelő értékeire. Alapértelmezés szerint a szolgáltató telepítve van a azappconfig-system névtérben.

    az k8s-extension create --cluster-type managedClusters \
        --cluster-name <your-AKS-instance-name> \
        --resource-group <your-AKS-resource-group> \
        --name appconfigurationkubernetesprovider \
        --extension-type Microsoft.AppConfiguration
    

    További információ: Az Azure App Configuration AKS-bővítmény telepítése.

  2. Erőforrás definiálásához AzureAppConfigurationProvider adjon hozzá egy appConfigurationProvider.yaml fájlt az alábbi tartalommal az üzembehelyezési könyvtárhoz. AzureAppConfigurationProvider egy egyéni erőforrás. Meghatározza az alkalmazáskonfigurációs áruházból letöltendő adatokat. Emellett létrehoz egy ConfigMap-et is.

    apiVersion: azconfig.io/v1
    kind: AzureAppConfigurationProvider
    metadata:
      name: appconfigurationprovider-sample
    spec:
      endpoint: <your-app-configuration-store-endpoint>
      target:
        configMapName: configmap-created-by-appconfig-provider
        configMapData: 
          type: json
          key: mysettings.json
      auth:
        workloadIdentity:
          serviceAccountName: <your-service-account-name>
    

    Cserélje le a endpoint mező értékét az Azure App Configuration tár végpontjára. Folytassa a következő lépéssel a auth szakasz frissítéséhez a hitelesítési adataival.

    Feljegyzés

    AzureAppConfigurationProvider egy deklaratív API-objektum. Meghatározza az Alkalmazáskonfigurációs áruház adataiból létrehozott ConfigMap kívánt állapotát. A kívánt állapot definíciója a következő viselkedést határozza meg:

    • A ConfigMap létrehozása meghiúsul, ha egy azonos nevű ConfigMap már létezik ugyanabban a névtérben.
    • A ConfigMap alaphelyzetbe áll az Alkalmazáskonfigurációs áruházban lévő jelenlegi adatok alapján, ha azokat más módon törölték vagy módosították.
    • Az Azure App Configuration Kubernetes Provider eltávolításakor a ConfigMap törlődik.
  3. Az Alkalmazáskonfigurációs áruházban való hitelesítéshez kövesse a számítási feladat identitásának használatára vonatkozó utasításokat. Frissítse az appConfigurationProvider.yaml fájlt úgy, hogy az utasításokat követve lecseréli a serviceAccountName mezőt a létrehozott szolgáltatásfiók nevére. Az egyéb hitelesítési módszerekkel kapcsolatos további információkért tekintse meg a hitelesítés példáit.

  4. Ahogy az alábbi kódban látható, frissítse a deployment.yaml fájlt az üzembehelyezési könyvtárban, hogy a ConfigMap-ot configmap-created-by-appconfig-provider csatlakoztatott adatkötetként használja. Fontos, hogy az volumeMounts.mountPath érték megegyezik a WORKDIR Dockerfile-ban megadott értékkel és a korábban létrehozott konfigurációs könyvtárral. Győződjön meg arról is, hogy az érték template.spec.containers.image megegyezik a korábban létrehozott kép nevével.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: aspnetapp-demo
      labels:
        app: aspnetapp-demo
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: aspnetapp-demo
      template:
        metadata:
          labels:
            app: aspnetapp-demo
        spec:
          containers:
          - name: aspnetapp
            image: myregistry.azurecr.io/aspnetapp:v1
            ports:
            - containerPort: 80
            volumeMounts:
            - name: config-volume
              mountPath: /app/config
          volumes:
          - name: config-volume 
            configMap: 
              name: configmap-created-by-appconfig-provider
    
  5. A módosítások üzembe helyezéséhez futtassa a következő parancsot. Ha meglévő AKS-alkalmazást használ, frissítse a névteret.

    kubectl apply -f ./Deployment -n appconfig-demo
    
  6. Frissítse a böngészőt. A lapon a frissített tartalom látható.

    Képernyőkép egy alkalmazás weblapját megjelenítő böngészőről. Az oldal zöld szöveget tartalmaz, amely az Azure App Configuration hello szövegét tartalmazza.

Hibaelhárítás

Ha az alkalmazás nem olvassa be az adatokat az Alkalmazáskonfigurációs áruházból, futtassa a következő parancsot annak ellenőrzéséhez, hogy a ConfigMap megfelelően van-e létrehozva:

kubectl get configmap configmap-created-by-appconfig-provider -n appconfig-demo

Ha a ConfigMap nincs létrehozva, futtassa a következő parancsot az adatlekérési állapot lekéréséhez:

kubectl get AzureAppConfigurationProvider appconfigurationprovider-sample -n appconfig-demo -o yaml

Ha az Azure App Configuration Kubernetes Provider sikeresen lekéri az adatokat az Alkalmazáskonfigurációs tárolóból, a phase kimenet szakaszában status lévő tulajdonságnak kell lennie Completeaz alábbi példában látható módon:

$ kubectl get AzureAppConfigurationProvider appconfigurationprovider-sample -n appconfig-demo -o yaml

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
  ... ... ...
status:
  lastReconcileTime: "2025-08-04T13:58:02Z"
  lastSyncTime: "2025-08-04T13:58:02Z"
  message: Complete sync key-values from App Configuration to target ConfigMap or
    Secret.
  phase: Complete

Ha a fázistulajdonság nem COMPLETE, az adatok nem töltődnek le megfelelően az Alkalmazáskonfigurációs áruházból. Az Azure App Configuration Kubernetes Provider naplóinak eléréséhez futtassa a következő parancsot:

kubectl logs deployment/az-appconfig-k8s-provider -n azappconfig-system

További hibaelhárításhoz használja a naplókat. A gyakori problémák megoldásához tekintse meg a gyakori kérdéseket.

GYIK

Miért nem jön létre a ConfigMap vagy a Titkos kód?

Részletes hibainformációkat tartalmazó naplók gyűjtéséhez kövesse a hibaelhárítás lépéseit. A probléma néhány gyakori oka a következő:

  • VÁLASZ 403: 403 Tiltott: A konfigurált identitás nem rendelkezik az Alkalmazáskonfigurációs áruházhoz való hozzáféréshez szükséges engedélyekkel. A használt identitásnak megfelelő példákért lásd a Hitelesítés című témakört.
  • A Key Vault-referenciák megtalálhatók az alkalmazáskonfigurációban, de a "spec.secret" nincs konfigurálva: Egy vagy több Key Vault-hivatkozás szerepel a kiválasztott kulcsértékekben, de a Key Vault hitelesítési információi nincsenek megadva. A konfiguráció integritásának fenntartása érdekében a teljes konfiguráció nem töltődik be. Konfigurálja a szakaszt spec.secret a szükséges hitelesítési információk megadásához. Példák és további információk: Key Vault-hivatkozások .

Miért nem tartalmazza a létrehozott konfigurációtérkép a várt adatokat?

Győződjön meg arról, hogy a megadott kulcs-érték választók megfelelnek a várt adatoknak. Ha nem ad meg választókat, a címke nélküli összes kulcsérték le lesz töltve az Alkalmazáskonfigurációs áruházból. Kulcsszűrő használata esetén ellenőrizze, hogy az megfelel-e a várt kulcsértékek előtagjának. Ha a kulcsértékek címkékkel rendelkeznek, mindenképpen adja meg a címkeszűrőt a választókban. További példákért lásd: Kulcs-érték kijelölés.

Hogyan szabhatom testre az Azure App Configuration Kubernetes Provider telepítését?

Az Azure App Configuration Kubernetes Provider telepítésekor további Helm-értékekkel szabhatja testre a telepítést. Beállíthatja például a naplószintet, konfigurálhatja a szolgáltatót, hogy egy adott csomóponton fusson, vagy letilthatja a számítási feladat identitását. További információ: Telepítés.

Hogyan aktiválhatom a ConfigMap és a Titkos kód igény szerinti frissítését?

Az adatok automatikus frissítésére konfigurálható. Vannak azonban olyan esetek, amikor igény szerinti frissítést szeretne indítani, hogy lekérje a legújabb adatokat az Alkalmazáskonfigurációból és a Key Vaultból. Frissítés aktiválásához módosíthatja a metadata.annotations szakaszt AzureAppConfigurationProvider. A Kubernetes-szolgáltató ezután frissíti a ConfigMap és a Titkos kulcsot az Alkalmazáskonfigurációs tároló és a Key Vault legújabb adataival. Példa: Igény szerinti frissítés.

Nem javasoljuk a Kubernetes-szolgáltató által létrehozott konfigurációtérkép és titkos kód törlését vagy módosítását. Az újak a legújabb adatokból jönnek létre, de ez a helyzet állásidőt okozhat az alkalmazások számára a hibák során.

Miért nem tudok hitelesítést végezni az alkalmazáskonfigurációval a számítási feladat identitásának használatával, miután a szolgáltatót a 2.0.0-s verzióra frissítettem?

A 2.0.0-s verziótól kezdve egy felhasználó által biztosított szolgáltatásfiók szükséges az alkalmazáskonfigurációval való hitelesítéshez számítási feladat identitásának használatával. Ez a módosítás névtérelkülönítéssel növeli a biztonságot. Korábban egy Kubernetes-szolgáltató szolgáltatásfiókját használták az összes névtérhez. A frissített utasításokért tekintse meg a számítási feladatok identitásának használatáról szóló dokumentációt. Ha időre van szüksége a 2.0.0-s verzióra való frissítéshez, ideiglenesen használhatja a beállítást a workloadIdentity.globalServiceAccountEnabled=true szolgáltató telepítése során. Vegye figyelembe, hogy a szolgáltató szolgáltatásfiókjának használatának támogatása egy későbbi kiadásban elavulásra van ütemezve.

Erőforrások tisztítása

Ha el szeretné távolítani az Azure App Configuration Kubernetes Providert, de meg szeretné tartani az AKS-fürtöt, a következő paranccsal távolítsa el a szolgáltatót:

az k8s-extension delete --cluster-type managedClusters \
    --cluster-name <your-AKS-instance-name> \
    --resource-group <your-AKS-resource-group> \
    --name appconfigurationkubernetesprovider

Ha nem szeretné folytatni a cikkben létrehozott erőforrások használatát, törölje az itt létrehozott erőforráscsoportot a díjak elkerülése érdekében.

Fontos

Az erőforráscsoport törlése nem vonható vissza. Az erőforráscsoport és a benne lévő összes erőforrás véglegesen törlődik. Győződjön meg arról, hogy nem véletlenül törli a rossz erőforráscsoportot vagy erőforrásokat. Ha a cikk erőforrásait olyan erőforráscsoporton belül hozta létre, amely más megtartani kívánt erőforrásokat tartalmaz, törölje az egyes erőforrásokat a megfelelő panelről az erőforráscsoport törlése helyett.

  1. Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
  2. A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
  3. Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
  4. Válassza az Erőforráscsoport törlése elemet.
  5. A rendszer az erőforráscsoport törlésének megerősítését kéri. Adja meg a megerősítéshez az erőforráscsoport nevét, és válassza a Törlés lehetőséget.

Néhány pillanat múlva az erőforráscsoport és annak összes erőforrása törlődik.

Feljegyzés

Ha az Azure Developer CLI használatával állítja be az erőforrásokat, a parancs futtatásával törölheti a azd down sablon által létrehozott összes erőforrást azure-appconfig-aks .

Következő lépések

Ebben a rövid útmutatóban a következőket hajtja végre:

  • Létrehozott egy AKS-ben futó alkalmazást.
  • Az AKS-fürtöt az Alkalmazáskonfigurációs áruházhoz csatlakoztatta az Azure App Configuration Kubernetes Provider használatával.
  • Létrehozott egy konfigurációtérképet az Alkalmazáskonfigurációs áruház adataival.
  • Az alkalmazást az alkalmazáskonfigurációs áruház konfigurációs adataival futtatta az alkalmazáskód módosítása nélkül.

Ha szeretné megtudni, hogyan frissítheti az AKS-számítási feladatokat a konfigurációs adatok dinamikus frissítésére, folytassa a következő oktatóanyagkal.

További információ az Azure App Configuration Kubernetes Providerről: Azure App Configuration Kubernetes Provider reference.