Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
- Alkalmazáskonfigurációs áruház. Hozzon létre egy áruházat.
- Az Azure Container Registry egy példánya. Hozzon létre egy beállításjegyzéket.
- Egy AKS-fürt, amely jogosult lemezképek lekérésére a tárolóregisztrációs adatbázisból. Hozzon létre egy AKS-fürtöt.
- .NET SDK 8.0 vagy újabb.
- Az Azure CLI.
- Docker Desktop.
- Helm.
- kubectl.
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
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.0A 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>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" } }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
AddJsonFilemetó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
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 publishedHozzon 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"]Hozzon létre egy tárolórendszerképet
aspnetappa következő parancs futtatásával:docker build --tag aspnetapp .
A rendszerkép leküldése a Tárolóregisztrációs adatbázisba
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 myregistryA parancs akkor ad
Login Succeededvissza, ha sikeresen bejelentkezik.A rendszerképhez hívott
myregistry.azurecr.io/aspnetapp:v1címke létrehozásához használja aaspnetappdocker-címke parancsot. Cserélje lemyregistrya beállításjegyzék nevére.docker tag aspnetapp myregistry.azurecr.io/aspnetapp:v1Tipp.
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ésmyregistry.azurecr.io/aspnetapp.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átottaspnetappadattárbav1:docker push myregistry.azurecr.io/aspnetapp:v1
Az alkalmazás üzembe helyezése
Hozzon létre egy üzembehelyezési könyvtárat a projekt gyökérkönyvtárában.
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.imageaz 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: 80Szolgáltatás definiálásához
LoadBalanceradjon 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-demoAnnak é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>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-demoA szolgáltatás által
LoadBalancerközzétett külső IP-cím lekéréséhez futtassa a következő parancsot:kubectl get service aspnetapp-demo-service -n appconfig-demoEgy 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:
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
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-extensionAzure CLI-bővítményekhez.az extension add --name k8s-extensionRegisztrálja az erőforrás-szolgáltatót
KubernetesConfiguration.az provider register --namespace Microsoft.KubernetesConfigurationTelepítse az Alkalmazáskonfiguráció AKS-bővítményét. Cserélje le a és
resource-groupparaméterértékeketcluster-nameaz AKS-példány megfelelő értékeire. Alapértelmezés szerint a szolgáltató telepítve van aazappconfig-systemné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.AppConfigurationTovábbi információ: Az Azure App Configuration AKS-bővítmény telepítése.
Erőforrás definiálásához
AzureAppConfigurationProvideradjon hozzá egy appConfigurationProvider.yaml fájlt az alábbi tartalommal az üzembehelyezési könyvtárhoz.AzureAppConfigurationProvideregy 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
endpointmező értékét az Azure App Configuration tár végpontjára. Folytassa a következő lépéssel aauthszakasz frissítéséhez a hitelesítési adataival.Feljegyzés
AzureAppConfigurationProvideregy 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.
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
serviceAccountNamemező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.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-providercsatlakoztatott adatkötetként használja. Fontos, hogy azvolumeMounts.mountPathérték megegyezik aWORKDIRDockerfile-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éktemplate.spec.containers.imagemegegyezik 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-providerA 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-demoFrissítse a böngészőt. A lapon a frissített tartalom látható.
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.secreta 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.
- Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
- A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
- Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
- Válassza az Erőforráscsoport törlése elemet.
- 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.