Sdílet prostřednictvím


Referenční informace ke zprostředkovateli Kubernetes konfigurace Aplikace Azure

Následující referenční informace popisují vlastnosti podporované poskytovatelem v2.3.0 Kubernetes služby Azure App Configuration nebo novějším. Další informace o změně najdete v poznámkách k verzi.

Vlastnosti

Prostředek AzureAppConfigurationProvider má následující podřízené vlastnosti nejvyšší úrovně pod položkou spec. Buď endpoint nebo connectionStringReference musí být zadán.

Název Popis Povinní účastníci Typ
koncový bod Koncový bod konfigurace Aplikace Azure, ze kterého chcete načíst hodnoty klíče. alternativa řetězec
connectionStringReference Název tajného kódu Kubernetes, který obsahuje připojovací řetězec konfigurace Aplikace Azure. alternativa řetězec
replicaDiscoveryEnabled Nastavení určující, jestli se repliky Aplikace Azure Konfigurace automaticky zjistí a použijí pro převzetí služeb při selhání. Pokud vlastnost chybí, použije se výchozí hodnota true . false (nepravda) Booleova hodnota
loadBalancingEnabled Nastavení, které umožňuje vaší úloze distribuovat požadavky do konfigurace aplikace napříč všemi dostupnými replikami. Pokud vlastnost chybí, použije se výchozí hodnota false . false (nepravda) Booleova hodnota
cíl Cíl načtených hodnot klíčů v Kubernetes. pravda objekt
autentizace Metoda ověřování pro přístup k Aplikace Azure Configuration. false (nepravda) objekt
konfigurace Nastavení pro dotazování a zpracování hodnot klíče v Aplikace Azure Configuration. false (nepravda) objekt
tajný klíč Nastavení pro odkazy služby Key Vault v konfiguraci Aplikace Azure. podmíněný objekt
featureFlag Nastavení příznaků funkcí v konfiguraci Aplikace Azure. false (nepravda) objekt

Vlastnost spec.target má následující podřízenou vlastnost.

Název Popis Povinní účastníci Typ
configMapName Název objektu ConfigMap, který se má vytvořit. pravda řetězec
configMapData Nastavení, které určuje, jak mají být načtená data naplněna ve vygenerované objektu ConfigMap. false (nepravda) objekt

spec.target.configMapData Pokud vlastnost není nastavena, vygenerovaná objekt ConfigMap se naplní seznamem hodnot klíčů načtených z Aplikace Azure Configuration, což umožňuje, aby objekt ConfigMap byl využit jako proměnné prostředí. Tuto vlastnost aktualizujte, pokud chcete objekt ConfigMap využívat jako připojený soubor. Tato vlastnost má následující podřízené vlastnosti.

Název Popis Povinní účastníci Typ
typ Nastavení, které určuje, jak se načtená data vytvářejí ve vygenerované objektu ConfigMap. Povolené hodnoty zahrnují default, jsonyaml a properties. volitelný řetězec
klíč Název klíče načtených dat, pokud je nastavena type na jsonhodnotu , yaml nebo properties. Pokud je objekt ConfigMap nastavený tak, aby byl využit jako připojený soubor, nastavte ho na název souboru. podmíněný řetězec
oddělovač Oddělovač, který se používá k výstupu dat ConfigMap v hierarchickém formátu, pokud je typ nastaven na json nebo yaml. Oddělovač je ve výchozím nastavení prázdný a vygenerovaný objekt ConfigMap obsahuje hodnoty klíčů v původní podobě. Toto nastavení nakonfigurujte jenom v případě, že zavaděč konfiguračního souboru použitého v aplikaci nemůže načíst hodnoty klíčů bez převodu na hierarchický formát. volitelný řetězec

Tato spec.auth vlastnost se nevyžaduje, pokud je připojovací řetězec obchodu App Configuration k dispozici nastavením spec.connectionStringReference vlastnosti. V opačném případě se k ověřování použije jedna z identit, instančního objektu, identity úlohy nebo spravované identity. Má spec.auth následující podřízené vlastnosti. Je třeba zadat pouze jeden z nich. Pokud žádná z nich není nastavená, použije se spravovaná identita přiřazená systémem škálovací sady virtuálních počítačů.

Název Popis Povinní účastníci Typ
servicePrincipalReference Název tajného kódu Kubernetes, který obsahuje přihlašovací údaje instančního objektu. Tajný klíč musí být ve stejném oboru názvů jako poskytovatel Kubernetes. false (nepravda) řetězec
Identita pracovní zátěže Nastavení pro použití identity úloh. false (nepravda) objekt
managedIdentityClientId ID klienta spravované identity přiřazené uživatelem škálovací sady virtuálních počítačů. false (nepravda) řetězec

Vlastnost spec.auth.workloadIdentity má následující podřízenou vlastnost.

Název Popis Povinní účastníci Typ
Název_účtu služby Název účtu služby přidruženého k identitě úlohy. pravda řetězec

spec.configuration následující podřízené vlastnosti.

Název Popis Povinní účastníci Typ
voliči Seznam selektorů pro filtrování klíč-hodnota. false (nepravda) Pole objektů
trimKeyPrefixes Seznam předpon klíčů, které se mají oříznout. false (nepravda) Řetězcové pole
aktualizovat Nastavení pro aktualizaci hodnot klíčů z Aplikace Azure Konfigurace. Pokud vlastnost chybí, hodnoty klíče z Aplikace Azure Konfigurace se neaktualizuje. false (nepravda) objekt

Pokud vlastnost spec.configuration.selectors není nastavená, stáhnou se všechny hodnoty klíčů bez popisku. Obsahuje pole objektů selektoru, které mají následující podřízené vlastnosti. Všimněte si, že hodnoty klíče posledního selektoru mají přednost a přepíší všechny překrývající se klíče z předchozích selektorů.

Název Popis Povinní účastníci Typ
keyFilter Filtr klíčů pro dotazování hodnot klíčů. Tato vlastnost a snapshotName vlastnost by neměly být nastaveny současně. alternativa řetězec
labelFilter Filtr popisků pro dotazování hodnot klíč-hodnota. Tato vlastnost a snapshotName vlastnost by neměly být nastaveny současně. false (nepravda) řetězec
Filtry značek Tag filtruje dotazy na klíčové hodnoty. Tato vlastnost a snapshotName vlastnost by neměly být nastaveny současně. Filtr tagů musí být formátován jako tag1=value1. false (nepravda) Řetězcové pole
snapshotName Název snímku, ze kterého se načtou hodnoty klíče. Tato vlastnost by neměla být použita ve spojení s jinými vlastnostmi. alternativa řetězec

Vlastnost spec.configuration.refresh má následující podřízené vlastnosti.

Název Popis Povinní účastníci Typ
povoleno Nastavení určující, jestli se hodnoty klíče z Aplikace Azure Konfigurace automaticky aktualizují. Pokud vlastnost chybí, použije se výchozí hodnota false . false (nepravda) Booleova hodnota
Monitorování Hodnoty klíčů monitorované pro detekci změn, neboli klíče sentinelu. Hodnoty klíčů z Aplikace Azure Konfigurace se aktualizují jenom v případě, že se změní alespoň jedna z monitorovaných hodnot klíče. Pokud tato vlastnost chybí, budou všechny vybrané hodnoty klíče monitorovány pro aktualizaci. false (nepravda) objekt
interval Interval, ve kterém se hodnoty klíče aktualizují z konfigurace Aplikace Azure. Musí být větší nebo rovna 1 sekundě. Pokud vlastnost chybí, použije se výchozí hodnota 30 sekund. false (nepravda) řetězec doby trvání

Jedná se spec.configuration.refresh.monitoring.keyValues o pole objektů, které mají následující podřízené vlastnosti.

Název Popis Povinní účastníci Typ
klíč Klíč klíč-hodnota. pravda řetězec
jmenovka Popisek hodnoty klíče. false (nepravda) řetězec

Vlastnost spec.secret má následující podřízené vlastnosti. Vyžaduje se, pokud se očekává, že se stáhnou nějaké odkazy na službu Key Vault. Další informace o podpoře předdefinovaných typů tajných kódů Kubernetes najdete v tématu Typy tajných kódů.

Název Popis Povinní účastníci Typ
cíl Cíl načtených tajných kódů v Kubernetes. pravda objekt
autentizace Metoda ověřování pro přístup ke službě Key Vault. false (nepravda) objekt
aktualizovat Nastavení pro aktualizaci dat ze služby Key Vault. Pokud vlastnost chybí, data ze služby Key Vault se neaktualizuje, pokud se znovu nenačtou odpovídající odkazy služby Key Vault. false (nepravda) objekt

Vlastnost spec.secret.target má následující podřízenou vlastnost.

Název Popis Povinní účastníci Typ
tajnéJméno Název tajného kódu Kubernetes, který se má vytvořit. pravda řetězec
secretData Nastavení, které určuje, jak mají být načtená data naplněna ve vygenerovaném tajném kódu. pravda řetězec

spec.secret.target.secretData Pokud vlastnost není nastavená, vygenerovaný tajný kód se naplní seznamem hodnot klíčů načtených ze služby Key Vaults, což umožňuje použití tajného klíče jako proměnných prostředí. Tuto vlastnost aktualizujte, pokud chcete tajný kód použít jako připojený soubor. Tato vlastnost má následující podřízené vlastnosti.

Název Popis Povinní účastníci Typ
typ Nastavení, které určuje, jak se načtená data vytvářejí ve vygenerovaném tajném kódu. Povolené hodnoty zahrnují default, jsonyaml a properties. volitelný řetězec
klíč Název klíče načtených dat, pokud je nastavena type na jsonhodnotu , yaml nebo properties. Pokud je tajný klíč nastavený tak, aby byl využit jako připojený soubor, nastavte ho na název souboru. podmíněný řetězec
oddělovač Oddělovač, který se používá k výstupu tajných dat v hierarchickém formátu, pokud je typ nastaven na json nebo yaml. Oddělovač je ve výchozím nastavení prázdný a vygenerovaný tajný klíč obsahuje hodnoty klíče v původní podobě. Toto nastavení nakonfigurujte jenom v případě, že zavaděč konfiguračního souboru použitého v aplikaci nemůže načíst hodnoty klíčů bez převodu na hierarchický formát. volitelný řetězec

spec.secret.auth Pokud vlastnost není nastavená, použije se spravovaná identita přiřazená systémem. Má následující podřízené vlastnosti.

Název Popis Povinní účastníci Typ
servicePrincipalReference Název tajného kódu Kubernetes, který obsahuje přihlašovací údaje instančního objektu používaného k ověřování pomocí služby Key Vault, které nemají zadané jednotlivé metody ověřování. false (nepravda) řetězec
Identita pracovní zátěže Nastavení identity úlohy používané k ověřování ve službě Key Vault, které nemají zadané jednotlivé metody ověřování. Má stejnou podřízenou vlastnost jako spec.auth.workloadIdentity. false (nepravda) objekt
managedIdentityClientId ID klienta spravované identity přiřazené uživatelem škálovací sady virtuálních počítačů, které se používají k ověřování ve službě Key Vault, které nemají zadané jednotlivé metody ověřování. false (nepravda) řetězec
Trezory klíčů Metody ověřování pro jednotlivé trezory klíčů. false (nepravda) Pole objektů

Metodu ověřování jednotlivých trezorů klíčů je možné zadat s následujícími vlastnostmi. Jedna z hodnot managedIdentityClientIdnebo servicePrincipalReferenceworkloadIdentity musí být poskytována.

Název Popis Povinní účastníci Typ
URI Identifikátor URI služby Key Vault. pravda řetězec
servicePrincipalReference Název tajného klíče Kubernetes, který obsahuje přihlašovací údaje instančního objektu používaného k ověřování ve službě Key Vault. false (nepravda) řetězec
Identita pracovní zátěže Nastavení identity úlohy používané k ověřování ve službě Key Vault. Má stejnou podřízenou vlastnost jako spec.auth.workloadIdentity. false (nepravda) objekt
managedIdentityClientId ID klienta spravované identity přiřazené uživatelem škálovací sady virtuálních počítačů sloužící k ověřování ve službě Key Vault. false (nepravda) řetězec

Vlastnost spec.secret.refresh má následující podřízené vlastnosti.

Název Popis Povinní účastníci Typ
povoleno Nastavení určující, jestli se data ze služby Key Vault automaticky aktualizují. Pokud vlastnost chybí, použije se výchozí hodnota false . false (nepravda) Booleova hodnota
interval Interval, ve kterém se data aktualizují ze služby Key Vault. Musí být větší nebo rovna 1 minutě. Aktualizace služby Key Vault je nezávislá na aktualizaci konfigurace aplikace nakonfigurované prostřednictvím spec.configuration.refresh. pravda řetězec doby trvání

Vlastnost spec.featureFlag má následující podřízené vlastnosti. Vyžaduje se, pokud se očekává, že se stáhnou nějaké příznaky funkcí.

Název Popis Povinní účastníci Typ
voliči Seznam selektorů pro filtrování příznaků funkcí false (nepravda) Pole objektů
aktualizovat Nastavení pro aktualizaci příznaků funkcí z konfigurace Aplikace Azure. Pokud vlastnost chybí, příznaky funkcí z Aplikace Azure Konfigurace se neaktualizuje. false (nepravda) objekt

spec.featureFlag.selectors Pokud vlastnost není nastavená, příznaky funkcí se nestáhnou. Obsahuje pole objektů selektoru, které mají následující podřízené vlastnosti. Všimněte si, že příznaky funkcí posledního selektoru mají přednost a přepíší všechny překrývající se klávesy z předchozích selektorů.

Název Popis Povinní účastníci Typ
keyFilter Klíčový filtr pro dotazování příznaků funkcí. Tato vlastnost a snapshotName vlastnost by neměly být nastaveny současně. alternativa řetězec
labelFilter Filtr popisků pro dotazování příznaků funkcí. Tato vlastnost a snapshotName vlastnost by neměly být nastaveny současně. false (nepravda) řetězec
Filtry značek Filtry tagů pro dotazování příznaků funkcí. Tato vlastnost a snapshotName vlastnost by neměly být nastaveny současně. Filtr tagů musí být formátován jako tag1=value1. false (nepravda) Řetězcové pole
snapshotName Název snímku, ze kterého se načítají příznaky funkcí. Tato vlastnost by neměla být použita ve spojení s jinými vlastnostmi. alternativa řetězec

Vlastnost spec.featureFlag.refresh má následující podřízené vlastnosti.

Název Popis Povinní účastníci Typ
povoleno Nastavení určující, jestli se příznaky funkcí z Aplikace Azure Konfigurace aktualizují automaticky. Pokud vlastnost chybí, použije se výchozí hodnota false . false (nepravda) Booleova hodnota
interval Interval, ve kterém se příznaky funkcí aktualizují z Aplikace Azure Konfigurace. Musí být větší nebo rovna 1 sekundě. Pokud vlastnost chybí, použije se výchozí hodnota 30 sekund. false (nepravda) řetězec doby trvání

Instalace

Pomocí následujícího helm install příkazu nainstalujte poskytovatele Aplikace Azure Configuration Kubernetes. Úplný seznam parametrů a jejich výchozích hodnot najdete v souboru helm-values.yaml . Výchozí hodnoty můžete přepsat předáním --set příznaku příkazu.

helm install azureappconfiguration.kubernetesprovider \
    oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
    --namespace azappconfig-system \
    --create-namespace

Automatické škálování

Ve výchozím nastavení je automatické škálování zakázané. Pokud však máte více AzureAppConfigurationProvider prostředků k vytvoření více objektů ConfigMaps/Secrets, můžete povolit horizontální automatické škálování podu nastavením na autoscaling.enabledtrue.

helm install azureappconfiguration.kubernetesprovider \
    oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
    --namespace azappconfig-system \
    --create-namespace
    --set autoscaling.enabled=true

Shromažďování dat

Software může shromažďovat informace o vás a vašem používání softwaru a posílat ho společnosti Microsoft. Společnost Microsoft může tyto informace použít k poskytování služeb a zlepšování svých produktů a služeb. Telemetrii můžete vypnout nastavením requestTracing.enabled=false při instalaci poskytovatele Aplikace Azure Configuration Kubernetes. V softwaru jsou také některé funkce, které vám a Microsoftu umožňují shromažďovat data od uživatelů vašich aplikací. Pokud tyto funkce používáte, musíte dodržovat příslušné zákony, včetně poskytování vhodných oznámení uživatelům vašich aplikací společně s kopií prohlášení společnosti Microsoft o zásadách ochrany osobních údajů společnosti Microsoft. Prohlášení společnosti Microsoft o ochraně osobních údajů je umístěno na adrese https://go.microsoft.com/fwlink/?LinkID=824704. Další informace o shromažďováníach Užitím tohoto softwaru vyjadřujete svůj souhlas s těmito postupy.

Příklady

Ověřování

Použití spravované identity přiřazené systémem škálovací sady virtuálních počítačů

  1. Povolte spravovanou identitu přiřazenou systémem ve škálovací sadě virtuálních počítačů používanou clusterem Azure Kubernetes Service (AKS).

  2. Udělte roli Čtenář dat app configuration app configuration spravované identity přiřazené systémem v Aplikace Azure Configuration.

  3. Do clusteru AKS nasaďte následující ukázkový AzureAppConfigurationProvider prostředek.

    apiVersion: azconfig.io/v1
    kind: AzureAppConfigurationProvider
    metadata:
      name: appconfigurationprovider-sample
    spec:
      endpoint: <your-app-configuration-store-endpoint>
      target:
        configMapName: configmap-created-by-appconfig-provider
    

Použití spravované identity přiřazené uživatelem škálovací sady virtuálních počítačů

  1. Vytvořte spravovanou identitu přiřazenou uživatelem a po vytvoření si poznamenejte její ID klienta.

  2. Přiřaďte spravovanou identitu přiřazenou uživatelem ke škálovací sadě virtuálních počítačů používanou clusterem Azure Kubernetes Service (AKS).

  3. Udělte roli Čtenář dat aplikace app configuration spravované identity přiřazené uživatelem v Aplikace Azure Configuration.

  4. spec.auth.managedIdentityClientId Nastavte vlastnost na ID klienta spravované identity přiřazené uživatelem v následujícím ukázkovém AzureAppConfigurationProvider prostředku a nasaďte ji do clusteru AKS.

    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>
    

Použití instančního objektu

  1. Vytvoření instančního objektu

  2. Udělte roli Čtenář dat konfigurace aplikace instančního objektu v konfiguraci Aplikace Azure.

  3. Vytvořte tajný klíč Kubernetes ve stejném oboru názvů jako AzureAppConfigurationProvider prostředek a přidejte do tajného klíče azure_client_id, azure_client_secret a azure_tenant_id instančního objektu.

  4. spec.auth.servicePrincipalReference Nastavte vlastnost na název tajného kódu v následujícím ukázkovém AzureAppConfigurationProvider prostředku a nasaďte ji do clusteru Kubernetes.

    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>
    

Použití identity úlohy

  1. Povolte identitu úloh v clusteru Azure Kubernetes Service (AKS).

  2. Získejte adresu URL vystavitele OIDC clusteru AKS.

  3. Vytvořte spravovanou identitu přiřazenou uživatelem a poznamenejte si id klienta, ID tenanta, název a skupinu prostředků.

  4. Udělte roli Čtenář dat aplikace app configuration spravované identity přiřazené uživatelem v Aplikace Azure Configuration.

  5. Vytvořte účet služby přidáním souboru YAML (např . serviceAccount.yaml) s následujícím obsahem do adresáře obsahujícího vaše soubory nasazení AKS. Účet služby se vytvoří, když použijete všechny změny nasazení v clusteru AKS (např. pomocí kubectl apply). Nahraďte <your-managed-identity-client-id> ID klienta a <your-managed-identity-tenant-id> ID tenanta spravované identity přiřazené uživatelem, která byla právě vytvořena. Nahraďte <your-service-account-name> upřednostňovaným názvem.

    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>
    
  6. Vytvořte přihlašovací údaje federované identity pro spravovanou identitu přiřazenou uživatelem pomocí Azure CLI. Nahraďte <user-assigned-identity-name> název a <resource-group> skupinu prostředků nově vytvořené spravované identity přiřazené uživatelem. Nahraďte <aks-oidc-issuer> adresou URL vystavitele OIDC clusteru AKS. Nahraďte <your-service-account-name> názvem nově vytvořeného účtu služby. Nahraďte <federated-identity-credential-name> upřednostňovaným názvem přihlašovacích údajů federované identity.

    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://AzureADTokenExchange
    

    Všimněte si, že předmět přihlašovacích údajů federované identity by měl odpovídat tomuto formátu: system:serviceaccount:<service-account-namespace>:<service-account-name>.

  7. spec.auth.workloadIdentity.serviceAccountName Nastavte vlastnost na název účtu služby v následujícím ukázkovém AzureAppConfigurationProvider prostředku. Ujistěte se, že AzureAppConfigurationProvider prostředek a účet služby jsou ve stejném oboru názvů.

    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>
    

Použití připojovací řetězec

  1. Vytvořte tajný klíč Kubernetes ve stejném oboru názvů jako AzureAppConfigurationProvider prostředek a přidejte Aplikace Azure Configuration připojovací řetězec s klíčem azure_app_configuration_connection_string v tajném kódu.

  2. spec.connectionStringReference Nastavte vlastnost na název tajného kódu v následujícím ukázkovém AzureAppConfigurationProvider prostředku a nasaďte ji do clusteru Kubernetes.

    apiVersion: azconfig.io/v1
    kind: AzureAppConfigurationProvider
    metadata:
      name: appconfigurationprovider-sample
    spec:
      connectionStringReference: <your-connection-string-secret-name>
      target:
        configMapName: configmap-created-by-appconfig-provider
    

Výběr klíč-hodnota

selectors Pomocí vlastnosti můžete filtrovat hodnoty klíče, které se mají stáhnout z Aplikace Azure Configuration.

Následující ukázka stáhne všechny hodnoty klíčů bez popisku.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider

V následujícím příkladu se k načtení dvou sad hodnot klíče používají dva selektory, z nichž každý má jedinečné popisky. Je důležité si uvědomit, že hodnoty posledního selektoru mají přednost a přepíší všechny překrývající se klávesy z předchozích selektorů.

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

Filtry tagů lze také použít k filtrování klíčových hodnot. V následujícím vzorku jsou stahovány pouze klíčové hodnoty s tímto tagem env=prod .

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: '*'
        tagFilters:
          - env=prod

Snímek lze použít samostatně nebo společně s jinými selektory klíč-hodnota. V následující ukázce načtete hodnoty klíčů společné konfigurace ze snímku a potom některé z nich přepíšete hodnotami klíčů pro vývoj.

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

Oříznutí předpony klíče

Následující ukázka pomocí trimKeyPrefixes vlastnosti před přidáním do vygenerovaného objektu ConfigMap oříznou dvě předpony z názvů klíčů.

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]

Aktualizace konfigurace

Když v konfiguraci Aplikace Azure provedete změny dat, můžete chtít, aby se tyto změny automaticky aktualizovaly v clusteru Kubernetes. V následující ukázce poskytovatel Kubernetes každou minutu kontroluje konfiguraci aplikací Azure. Přidružené objekty ConfigMap a Secret se znovu vygenerují pouze při zjištění změn. Pro více informací o sledování změn konfigurace viz Nejlepší praxe pro aktualizaci konfigurace.

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

Reference ke službě Key Vault

Ověřování

V následující ukázce se jeden trezor klíčů ověřuje pomocí instančního objektu, zatímco všechny ostatní trezory klíčů se ověřují pomocí spravované identity přiřazené uživatelem.

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>

Typy tajných kódů

Aktuálně se podporují dva předdefinované typy tajných kódů, neprůpané a TLS Kubernetes. Tajné kódy vyřešené z odkazů služby Key Vault se ve výchozím nastavení ukládají jako neprůpaný typ tajného kódu . Pokud máte odkaz služby Key Vault na certifikát a chcete ho uložit jako typ tajného klíče TLS, můžete přidat značku s následujícím názvem a hodnotou do odkazu služby Key Vault v konfiguraci Aplikace Azure. Tímto způsobem se vygeneruje tajný klíč s kubernetes.io/tls typem a pojmenuje se za klíč odkazu služby Key Vault.

Název Hodnota
.kubernetes.secret.type kubernetes.io/tls

Následující příklady ukazují, jak se data naplní ve vygenerovaných tajných kódů různými typy.

Za předpokladu, že úložiště Služby App Configuration obsahuje tyto odkazy na službu Key Vault:

klíč hodnota značky
app1-secret1 <Referenční informace ke službě Key Vault 1> {}
app1-secret2 <Referenční informace ke službě Key Vault 2> {}
app1-certificate <Referenční informace ke službě Key Vault 3> {".kubernetes.secret.type": "kubernetes.io/tls"}

Následující ukázka generuje tajné kódy neprůhlených i tls typů.

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>

Vygenerované tajné kódy se naplní následujícími daty:

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>

Aktualizace tajných kódů ze služby Key Vault

Aktualizace tajných kódů ze služby Key Vault obvykle vyžaduje opětovné načtení odpovídajících odkazů služby Key Vault z konfigurace Aplikace Azure. S spec.secret.refresh vlastností ale můžete aktualizovat tajné kódy ze služby Key Vault nezávisle. To je zvlášť užitečné pro zajištění toho, aby vaše úloha během obměny tajných kódů automaticky získala všechny aktualizované tajné kódy ze služby Key Vault. Upozorňujeme, že pokud chcete načíst nejnovější verzi tajného kódu, nesmí být odkaz služby Key Vault tajný kód verze.

Následující ukázka aktualizuje všechny tajné kódy, které nejsou verzemi, ze služby Key Vault každou hodinu.

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

Příznaky funkcí

V následující ukázce se příznaky funkcí s klíči začínajícími app1 na popisky a popisky, které common se stahují a aktualizují každých 10 minut. Všimněte si, že chcete-li naplnit příznaky funkcí ve vygenerované objektu ConfigMap, configMapData.type musí být json vlastnost nebo 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

Aktualizace na vyžádání

I když můžete nastavit automatickou aktualizaci dat, může docházet k tomu, že budete chtít aktivovat aktualizaci na vyžádání, abyste získali nejnovější data ze služby App Configuration a Key Vaultu. To lze provést přidáním nebo aktualizací poznámek v metadata.annotations části oddílu AzureAppConfigurationProvider. Zprostředkovatel Kubernetes pak odsouhlasí a aktualizuje objekt ConfigMap a Tajný kód nejnovějšími daty z úložiště app Configuration Store a služby Key Vault.

V následujícím příkladu AzureAppConfigurationProvider se aktualizuje novou poznámkou. Po úpravě použijte změny, které používají kubectl apply k aktivaci aktualizace na vyžádání.

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>

Spotřeba configmap

Aplikace spuštěné v Kubernetes obvykle využívají objekt ConfigMap buď jako proměnné prostředí, nebo jako konfigurační soubory. configMapData.type Pokud vlastnost chybí nebo je nastavena na výchozí, objekt ConfigMap se naplní seznamem dat načtených z Aplikace Azure Konfigurace, které lze snadno využívat jako proměnné prostředí. Pokud je vlastnost nastavena configMapData.type na json, yaml nebo vlastnosti, data načtená z Aplikace Azure Configuration se seskupí do jedné položky s názvem klíče určeným configMapData.key vlastností vygenerované ConfigMap, která se dá použít jako připojený soubor.

Následující příklady ukazují, jak se data naplní ve vygenerovaném objektu ConfigMap s různými nastaveními configMapData.type vlastnosti.

Za předpokladu, že úložiště App Configuration má tyto hodnoty klíče:

klíč hodnota
Klíč1 hodnota1
Klíč2 hodnota2
key3 hodnota 3

A vlastnost chybí nebo je nastavena configMapData.type na 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

Vygenerovaná mapa configmap se naplní následujícími daty:

data:
  key1: value1
  key2: value2
  key3: value3