Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
De volgende naslaginformatie bevat een overzicht van de eigenschappen die worden ondersteund door de Azure App Configuration Kubernetes-provider v2.3.0 of hoger. Zie releaseopmerkingen voor meer informatie over de wijziging.
Eigenschappen
Een AzureAppConfigurationProvider resource heeft de volgende onderliggende eigenschappen op het hoogste niveau onder de spec.
endpoint Of connectionStringReference moet worden opgegeven.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| eindpunt | Het eindpunt van Azure-app Configuration waaruit u de sleutelwaarden wilt ophalen. | alternatief | tekenreeks |
| connectionStringReference | De naam van het Kubernetes-geheim met Azure-app Configuration verbindingsreeks. | alternatief | tekenreeks |
| replicaDiscoveryEnabled | De instelling die bepaalt of replica's van Azure-app Configuratie automatisch worden gedetecteerd en gebruikt voor failover. Als de eigenschap afwezig is, wordt een standaardwaarde gebruikt true . |
onwaar | Bool |
| loadBalancingEnabled | De instelling waarmee uw workload aanvragen naar App Configuration kan distribueren naar alle beschikbare replica's. Als de eigenschap afwezig is, wordt een standaardwaarde gebruikt false . |
onwaar | Bool |
| doel | Het doel van de opgehaalde sleutelwaarden in Kubernetes. | waar | Voorwerp |
| verif | De verificatiemethode voor toegang tot Azure-app-configuratie. | onwaar | Voorwerp |
| configuratie | De instellingen voor het opvragen en verwerken van sleutelwaarden in Azure-app Configuratie. | onwaar | Voorwerp |
| geheim | De instellingen voor Key Vault-verwijzingen in Azure-app Configuration. | voorwaardelijk | Voorwerp |
| featureFlag | De instellingen voor functievlagmen in Azure-app Configuratie. | onwaar | Voorwerp |
De spec.target eigenschap heeft de volgende onderliggende eigenschap.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| configMapName | De naam van de ConfigMap die moet worden gemaakt. | waar | tekenreeks |
| configMapData | De instelling die aangeeft hoe de opgehaalde gegevens moeten worden ingevuld in de gegenereerde ConfigMap. | onwaar | Voorwerp |
Als de spec.target.configMapData eigenschap niet is ingesteld, wordt de gegenereerde ConfigMap gevuld met de lijst met sleutelwaarden die zijn opgehaald uit Azure-app Configuratie, waardoor de ConfigMap kan worden gebruikt als omgevingsvariabelen. Werk deze eigenschap bij als u de ConfigMap wilt gebruiken als een gekoppeld bestand. Deze eigenschap heeft de volgende onderliggende eigenschappen.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| soort | De instelling die aangeeft hoe de opgehaalde gegevens worden samengesteld in de gegenereerde ConfigMap. De toegestane waarden zijn , defaultjsonyaml en properties. |
optioneel | tekenreeks |
| sleutel | De sleutelnaam van de opgehaalde gegevens wanneer deze type is ingesteld op json, yaml of properties. Stel deze in op de bestandsnaam als de ConfigMap is ingesteld voor gebruik als een gekoppeld bestand. |
voorwaardelijk | tekenreeks |
| scheidingsteken | Het scheidingsteken dat wordt gebruikt voor het uitvoeren van de ConfigMap-gegevens in hiërarchische indeling wanneer het type is ingesteld json op of yaml. Het scheidingsteken is standaard leeg en de gegenereerde ConfigMap bevat sleutelwaarden in de oorspronkelijke vorm. Configureer deze instelling alleen als het configuratiebestandslaadprogramma dat in uw toepassing wordt gebruikt, geen sleutelwaarden kan laden zonder deze te converteren naar de hiërarchische indeling. |
optioneel | tekenreeks |
De spec.auth eigenschap is niet vereist als de verbindingsreeks van uw App Configuration-archief wordt geleverd door de spec.connectionStringReference eigenschap in te stellen. Anders wordt een van de identiteiten, service-principal, workloadidentiteit of beheerde identiteit gebruikt voor verificatie. De spec.auth eigenschap heeft de volgende onderliggende eigenschappen. Er moet slechts één van deze worden opgegeven. Als ze niet zijn ingesteld, wordt de door het systeem toegewezen beheerde identiteit van de virtuele-machineschaalset gebruikt.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| servicePrincipalReference | De naam van het Kubernetes-geheim dat de referenties van een service-principal bevat. Het geheim moet zich in dezelfde naamruimte bevinden als de Kubernetes-provider. | onwaar | tekenreeks |
| workloadIdentiteit | De instellingen voor het gebruik van workloadidentiteit. | onwaar | Voorwerp |
| managedIdentityClientId | De client-id van door de gebruiker toegewezen beheerde identiteit van een virtuele-machineschaalset. | onwaar | tekenreeks |
De spec.auth.workloadIdentity eigenschap heeft de volgende onderliggende eigenschap.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| serviceAccountNaam | De naam van het serviceaccount dat is gekoppeld aan de workloadidentiteit. | waar | tekenreeks |
De spec.configuration eigenschap heeft de volgende onderliggende eigenschappen.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| Selectors | De lijst met selectors voor het filteren van sleutelwaarden. | onwaar | objectmatrix |
| trimKeyPrefixes | De lijst met sleutelvoorvoegsels die moeten worden ingekort. | onwaar | tekenreeksmatrix |
| vernieuwen | De instellingen voor het vernieuwen van sleutelwaarden uit Azure-app Configuration. Als de eigenschap afwezig is, worden sleutelwaarden uit Azure-app Configuratie niet vernieuwd. | onwaar | Voorwerp |
Als de spec.configuration.selectors eigenschap niet is ingesteld, worden alle sleutelwaarden zonder label gedownload. Het bevat een matrix van selectorobjecten , die de volgende onderliggende eigenschappen hebben. Houd er rekening mee dat de sleutelwaarden van de laatste selector voorrang hebben en overlappende sleutels van de vorige selectors overschrijven.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| keyFilter | Het sleutelfilter voor het uitvoeren van query's op sleutelwaarden. Deze eigenschap en de snapshotName eigenschap mogen niet tegelijkertijd worden ingesteld. |
alternatief | tekenreeks |
| labelFilter | Het labelfilter voor het uitvoeren van query's op sleutelwaarden. Deze eigenschap en de snapshotName eigenschap mogen niet tegelijkertijd worden ingesteld. |
onwaar | tekenreeks |
| snapshotName | De naam van een momentopname van waaruit sleutelwaarden worden geladen. Deze eigenschap mag niet worden gebruikt in combinatie met andere eigenschappen. | alternatief | tekenreeks |
De spec.configuration.refresh eigenschap heeft de volgende onderliggende eigenschappen.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| Ingeschakeld | De instelling waarmee wordt bepaald of sleutelwaarden uit Azure-app Configuratie automatisch worden vernieuwd. Als de eigenschap afwezig is, wordt een standaardwaarde gebruikt false . |
onwaar | Bool |
| bewaking | De sleutelwaarden die worden bewaakt voor wijzigingsdetectie, ook wel sentinelsleutels genoemd. De sleutelwaarden uit Azure-app Configuratie worden alleen vernieuwd als ten minste één van de bewaakte sleutelwaarden wordt gewijzigd. Als deze eigenschap afwezig is, worden alle geselecteerde sleutelwaarden gecontroleerd voor vernieuwing. | onwaar | Voorwerp |
| tijdsinterval | Het interval waarmee de sleutelwaarden worden vernieuwd vanuit Azure-app Configuratie. Het moet groter dan of gelijk zijn aan 1 seconde. Als de eigenschap afwezig is, wordt een standaardwaarde van 30 seconden gebruikt. | onwaar | duurtekenreeks |
Dit spec.configuration.refresh.monitoring.keyValues is een matrix met objecten met de volgende onderliggende eigenschappen.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| sleutel | De sleutel van een sleutelwaarde. | waar | tekenreeks |
| etiket | Het label van een sleutelwaarde. | onwaar | tekenreeks |
De spec.secret eigenschap heeft de volgende onderliggende eigenschappen. Dit is vereist als key Vault-verwijzingen naar verwachting worden gedownload. Zie Typen geheim voor meer informatie over de ondersteuning voor ingebouwde Kubernetes-typen geheimen.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| doel | Het doel van de opgehaalde geheimen in Kubernetes. | waar | Voorwerp |
| verif | De verificatiemethode voor toegang tot Key Vaults. | onwaar | Voorwerp |
| vernieuwen | De instellingen voor het vernieuwen van gegevens uit Key Vaults. Als de eigenschap afwezig is, worden gegevens uit Key Vaults niet vernieuwd, tenzij de bijbehorende Key Vault-verwijzingen opnieuw worden geladen. | onwaar | Voorwerp |
De spec.secret.target eigenschap heeft de volgende onderliggende eigenschap.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| geheimeNaam | De naam van het Kubernetes-geheim dat moet worden gemaakt. | waar | tekenreeks |
| secretData | De instelling die aangeeft hoe de opgehaalde gegevens moeten worden ingevuld in het gegenereerde geheim. | waar | tekenreeks |
Als de spec.secret.target.secretData eigenschap niet is ingesteld, wordt het gegenereerde geheim gevuld met de lijst met sleutelwaarden die zijn opgehaald uit Key Vaults, waardoor het geheim kan worden gebruikt als omgevingsvariabelen. Werk deze eigenschap bij als u het geheim wilt gebruiken als een gekoppeld bestand. Deze eigenschap heeft de volgende onderliggende eigenschappen.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| soort | De instelling die aangeeft hoe de opgehaalde gegevens worden samengesteld in het gegenereerde geheim. De toegestane waarden zijn , defaultjsonyaml en properties. |
optioneel | tekenreeks |
| sleutel | De sleutelnaam van de opgehaalde gegevens wanneer deze type is ingesteld op json, yaml of properties. Stel deze in op de bestandsnaam als het geheim is ingesteld voor gebruik als een gekoppeld bestand. |
voorwaardelijk | tekenreeks |
| scheidingsteken | Het scheidingsteken dat wordt gebruikt om de geheime gegevens in hiërarchische indeling uit te voeren wanneer het type is ingesteld json op of yaml. Het scheidingsteken is standaard leeg en het gegenereerde geheim bevat sleutelwaarden in de oorspronkelijke vorm. Configureer deze instelling alleen als het configuratiebestandslaadprogramma dat in uw toepassing wordt gebruikt, geen sleutelwaarden kan laden zonder deze te converteren naar de hiërarchische indeling. |
optioneel | tekenreeks |
Als de spec.secret.auth eigenschap niet is ingesteld, wordt de door het systeem toegewezen beheerde identiteit gebruikt. Deze heeft de volgende onderliggende eigenschappen.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| servicePrincipalReference | De naam van het Kubernetes-geheim dat de referenties bevat van een service-principal die wordt gebruikt voor verificatie met Key Vaults waarvoor geen afzonderlijke verificatiemethoden zijn opgegeven. | onwaar | tekenreeks |
| workloadIdentiteit | De instellingen van de workloadidentiteit die wordt gebruikt voor verificatie met Key Vaults waarvoor geen afzonderlijke verificatiemethoden zijn opgegeven. Het heeft dezelfde onderliggende eigenschap als spec.auth.workloadIdentity. |
onwaar | Voorwerp |
| managedIdentityClientId | De client-id van een door de gebruiker toegewezen beheerde identiteit van een virtuele-machineschaalset die wordt gebruikt voor verificatie met Key Vaults waarvoor geen afzonderlijke verificatiemethoden zijn opgegeven. | onwaar | tekenreeks |
| keyVaults | De verificatiemethoden voor afzonderlijke sleutelkluizen. | onwaar | objectmatrix |
De verificatiemethode van elke Key Vault kan worden opgegeven met de volgende eigenschappen. Een van managedIdentityClientId, servicePrincipalReference of workloadIdentity moet worden opgegeven.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| URI | De URI van een sleutelkluis. | waar | tekenreeks |
| servicePrincipalReference | De naam van het Kubernetes-geheim dat de referenties bevat van een service-principal die wordt gebruikt voor verificatie met een Key Vault. | onwaar | tekenreeks |
| workloadIdentiteit | De instellingen van de workloadidentiteit die wordt gebruikt voor verificatie met een Key Vault. Het heeft dezelfde onderliggende eigenschap als spec.auth.workloadIdentity. |
onwaar | Voorwerp |
| managedIdentityClientId | De client-id van een door de gebruiker toegewezen beheerde identiteit van een virtuele-machineschaalset die wordt gebruikt voor verificatie met een Key Vault. | onwaar | tekenreeks |
De spec.secret.refresh eigenschap heeft de volgende onderliggende eigenschappen.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| Ingeschakeld | De instelling waarmee wordt bepaald of gegevens uit Key Vaults automatisch worden vernieuwd. Als de eigenschap afwezig is, wordt een standaardwaarde gebruikt false . |
onwaar | Bool |
| tijdsinterval | Het interval waarmee de gegevens worden vernieuwd vanuit Key Vault. Deze moet groter zijn dan of gelijk zijn aan 1 minuut. De sleutelkluis vernieuwen is onafhankelijk van de app-configuratievernieuwing die is geconfigureerd via spec.configuration.refresh. |
waar | duurtekenreeks |
De spec.featureFlag eigenschap heeft de volgende onderliggende eigenschappen. Dit is vereist als er functievlagmen worden gedownload.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| Selectors | De lijst met selectors voor het filteren van functievlagken. | onwaar | objectmatrix |
| vernieuwen | De instellingen voor het vernieuwen van functievlagmen van Azure-app Configuration. Als de eigenschap afwezig is, worden functievlagmen van Azure-app Configuratie niet vernieuwd. | onwaar | Voorwerp |
Als de spec.featureFlag.selectors eigenschap niet is ingesteld, worden functievlagmen niet gedownload. Het bevat een matrix van selectorobjecten , die de volgende onderliggende eigenschappen hebben. Houd er rekening mee dat de functievlagmen van de laatste selector voorrang hebben en overlappende sleutels van de vorige selectors overschrijven.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| keyFilter | Het sleutelfilter voor het uitvoeren van query's op functievlagmen. Deze eigenschap en de snapshotName eigenschap mogen niet tegelijkertijd worden ingesteld. |
alternatief | tekenreeks |
| labelFilter | Het labelfilter voor het uitvoeren van query's op functievlagmen. Deze eigenschap en de snapshotName eigenschap mogen niet tegelijkertijd worden ingesteld. |
onwaar | tekenreeks |
| snapshotName | De naam van een momentopname van waaruit functievlagmen worden geladen. Deze eigenschap mag niet worden gebruikt in combinatie met andere eigenschappen. | alternatief | tekenreeks |
De spec.featureFlag.refresh eigenschap heeft de volgende onderliggende eigenschappen.
| Naam | Beschrijving | Vereist | Typologie |
|---|---|---|---|
| Ingeschakeld | De instelling die bepaalt of functievlagmen van Azure-app Configuratie automatisch worden vernieuwd. Als de eigenschap afwezig is, wordt een standaardwaarde gebruikt false . |
onwaar | Bool |
| tijdsinterval | Het interval waarmee de functievlagmen worden vernieuwd vanuit Azure-app Configuratie. Het moet groter dan of gelijk zijn aan 1 seconde. Als de eigenschap afwezig is, wordt een standaardwaarde van 30 seconden gebruikt. | onwaar | duurtekenreeks |
Installatie
Gebruik de volgende helm install opdracht om de Azure-app Kubernetes-provider te installeren. Zie helm-values.yaml voor de volledige lijst met parameters en hun standaardwaarden. U kunt de standaardwaarden overschrijven door de --set vlag door te geven aan de opdracht.
helm install azureappconfiguration.kubernetesprovider \
oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
--namespace azappconfig-system \
--create-namespace
Automatisch schalen
Automatisch schalen is standaard uitgeschakeld. Als u echter meerdere AzureAppConfigurationProvider resources hebt om meerdere ConfigMaps/Geheimen te produceren, kunt u automatische schaalaanpassing van horizontale pods inschakelen door in te stellen autoscaling.enabled op true.
helm install azureappconfiguration.kubernetesprovider \
oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
--namespace azappconfig-system \
--create-namespace
--set autoscaling.enabled=true
Gegevensverzameling
De software kan informatie over u en uw gebruik van de software verzamelen en naar Microsoft verzenden. Microsoft kan deze informatie gebruiken voor het leveren van services en het verbeteren van producten en services. U kunt de telemetrie uitschakelen door de requestTracing.enabled=false Azure-app Configuratie-Kubernetes-provider in te stellen. Er zijn ook enkele functies in de software waarmee u en Microsoft gegevens kunnen verzamelen van gebruikers van uw toepassingen. Als u deze functies gebruikt, moet u voldoen aan de toepasselijke wetgeving, inclusief het verstrekken van de juiste kennisgevingen aan gebruikers van uw toepassingen, samen met een kopie van de privacyverklaring van Microsoft. Onze Privacyverklaring bevindt zich op https://go.microsoft.com/fwlink/?LinkID=824704. Meer informatie over het verzamelen en gebruiken van gegevens vindt u in de Help-documentatie en onze privacyverklaring. Door de software te gebruiken geeft u aan in te stemmen met deze praktijken.
Voorbeelden
Verificatie
Door het systeem toegewezen beheerde identiteit van virtuele-machineschaalset gebruiken
Schakel de door het systeem toegewezen beheerde identiteit in de virtuele-machineschaalset in die wordt gebruikt door het AKS-cluster (Azure Kubernetes Service).
Verdeel de door het systeem toegewezen rol App Configuration Data Reader in Azure-app Configuration.
Implementeer de volgende voorbeeldresource
AzureAppConfigurationProviderin het AKS-cluster.apiVersion: azconfig.io/v1 kind: AzureAppConfigurationProvider metadata: name: appconfigurationprovider-sample spec: endpoint: <your-app-configuration-store-endpoint> target: configMapName: configmap-created-by-appconfig-provider
Door de gebruiker toegewezen beheerde identiteit van virtuele-machineschaalset gebruiken
Maak een door de gebruiker toegewezen beheerde identiteit en noteer de client-id nadat deze is gemaakt.
Wijs de door de gebruiker toegewezen beheerde identiteit toe aan de virtuele-machineschaalset die wordt gebruikt door het AKS-cluster (Azure Kubernetes Service).
Verdeel de door de gebruiker toegewezen rol App Configuration Data Reader in Azure-app Configuration.
Stel de
spec.auth.managedIdentityClientIdeigenschap in op de client-id van de door de gebruiker toegewezen beheerde identiteit in de volgende voorbeeldresourceAzureAppConfigurationProvideren implementeer deze in het AKS-cluster.apiVersion: azconfig.io/v1 kind: AzureAppConfigurationProvider metadata: name: appconfigurationprovider-sample spec: endpoint: <your-app-configuration-store-endpoint> target: configMapName: configmap-created-by-appconfig-provider auth: managedIdentityClientId: <your-managed-identity-client-id>
Service-principal gebruiken
Verdeel de rol App Configuration Data Reader van de service-principal in Azure-app Configuration.
Maak een Kubernetes-geheim in dezelfde naamruimte als de
AzureAppConfigurationProviderresource en voeg azure_client_id, azure_client_secret en azure_tenant_id van de service-principal toe aan het geheim.Stel de
spec.auth.servicePrincipalReferenceeigenschap in op de naam van het geheim in de volgende voorbeeldresourceAzureAppConfigurationProvideren implementeer deze in het Kubernetes-cluster.apiVersion: azconfig.io/v1 kind: AzureAppConfigurationProvider metadata: name: appconfigurationprovider-sample spec: endpoint: <your-app-configuration-store-endpoint> target: configMapName: configmap-created-by-appconfig-provider auth: servicePrincipalReference: <your-service-principal-secret-name>
Workloadidentiteit gebruiken
Schakel workloadidentiteit in op het AKS-cluster (Azure Kubernetes Service).
Haal de URL van de OIDC-verlener van het AKS-cluster op.
Maak een door de gebruiker toegewezen beheerde identiteit en noteer de client-id, tenant-id, naam en resourcegroep.
Verdeel de door de gebruiker toegewezen rol App Configuration Data Reader in Azure-app Configuration.
Maak een serviceaccount door een YAML-bestand (bijvoorbeeld serviceAccount.yaml) toe te voegen met de volgende inhoud aan de map met uw AKS-implementatiebestanden. Het serviceaccount wordt gemaakt wanneer u al uw implementatiewijzigingen toepast op uw AKS-cluster (bijvoorbeeld met behulp van
kubectl apply). Vervang<your-managed-identity-client-id>door de client-id en<your-managed-identity-tenant-id>door de tenant-id van de door de gebruiker toegewezen beheerde identiteit die zojuist is gemaakt. Vervang door<your-service-account-name>de naam van uw voorkeur.apiVersion: v1 kind: ServiceAccount metadata: name: <your-service-account-name> annotations: azure.workload.identity/client-id: <your-managed-identity-client-id> azure.workload.identity/tenant-id: <your-managed-identity-tenant-id>Maak een federatieve identiteitsreferentie voor de door de gebruiker toegewezen beheerde identiteit met behulp van de Azure CLI. Vervang
<user-assigned-identity-name>door de naam en<resource-group>door de resourcegroep van de zojuist gemaakte door de gebruiker toegewezen beheerde identiteit. Vervang door<aks-oidc-issuer>de URL van de OIDC-verlener van het AKS-cluster. Vervang door<your-service-account-name>de naam van het zojuist gemaakte serviceaccount. Vervang door<federated-identity-credential-name>de naam van uw voorkeur voor de federatieve identiteitsreferentie.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:default:<your-service-account-name> --audience api://AzureADTokenExchangeHoud er rekening mee dat het onderwerp van de federatieve identiteitsreferentie de volgende indeling moet volgen:
system:serviceaccount:<service-account-namespace>:<service-account-name>.Stel de
spec.auth.workloadIdentity.serviceAccountNameeigenschap in op de naam van het serviceaccount in de volgende voorbeeldresourceAzureAppConfigurationProvider. Zorg ervoor dat deAzureAppConfigurationProviderresource en het serviceaccount zich in dezelfde naamruimte bevinden.apiVersion: azconfig.io/v1 kind: AzureAppConfigurationProvider metadata: name: appconfigurationprovider-sample spec: endpoint: <your-app-configuration-store-endpoint> target: configMapName: configmap-created-by-appconfig-provider auth: workloadIdentity: serviceAccountName: <your-service-account-name>
Gebruik verbindingsreeks
Maak een Kubernetes-geheim in dezelfde naamruimte als de
AzureAppConfigurationProviderresource en voeg Azure-app Configuration-verbindingsreeks toe met de sleutel azure_app_configuration_connection_string in het geheim.Stel de
spec.connectionStringReferenceeigenschap in op de naam van het geheim in de volgende voorbeeldresourceAzureAppConfigurationProvideren implementeer deze in het Kubernetes-cluster.apiVersion: azconfig.io/v1 kind: AzureAppConfigurationProvider metadata: name: appconfigurationprovider-sample spec: connectionStringReference: <your-connection-string-secret-name> target: configMapName: configmap-created-by-appconfig-provider
Sleutel-waardeselectie
Gebruik de selectors eigenschap om de sleutelwaarden te filteren die moeten worden gedownload uit Azure-app Configuratie.
In het volgende voorbeeld worden alle sleutelwaarden zonder label gedownload.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
In het volgende voorbeeld worden twee selectors gebruikt om twee sets sleutelwaarden op te halen, elk met unieke labels. Het is belangrijk te weten dat de waarden van de laatste selector voorrang krijgen en overlappende sleutels van de vorige selectors overschrijven.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
configuration:
selectors:
- keyFilter: app1*
labelFilter: common
- keyFilter: app1*
labelFilter: development
Een momentopname kan alleen of samen met andere sleutel-waardekiezers worden gebruikt. In het volgende voorbeeld laadt u sleutelwaarden van algemene configuratie uit een momentopname en overschrijft u enkele waarden met sleutelwaarden voor ontwikkeling.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
configuration:
selectors:
- snapshotName: app1_common_configuration
- keyFilter: app1*
labelFilter: development
Sleutelvoorvoegsel bijsnijden
In het volgende voorbeeld wordt de trimKeyPrefixes eigenschap gebruikt om twee voorvoegsels van sleutelnamen te knippen voordat deze worden toegevoegd aan de gegenereerde ConfigMap.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
configuration:
trimKeyPrefixes: [prefix1, prefix2]
Configuratie vernieuwen
Wanneer u wijzigingen aanbrengt in uw gegevens in Azure-app Configuratie, wilt u mogelijk dat deze wijzigingen automatisch worden vernieuwd in uw Kubernetes-cluster. In het volgende voorbeeld controleert de Kubernetes-provider elke minuut op updates van Azure App Configuration. De bijbehorende ConfigMap en Het bijbehorende geheim worden alleen opnieuw gegenereerd wanneer er wijzigingen worden gedetecteerd. Zie Aanbevolen procedures voor het vernieuwen van configuratiesvoor meer informatie over het controleren van configuratiewijzigingen.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
configuration:
selectors:
- keyFilter: app1*
labelFilter: common
refresh:
enabled: true
interval: 1m
Key Vault-verwijzingen
Verificatie
In het volgende voorbeeld wordt één Key Vault geverifieerd met een service-principal, terwijl alle andere Key Vaults worden geverifieerd met een door de gebruiker toegewezen beheerde identiteit.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
configuration:
selectors:
- keyFilter: app1*
secret:
target:
secretName: secret-created-by-appconfig-provider
auth:
managedIdentityClientId: <your-user-assigned-managed-identity-client-id>
keyVaults:
- uri: <your-key-vault-uri>
servicePrincipalReference: <name-of-secret-containing-service-principal-credentials>
Typen geheim
Er worden momenteel twee ingebouwde Kubernetes-typen geheimen, ondoorzichtig en TLS ondersteund. Geheimen die zijn omgezet vanuit Key Vault-verwijzingen, worden standaard opgeslagen als ondoorzichtig geheimtype . Als u een Key Vault-verwijzing naar een certificaat hebt en dit wilt opslaan als het type TLS-geheim, kunt u een tag met de volgende naam en waarde toevoegen aan de Key Vault-verwijzing in Azure-app Configuratie. Hierdoor wordt een geheim met het kubernetes.io/tls type gegenereerd en benoemd naar de sleutel van de Key Vault-verwijzing.
| Naam | Weergegeven als |
|---|---|
| .kubernetes.secret.type | kubernetes.io/tls |
In de volgende voorbeelden ziet u hoe de gegevens worden ingevuld in de gegenereerde geheimen met verschillende typen.
Ervan uitgaande dat een App Configuration-archief deze Key Vault-verwijzingen bevat:
| sleutel | waarde | etiketten |
|---|---|---|
| app1-secret1 | <Key Vault-verwijzing 1> | {} |
| app1-secret2 | <Key Vault-verwijzing 2> | {} |
| app1-certificaat | <Key Vault-verwijzing 3> | {".kubernetes.secret.type": "kubernetes.io/tls"} |
In het volgende voorbeeld worden geheimen van zowel ondoorzichtige als TLS-typen gegenereerd.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
configuration:
selectors:
- keyFilter: app1*
secret:
target:
secretName: secret-created-by-appconfig-provider
auth:
managedIdentityClientId: <your-user-assigned-managed-identity-client-id>
De gegenereerde geheimen worden gevuld met de volgende gegevens:
name: secret-created-by-appconfig-provider
type: Opaque
data:
app1-secret1: <secret value retrieved from Key Vault>
app1-secret2: <secret value retrieved from Key Vault>
name: app1-certificate
type: kubernetes.io/tls
data:
tls.crt: |
<certificate data retrieved from Key Vault>
tls.key: |
<certificate key retrieved from Key Vault>
Geheimen vernieuwen vanuit Key Vault
Voor het vernieuwen van geheimen uit Key Vaults moeten doorgaans de bijbehorende Key Vault-verwijzingen uit Azure-app-configuratie opnieuw worden geladen. Met de spec.secret.refresh eigenschap kunt u de geheimen echter onafhankelijk van Key Vault vernieuwen. Dit is vooral handig om ervoor te zorgen dat uw workload tijdens het rouleren van geheimen automatisch bijgewerkte geheimen uit Key Vault ophaalt. Houd er rekening mee dat als u de nieuwste versie van een geheim wilt laden, de Key Vault-verwijzing geen versiegeheim mag zijn.
In het volgende voorbeeld worden alle niet-versiebeheerde geheimen van Key Vault elk uur vernieuwd.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
configuration:
selectors:
- keyFilter: app1*
labelFilter: common
secret:
target:
secretName: secret-created-by-appconfig-provider
auth:
managedIdentityClientId: <your-user-assigned-managed-identity-client-id>
refresh:
enabled: true
interval: 1h
Functievlagmen
In het volgende voorbeeld worden functievlagmen met sleutels die beginnen met app1 en labels die gelijk zijn aan common , elke 10 minuten gedownload en vernieuwd. Houd er rekening mee dat als u functievlaggen in de gegenereerde ConfigMap wilt vullen, de configMapData.type eigenschap moet zijn json of yaml.
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: appSettings.json
featureFlag:
selectors:
- keyFilter: app1*
labelFilter: common
refresh:
enabled: true
interval: 10m
Vernieuwen op aanvraag
Hoewel u automatische gegevensvernieuwing kunt instellen, is het mogelijk dat u een vernieuwing op aanvraag wilt activeren om de meest recente gegevens op te halen uit App Configuration en Key Vault. Dit kan worden gedaan door aantekeningen toe te voegen of bij te werken in de metadata.annotations sectie van de AzureAppConfigurationProvider. De Kubernetes-provider zal de configuratiemap en het geheim vervolgens afstemmen en bijwerken met de meest recente gegevens uit uw App Configuration-archief en Key Vault.
In het volgende voorbeeld wordt het AzureAppConfigurationProvider bijgewerkt met een nieuwe aantekening. Pas na de wijziging de wijzigingen toe met behulp van kubectl apply het activeren van een vernieuwing op aanvraag.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
annotations:
key1: value1
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
configuration:
selectors:
- keyFilter: app1*
labelFilter: common
secret:
target:
secretName: secret-created-by-appconfig-provider
auth:
managedIdentityClientId: <your-user-assigned-managed-identity-client-id>
ConfigMap Consumption
Toepassingen die worden uitgevoerd in Kubernetes gebruiken doorgaans de ConfigMap als omgevingsvariabelen of als configuratiebestanden. Als de configMapData.type eigenschap afwezig is of als standaard is ingesteld, wordt de ConfigMap gevuld met de geitemiseerde lijst met gegevens die zijn opgehaald uit Azure-app Configuratie, die eenvoudig als omgevingsvariabelen kunnen worden gebruikt. Als de configMapData.type eigenschap is ingesteld op json, yaml of eigenschappen, worden gegevens die zijn opgehaald uit Azure-app Configuratie gegroepeerd in één item met de sleutelnaam die is opgegeven door de configMapData.key eigenschap in de gegenereerde ConfigMap, die kunnen worden gebruikt als een gekoppeld bestand.
In de volgende voorbeelden ziet u hoe de gegevens worden ingevuld in de gegenereerde ConfigMap met verschillende instellingen van de configMapData.type eigenschap.
Ervan uitgaande dat een App Configuration-archief deze sleutelwaarden heeft:
| sleutel | waarde |
|---|---|
| sleutel 1 | waarde1 |
| sleutel 2 | waarde2 |
| key3 | waarde3 |
En de configMapData.type eigenschap is afwezig of ingesteld op default,
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
De gegenereerde ConfigMap wordt gevuld met de volgende gegevens:
data:
key1: value1
key2: value2
key3: value3