Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W poniższej dokumentacji przedstawiono właściwości obsługiwane przez dostawcę v2.3.0 kubernetes usługi Azure App Configuration lub nowsze. Aby uzyskać więcej informacji na temat zmiany, zobacz informacje o wersji.
Właściwości
Zasób AzureAppConfigurationProvider ma następujące właściwości podrzędne najwyższego poziomu w obszarze spec.
endpoint Albo connectionStringReference musi być określony.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| punkt końcowy | Punkt końcowy konfiguracji aplikacja systemu Azure, z którego chcesz pobrać wartości klucza. | alternatywa | ciąg |
| connectionStringReference | Nazwa wpisu tajnego kubernetes zawierającego aplikacja systemu Azure Configuration parametry połączenia. | alternatywa | ciąg |
| replicaDiscoveryEnabled | Ustawienie określające, czy repliki aplikacja systemu Azure Configuration są automatycznie odnajdywane i używane do pracy w trybie failover. Jeśli właściwość jest nieobecna, zostanie użyta wartość domyślna true . |
fałsz | Bool |
| loadBalancingEnabled | Ustawienie, które umożliwia obciążeniu dystrybuowanie żądań do usługi App Configuration we wszystkich dostępnych replikach. Jeśli właściwość jest nieobecna, zostanie użyta wartość domyślna false . |
fałsz | Bool |
| miejsce docelowe | Miejsce docelowe pobranych wartości klucza na platformie Kubernetes. | prawda | obiekt |
| Uwierzytelnianie | Metoda uwierzytelniania umożliwiająca dostęp do aplikacja systemu Azure Configuration. | fałsz | obiekt |
| konfiguracja | Ustawienia służące do wykonywania zapytań i przetwarzania wartości kluczy w aplikacja systemu Azure Configuration. | fałsz | obiekt |
| klucz tajny | Ustawienia odwołań do usługi Key Vault w aplikacja systemu Azure Configuration. | warunkowy | obiekt |
| featureFlag | Ustawienia flag funkcji w konfiguracji aplikacja systemu Azure. | fałsz | obiekt |
Właściwość spec.target ma następującą właściwość podrzędną.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| configMapName | Nazwa obiektu ConfigMap do utworzenia. | prawda | ciąg |
| configMapData | Ustawienie określające sposób wypełniania pobranych danych w wygenerowanej ConfigMap. | fałsz | obiekt |
spec.target.configMapData Jeśli właściwość nie jest ustawiona, wygenerowana mapa ConfigMap zostanie wypełniona listą wartości klucz-pobranych z aplikacja systemu Azure Configuration, która umożliwia użycie obiektu ConfigMap jako zmiennych środowiskowych. Zaktualizuj tę właściwość, jeśli chcesz użyć obiektu ConfigMap jako zainstalowanego pliku. Ta właściwość ma następujące właściwości podrzędne.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| typ | Ustawienie wskazujące sposób konstruowania pobranych danych w wygenerowanym obiekcie ConfigMap. Dozwolone wartości obejmują default, jsonyaml i properties. |
opcjonalny | ciąg |
| klucz | Nazwa klucza pobranych danych, gdy type parametr jest ustawiony na json, yaml lub properties. Ustaw ją na nazwę pliku, jeśli ConfigMap jest skonfigurowany do korzystania z pliku zainstalowanego. |
warunkowy | ciąg |
| separator | Ogranicznik używany do wyprowadzania danych ConfigMap w formacie hierarchicznym, gdy typ jest ustawiony na json wartość lub yaml. Separator jest domyślnie pusty, a wygenerowany obiekt ConfigMap zawiera wartości klucza w ich oryginalnej formie. Skonfiguruj to ustawienie tylko wtedy, gdy moduł ładujący plików konfiguracji używany w aplikacji nie może załadować wartości klucz-wartość bez konwertowania ich na format hierarchiczny. |
opcjonalny | ciąg |
Właściwość nie jest wymaganaspec.auth, jeśli parametry połączenia magazynu usługi App Configuration jest udostępniana przez ustawienie spec.connectionStringReference właściwości . W przeciwnym razie jedna z tożsamości, jednostki usługi, tożsamości obciążenia lub tożsamości zarządzanej jest używana do uwierzytelniania. Obiekt spec.auth ma następujące właściwości podrzędne. Należy określić tylko jeden z nich. Jeśli żadna z nich nie zostanie ustawiona, zostanie użyta tożsamość zarządzana przypisana przez system zestawu skalowania maszyn wirtualnych.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| servicePrincipalReference | Nazwa wpisu tajnego kubernetes zawierającego poświadczenia jednostki usługi. Wpis tajny musi znajdować się w tej samej przestrzeni nazw co dostawca Kubernetes. | fałsz | ciąg |
| Tożsamość obciążenia | Ustawienia korzystania z tożsamości obciążenia. | fałsz | obiekt |
| managedIdentityClientId | Identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika zestawu skalowania maszyn wirtualnych. | fałsz | ciąg |
Właściwość spec.auth.workloadIdentity ma następującą właściwość podrzędną.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| serviceAccountName (nazwa_konta usługi) | Nazwa konta usługi skojarzonego z tożsamością obciążenia. | prawda | ciąg |
Obiekt spec.configuration ma następujące właściwości podrzędne.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| Selektory | Lista selektorów filtrowania klucz-wartość. | fałsz | tablica obiektów |
| trimKeyPrefixes | Lista prefiksów kluczy do przycinania. | fałsz | tablica ciągów |
| odświeżyć | Ustawienia odświeżania wartości kluczy z aplikacja systemu Azure Configuration. Jeśli właściwość jest nieobecna, wartości klucz-wartość z aplikacja systemu Azure Configuration nie są odświeżane. | fałsz | obiekt |
spec.configuration.selectors Jeśli właściwość nie jest ustawiona, zostaną pobrane wszystkie wartości klucz-wartość bez etykiety. Zawiera tablicę obiektów selektora, które mają następujące właściwości podrzędne. Należy pamiętać, że wartości klucza ostatniego selektora mają pierwszeństwo i zastępują wszystkie nakładające się klucze z poprzednich selektorów.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| keyFilter | Filtr klucza do wykonywania zapytań dotyczących wartości klucz-wartość. Ta właściwość i snapshotName właściwość nie powinny być ustawiane w tym samym czasie. |
alternatywa | ciąg |
| labelFilter | Filtr etykiety do wykonywania zapytań dotyczących wartości klucz-wartość. Ta właściwość i snapshotName właściwość nie powinny być ustawiane w tym samym czasie. |
fałsz | ciąg |
| tagFiltry | Tag filtruje zapytania o wartości klucza. Ta właściwość i snapshotName właściwość nie powinny być ustawiane w tym samym czasie. Filtr tagów musi być sformatowany jako tag1=value1. |
fałsz | tablica ciągów |
| snapshotName | Nazwa migawki, z której są ładowane wartości klucza. Ta właściwość nie powinna być używana w połączeniu z innymi właściwościami. | alternatywa | ciąg |
Właściwość spec.configuration.refresh ma następujące właściwości podrzędne.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| Włączone | Ustawienie określające, czy wartości klucz-wartość z aplikacja systemu Azure Configuration są automatycznie odświeżane. Jeśli właściwość jest nieobecna, zostanie użyta wartość domyślna false . |
fałsz | Bool |
| monitorowanie | Wartości klucza monitorowane pod kątem wykrywania zmian, czyli kluczy sentinel. Wartości klucz-z aplikacja systemu Azure Configuration są odświeżane tylko wtedy, gdy zostanie zmieniony co najmniej jeden z monitorowanych wartości kluczy. Jeśli ta właściwość jest nieobecna, wszystkie wybrane wartości klucza zostaną monitorowane pod kątem odświeżania. | fałsz | obiekt |
| interwał | Interwał odświeżania wartości klucza z aplikacja systemu Azure Configuration. Musi być większy lub równy 1 sekundy. Jeśli właściwość jest nieobecna, zostanie użyta wartość domyślna 30 sekund. | fałsz | ciąg czasu trwania |
Jest spec.configuration.refresh.monitoring.keyValues to tablica obiektów, które mają następujące właściwości podrzędne.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| klucz | Klucz klucz-wartość. | prawda | ciąg |
| etykieta | Etykieta klucza-wartość. | fałsz | ciąg |
Właściwość spec.secret ma następujące właściwości podrzędne. Jest to wymagane, jeśli zostaną pobrane odwołania do usługi Key Vault. Aby dowiedzieć się więcej na temat obsługi wbudowanych typów wpisów tajnych platformy Kubernetes, zobacz Typy wpisów tajnych.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| miejsce docelowe | Miejsce docelowe pobranych wpisów tajnych na platformie Kubernetes. | prawda | obiekt |
| Uwierzytelnianie | Metoda uwierzytelniania w celu uzyskania dostępu do usługi Key Vault. | fałsz | obiekt |
| odświeżyć | Ustawienia odświeżania danych z usługi Key Vault. Jeśli właściwość jest nieobecna, dane z usługi Key Vault nie są odświeżane, chyba że odpowiednie odwołania do usługi Key Vault zostaną ponownie załadowane. | fałsz | obiekt |
Właściwość spec.secret.target ma następującą właściwość podrzędną.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| nazwaTajna | Nazwa wpisu tajnego kubernetes do utworzenia. | prawda | ciąg |
| secretData | Ustawienie określające sposób wypełniania pobranych danych w wygenerowanych wpisach tajnych. | prawda | ciąg |
spec.secret.target.secretData Jeśli właściwość nie jest ustawiona, wygenerowany wpis tajny zostanie wypełniony listą wartości kluczy pobranych z usługi Key Vault, co umożliwia użycie wpisu tajnego jako zmiennych środowiskowych. Zaktualizuj tę właściwość, jeśli chcesz użyć wpisu tajnego jako zainstalowanego pliku. Ta właściwość ma następujące właściwości podrzędne.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| typ | Ustawienie wskazujące sposób konstruowania pobranych danych w wygenerowanym wpisie tajnym. Dozwolone wartości obejmują default, jsonyaml i properties. |
opcjonalny | ciąg |
| klucz | Nazwa klucza pobranych danych, gdy type parametr jest ustawiony na json, yaml lub properties. Ustaw ją na nazwę pliku, jeśli klucz tajny został skonfigurowany do korzystania z pliku zainstalowanego. |
warunkowy | ciąg |
| separator | Ogranicznik używany do wyprowadzania danych tajnych w formacie hierarchicznym, gdy typ jest ustawiony na json wartość lub yaml. Separator jest domyślnie pusty, a wygenerowany wpis tajny zawiera wartości klucza w ich oryginalnej postaci. Skonfiguruj to ustawienie tylko wtedy, gdy moduł ładujący plików konfiguracji używany w aplikacji nie może załadować wartości klucz-wartość bez konwertowania ich na format hierarchiczny. |
opcjonalny | ciąg |
spec.secret.auth Jeśli właściwość nie jest ustawiona, zostanie użyta tożsamość zarządzana przypisana przez system. Ma następujące właściwości podrzędne.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| servicePrincipalReference | Nazwa wpisu tajnego kubernetes zawierającego poświadczenia jednostki usługi używanej do uwierzytelniania w usłudze Key Vault, które nie mają określonych indywidualnych metod uwierzytelniania. | fałsz | ciąg |
| Tożsamość obciążenia | Ustawienia tożsamości obciążenia używanej do uwierzytelniania w usłudze Key Vault, które nie mają określonych indywidualnych metod uwierzytelniania. Ma tę samą właściwość podrzędną co spec.auth.workloadIdentity. |
fałsz | obiekt |
| managedIdentityClientId | Identyfikator klienta przypisanej przez użytkownika tożsamości zarządzanej zestawu skalowania maszyn wirtualnych używany do uwierzytelniania w usłudze Key Vault, które nie mają określonych indywidualnych metod uwierzytelniania. | fałsz | ciąg |
| keyVaults (magazyny kluczy) | Metody uwierzytelniania dla poszczególnych magazynów kluczy. | fałsz | tablica obiektów |
Metodę uwierzytelniania każdego magazynu kluczy można określić przy użyciu następujących właściwości.
managedIdentityClientIdNależy podać jeden z elementów lub servicePrincipalReferenceworkloadIdentity.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| URI | Identyfikator URI usługi Key Vault. | prawda | ciąg |
| servicePrincipalReference | Nazwa wpisu tajnego kubernetes zawierającego poświadczenia jednostki usługi używanej do uwierzytelniania w usłudze Key Vault. | fałsz | ciąg |
| Tożsamość obciążenia | Ustawienia tożsamości obciążenia używanej do uwierzytelniania w usłudze Key Vault. Ma tę samą właściwość podrzędną co spec.auth.workloadIdentity. |
fałsz | obiekt |
| managedIdentityClientId | Identyfikator klienta przypisanej przez użytkownika tożsamości zarządzanej zestawu skalowania maszyn wirtualnych używany do uwierzytelniania w usłudze Key Vault. | fałsz | ciąg |
Właściwość spec.secret.refresh ma następujące właściwości podrzędne.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| Włączone | Ustawienie określające, czy dane z usługi Key Vault są automatycznie odświeżane. Jeśli właściwość jest nieobecna, zostanie użyta wartość domyślna false . |
fałsz | Bool |
| interwał | Interwał odświeżania danych z usługi Key Vault. Musi być większy lub równy 1 minucie. Odświeżanie usługi Key Vault jest niezależne od odświeżania usługi App Configuration skonfigurowanego za pomocą polecenia spec.configuration.refresh. |
prawda | ciąg czasu trwania |
Właściwość spec.featureFlag ma następujące właściwości podrzędne. Jest to wymagane, jeśli zostaną pobrane jakiekolwiek flagi funkcji.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| Selektory | Lista selektorów filtrowania flag funkcji. | fałsz | tablica obiektów |
| odświeżyć | Ustawienia odświeżania flag funkcji z aplikacja systemu Azure Configuration. Jeśli właściwość jest nieobecna, flagi funkcji z aplikacja systemu Azure Configuration nie są odświeżane. | fałsz | obiekt |
spec.featureFlag.selectors Jeśli właściwość nie jest ustawiona, flagi funkcji nie są pobierane. Zawiera tablicę obiektów selektora, które mają następujące właściwości podrzędne. Należy pamiętać, że flagi funkcji ostatniego selektora mają pierwszeństwo i przesłaniają wszystkie nakładające się klucze z poprzednich selektorów.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| keyFilter | Filtr klucza dla flag funkcji wykonywania zapytań. Ta właściwość i snapshotName właściwość nie powinny być ustawiane w tym samym czasie. |
alternatywa | ciąg |
| labelFilter | Filtr etykiety dla flag funkcji kwerendy. Ta właściwość i snapshotName właściwość nie powinny być ustawiane w tym samym czasie. |
fałsz | ciąg |
| tagFiltry | Tag filtruje zapytania do flag cech. Ta właściwość i snapshotName właściwość nie powinny być ustawiane w tym samym czasie. Filtr tagów musi być sformatowany jako tag1=value1. |
fałsz | tablica ciągów |
| snapshotName | Nazwa migawki, z której są ładowane flagi funkcji. Ta właściwość nie powinna być używana w połączeniu z innymi właściwościami. | alternatywa | ciąg |
Właściwość spec.featureFlag.refresh ma następujące właściwości podrzędne.
| Nazwa/nazwisko | opis | Wymagania | Typ |
|---|---|---|---|
| Włączone | Ustawienie określające, czy flagi funkcji z aplikacja systemu Azure Configuration są automatycznie odświeżane. Jeśli właściwość jest nieobecna, zostanie użyta wartość domyślna false . |
fałsz | Bool |
| interwał | Interwał odświeżania flag funkcji z aplikacja systemu Azure Configuration. Musi być większy lub równy 1 sekundy. Jeśli właściwość jest nieobecna, zostanie użyta wartość domyślna 30 sekund. | fałsz | ciąg czasu trwania |
Instalacja
Użyj następującego helm install polecenia, aby zainstalować dostawcę kubernetes konfiguracji aplikacja systemu Azure. Zobacz helm-values.yaml , aby uzyskać pełną listę parametrów i ich wartości domyślnych. Wartości domyślne można zastąpić, przekazując flagę --set do polecenia .
helm install azureappconfiguration.kubernetesprovider \
oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
--namespace azappconfig-system \
--create-namespace
Skalowanie automatyczne
Domyślnie skalowanie automatyczne jest wyłączone. Jeśli jednak masz wiele AzureAppConfigurationProvider zasobów do utworzenia wielu obiektów ConfigMaps/Secrets, możesz włączyć skalowanie automatyczne zasobników w poziomie, ustawiając wartość autoscaling.enabled .true
helm install azureappconfiguration.kubernetesprovider \
oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
--namespace azappconfig-system \
--create-namespace
--set autoscaling.enabled=true
Zbieranie danych
Oprogramowanie może zbierać informacje o Użytkowniku i korzystaniu z oprogramowania oraz wysyłać je do firmy Microsoft. Microsoft może wykorzystywać te informacje w celu świadczenia usług oraz w celu ulepszenia produktów i usług Microsoft. Telemetrię można wyłączyć, ustawiając requestTracing.enabled=false podczas instalowania dostawcy kubernetes konfiguracji aplikacja systemu Azure. Istnieją również pewne funkcje oprogramowania, które mogą umożliwić Tobie i firmie Microsoft zbieranie danych od użytkowników aplikacji. Jeśli używasz tych funkcji, musisz przestrzegać obowiązującego prawa, w tym przekazywania odpowiednich powiadomień użytkownikom aplikacji wraz z kopią zasad zachowania poufności informacji firmy Microsoft. Oświadczenie o ochronie prywatności Microsoft można znaleźć pod adresem https://go.microsoft.com/fwlink/?LinkID=824704. Więcej informacji na temat zbierania i używania danych można uzyskać w dokumentacji pomocy i naszym oświadczeniu o ochronie prywatności. Używanie przez Licencjobiorcę oprogramowania oznacza zgodę Licencjobiorcy na takie działania.
Przykłady
Uwierzytelnianie
Używanie przypisanej przez system tożsamości zarządzanej zestawu skalowania maszyn wirtualnych
Włącz tożsamość zarządzaną przypisaną przez system w zestawie skalowania maszyn wirtualnych używanym przez klaster usługi Azure Kubernetes Service (AKS).
Udziel przypisanej przez system roli Czytelnik danych konfiguracji aplikacji tożsamości zarządzanej w usłudze aplikacja systemu Azure Configuration.
Wdróż następujący przykładowy
AzureAppConfigurationProviderzasób w klastrze usługi 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
Używanie tożsamości zarządzanej przypisanej przez użytkownika zestawu skalowania maszyn wirtualnych
Utwórz tożsamość zarządzaną przypisaną przez użytkownika i zanotuj jej identyfikator klienta po utworzeniu.
Przypisz tożsamość zarządzaną przypisaną przez użytkownika do zestawu skalowania maszyn wirtualnych używanego przez klaster usługi Azure Kubernetes Service (AKS).
Udziel przypisanej przez użytkownika roli Czytelnik danych usługi App Configuration w usłudze aplikacja systemu Azure Configuration.
spec.auth.managedIdentityClientIdUstaw właściwość na identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika w poniższym przykładowymAzureAppConfigurationProviderzasobie i wdróż ją w klastrze usługi 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>
Korzystanie z jednostki usługi
Przyznaj jednostce usługi rolę Czytelnik danych konfiguracji aplikacji w usłudze aplikacja systemu Azure Configuration.
Utwórz wpis tajny Kubernetes w tej samej przestrzeni nazw co
AzureAppConfigurationProviderzasób i dodaj azure_client_id, azure_client_secret i azure_tenant_id jednostki usługi do wpisu tajnego.spec.auth.servicePrincipalReferenceUstaw właściwość na nazwę wpisu tajnego w następującym przykładowymAzureAppConfigurationProviderzasobie i wdróż ją w klastrze 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>
Korzystanie z tożsamości obciążenia
Włącz tożsamość obciążenia w klastrze usługi Azure Kubernetes Service (AKS).
Pobierz adres URL wystawcy OIDC klastra usługi AKS.
Utwórz tożsamość zarządzaną przypisaną przez użytkownika i zanotuj jej identyfikator klienta, identyfikator dzierżawy, nazwę i grupę zasobów.
Udziel przypisanej przez użytkownika roli Czytelnik danych usługi App Configuration w usłudze aplikacja systemu Azure Configuration.
Utwórz konto usługi, dodając plik YAML (np . serviceAccount.yaml) z następującą zawartością do katalogu zawierającego pliki wdrażania usługi AKS. Konto usługi zostanie utworzone po zastosowaniu wszystkich zmian wdrożenia w klastrze usługi AKS (np. przy użyciu polecenia
kubectl apply). Zastąp<your-managed-identity-client-id>element identyfikatorem klienta i<your-managed-identity-tenant-id>identyfikatorem dzierżawy tożsamości zarządzanej przypisanej przez użytkownika, która właśnie została utworzona. Zastąp<your-service-account-name>ciąg preferowaną nazwą.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>Utwórz poświadczenia tożsamości federacyjnej dla tożsamości zarządzanej przypisanej przez użytkownika przy użyciu interfejsu wiersza polecenia platformy Azure. Zastąp
<user-assigned-identity-name>ciąg nazwą i<resource-group>grupą zasobów nowo utworzonej tożsamości zarządzanej przypisanej przez użytkownika. Zastąp ciąg<aks-oidc-issuer>adresem URL wystawcy OIDC klastra usługi AKS. Zastąp<your-service-account-name>ciąg nazwą nowo utworzonego konta usługi. Zastąp<federated-identity-credential-name>ciąg nazwą preferowaną dla poświadczeń tożsamości federacyjnej.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://AzureADTokenExchangeNależy pamiętać, że temat poświadczeń tożsamości federacyjnej powinien mieć następujący format:
system:serviceaccount:<service-account-namespace>:<service-account-name>.spec.auth.workloadIdentity.serviceAccountNameUstaw właściwość na nazwę konta usługi w następującym przykładowymAzureAppConfigurationProviderzasobie. Upewnij się, żeAzureAppConfigurationProviderzasób i konto usługi znajdują się w tej samej przestrzeni nazw.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>
Korzystanie z parametry połączenia
Utwórz wpis tajny kubernetes w tej samej przestrzeni nazw co
AzureAppConfigurationProviderzasób i dodaj aplikacja systemu Azure Configuration parametry połączenia z kluczem azure_app_configuration_connection_string w kluczu tajnym.spec.connectionStringReferenceUstaw właściwość na nazwę wpisu tajnego w następującym przykładowymAzureAppConfigurationProviderzasobie i wdróż ją w klastrze 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
Wybór wartości klucza
selectors Użyj właściwości , aby filtrować wartości klucza do pobrania z aplikacja systemu Azure Configuration.
Poniższy przykład pobiera wszystkie wartości klucza bez etykiety.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
W poniższym przykładzie dwa selektory są używane do pobierania dwóch zestawów klucz-wartości, z których każda ma unikatowe etykiety. Należy pamiętać, że wartości ostatniego selektora mają pierwszeństwo i zastępują wszystkie nakładające się klucze z poprzednich selektorów.
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ów mogą być również używane do filtrowania wartości kluczy. W poniższym przykładzie pobierane są tylko wartości kluczy z tym tagiem 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
Migawka może być używana samodzielnie lub razem z innymi selektorami klucz-wartość. W poniższym przykładzie załadujesz wartości kluczy wspólnej konfiguracji z migawki, a następnie zastąpisz niektóre z nich kluczami do programowania.
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
Przycinanie prefiksu klucza
W poniższym przykładzie użyto trimKeyPrefixes właściwości do przycinania dwóch prefiksów z nazw kluczy przed dodaniem ich do wygenerowanej 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]
Odświeżanie konfiguracji
Po wprowadzeniu zmian w danych w konfiguracji aplikacja systemu Azure może być konieczne automatyczne odświeżenie tych zmian w klastrze Kubernetes. W poniższym przykładzie dostawca Kubernetes sprawdza usługę Azure App Configuration pod kątem aktualizacji co minutę. Skojarzone ConfigMap i Secret są generowane ponownie tylko w przypadku wykrycia zmian. Aby uzyskać więcej informacji na temat monitorowania zmian konfiguracji, zobacz Najlepsze rozwiązania dotyczące odświeżania konfiguracji.
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
Odwołania do usługi Key Vault
Uwierzytelnianie
W poniższym przykładzie jedna usługa Key Vault jest uwierzytelniana przy użyciu jednostki usługi, podczas gdy wszystkie inne magazyny kluczy są uwierzytelniane przy użyciu tożsamości zarządzanej przypisanej przez użytkownika.
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 wpisów tajnych
Obecnie obsługiwane są dwa wbudowane typy wpisów tajnych kubernetes, nieprzezroczyste i TLS. Wpisy tajne rozpoznawane z odwołań usługi Key Vault są domyślnie zapisywane jako nieprzezroczystym typem wpisu tajnego. Jeśli masz odwołanie do magazynu kluczy do certyfikatu i chcesz zapisać go jako typ wpisu tajnego protokołu TLS, możesz dodać tag o następującej nazwie i wartości do odwołania do usługi Key Vault w aplikacja systemu Azure Configuration. W ten sposób zostanie wygenerowany wpis tajny z kubernetes.io/tls typem i nazwany po kluczu odwołania do usługi Key Vault.
| Nazwa/nazwisko | Wartość |
|---|---|
| .kubernetes.secret.type | kubernetes.io/tls |
W poniższych przykładach pokazano, jak dane są wypełniane w wygenerowanych wpisach tajnych z różnymi typami.
Zakładając, że magazyn usługi App Configuration ma następujące odwołania do usługi Key Vault:
| klucz | wartość | Etykiety |
|---|---|---|
| app1-secret1 | <Dokumentacja usługi Key Vault 1> | {} |
| app1-secret2 | <Dokumentacja usługi Key Vault 2> | {} |
| app1-certificate | <Dokumentacja usługi Key Vault 3> | {".kubernetes.secret.type": "kubernetes.io/tls"} |
Poniższy przykład generuje wpisy tajne zarówno dla typów nieprzezroczystych, jak i TLS.
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>
Wygenerowane wpisy tajne są wypełniane następującymi danymi:
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>
Odświeżanie wpisów tajnych z usługi Key Vault
Odświeżanie wpisów tajnych z usługi Key Vault zwykle wymaga ponownego załadowania odpowiednich odwołań usługi Key Vault z aplikacja systemu Azure Configuration. Jednak za pomocą spec.secret.refresh właściwości można niezależnie odświeżyć wpisy tajne z usługi Key Vault. Jest to szczególnie przydatne w przypadku zapewnienia, że obciążenie automatycznie pobiera wszystkie zaktualizowane wpisy tajne z usługi Key Vault podczas rotacji wpisów tajnych. Należy pamiętać, że aby załadować najnowszą wersję wpisu tajnego, odwołanie do usługi Key Vault nie może być wpisem tajnym w wersji.
Poniższy przykład odświeża wszystkie nieodświeżone wpisy tajne z usługi Key Vault co godzinę.
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
Flagi funkcji
W poniższym przykładzie flagi funkcji z kluczami rozpoczynającymi się od app1 i etykiety równoważne common są pobierane i odświeżane co 10 minut. Należy pamiętać, że aby wypełnić flagi funkcji w wygenerowanej ConfigMap, configMapData.type właściwość musi mieć json wartość lub 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
Odświeżanie na żądanie
Chociaż możesz skonfigurować automatyczne odświeżanie danych, czasami możesz wyzwolić odświeżanie na żądanie, aby pobrać najnowsze dane z usługi App Configuration i Key Vault. Można to zrobić, dodając lub aktualizując wszelkie adnotacje w metadata.annotations sekcji .AzureAppConfigurationProvider Następnie dostawca Kubernetes uzgodni i zaktualizuje ConfigMap i Secret z najnowszymi danymi z App Configuration i Key Vault.
W poniższym przykładzie element AzureAppConfigurationProvider jest aktualizowany przy użyciu nowej adnotacji. Po modyfikacji zastosuj zmiany za pomocą polecenia kubectl apply , aby wyzwolić odświeżanie na żądanie.
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>
Użycie obiektu ConfigMap
Aplikacje uruchomione na platformie Kubernetes zwykle używają obiektu ConfigMap jako zmiennych środowiskowych lub plików konfiguracji.
configMapData.type Jeśli właściwość jest nieobecna lub jest ustawiona na wartość domyślną, obiekt ConfigMap jest wypełniany elementami listy danych pobranych z aplikacja systemu Azure Configuration, które można łatwo użyć jako zmiennych środowiskowych.
configMapData.type Jeśli właściwość jest ustawiona na json, yaml lub właściwości, dane pobrane z aplikacja systemu Azure Configuration są pogrupowane w jeden element o nazwie klucza określonej przez configMapData.key właściwość w wygenerowanej ConfigMap, która może być używana jako zainstalowany plik.
W poniższych przykładach pokazano, jak dane są wypełniane w wygenerowanej ConfigMap z różnymi ustawieniami configMapData.type właściwości.
Zakładając, że magazyn usługi App Configuration ma następujące wartości klucza:
| klucz | wartość |
|---|---|
| klucz1 | wartość1 |
| klucz2 | wartość2 |
| key3 | value3 |
Właściwość jest nieobecna configMapData.type lub ustawiona na defaultwartość ,
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
Wygenerowany obiekt ConfigMap jest wypełniany następującymi danymi:
data:
key1: value1
key2: value2
key3: value3