Dokumentacja dostawcy platformy Kubernetes konfiguracji aplikacja systemu Azure
W poniższej dokumentacji przedstawiono właściwości obsługiwane przez dostawcę v2.1.0
platformy Kubernetes konfiguracji aplikacja systemu Azure . 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
. connectionStringReference
Albo endpoint
musi być określony.
Nazwa/nazwisko | opis | Wymagania | Typ |
---|---|---|---|
endpoint | Punkt końcowy konfiguracji aplikacja systemu Azure, z którego chcesz pobrać wartości klucza. | alternatywa | string |
connectionStringReference | Nazwa wpisu tajnego kubernetes zawierającego aplikacja systemu Azure Configuration parametry połączenia. | alternatywa | string |
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 |
target | Miejsce docelowe pobranych wartości klucza na platformie Kubernetes. | prawda | obiekt |
auth | 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 |
wpis 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 | string |
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 |
---|---|---|---|
type | Ustawienie wskazujące sposób konstruowania pobranych danych w wygenerowanym obiekcie ConfigMap. Dozwolone wartości obejmują default , json yaml i properties . |
optional | string |
key | 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 | string |
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. |
optional | string |
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 | string |
workloadIdentity | 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 | string |
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 skojarzonego z tożsamością obciążenia. | prawda | string |
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ż | 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 | string |
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 | string |
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 | string |
Właściwość spec.configuration.refresh
ma następujące właściwości podrzędne.
Nazwa/nazwisko | opis | Wymagania | Typ |
---|---|---|---|
enabled | 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 |
interval | 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 |
---|---|---|---|
key | Klucz klucz-wartość. | prawda | string |
label | Etykieta klucza-wartość. | fałsz | string |
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 |
---|---|---|---|
target | Miejsce docelowe pobranych wpisów tajnych na platformie Kubernetes. | prawda | obiekt |
auth | Metoda uwierzytelniania w celu uzyskania dostępu do usługi Key Vault. | fałsz | obiekt |
Odśwież | 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 |
---|---|---|---|
secretName | Nazwa wpisu tajnego kubernetes do utworzenia. | prawda | string |
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 | string |
workloadIdentity | 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 | string |
keyVaults | 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. managedIdentityClientId
Należy podać jeden z elementów lub servicePrincipalReference
workloadIdentity
.
Nazwa/nazwisko | opis | Wymagania | Typ |
---|---|---|---|
uri | Identyfikator URI usługi Key Vault. | prawda | string |
servicePrincipalReference | Nazwa wpisu tajnego kubernetes zawierającego poświadczenia jednostki usługi używanej do uwierzytelniania w usłudze Key Vault. | fałsz | string |
workloadIdentity | 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 | string |
Właściwość spec.secret.refresh
ma następujące właściwości podrzędne.
Nazwa/nazwisko | opis | Wymagania | Typ |
---|---|---|---|
enabled | 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 |
interval | 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ż | 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 | string |
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 | string |
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 | string |
Właściwość spec.featureFlag.refresh
ma następujące właściwości podrzędne.
Nazwa/nazwisko | opis | Wymagania | Typ |
---|---|---|---|
enabled | 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 |
interval | 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
AzureAppConfigurationProvider
zasó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.managedIdentityClientId
Ustaw właściwość na identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika w poniższym przykładowymAzureAppConfigurationProvider
zasobie 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
AzureAppConfigurationProvider
zasób i dodaj azure_client_id, azure_client_secret i azure_tenant_id jednostki usługi do wpisu tajnego.spec.auth.servicePrincipalReference
Ustaw właściwość na nazwę wpisu tajnego w następującym przykładowymAzureAppConfigurationProvider
zasobie 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://AzureADTokenExchange
Należ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.serviceAccountName
Ustaw właściwość na nazwę konta usługi w następującym przykładowymAzureAppConfigurationProvider
zasobie. Upewnij się, żeAzureAppConfigurationProvider
zasó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
AzureAppConfigurationProvider
zasób i dodaj aplikacja systemu Azure Configuration parametry połączenia z kluczem azure_app_configuration_connection_string w kluczu tajnym.spec.connectionStringReference
Ustaw właściwość na nazwę wpisu tajnego w następującym przykładowymAzureAppConfigurationProvider
zasobie 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
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. Często aktualizuje się wiele wartości klucz-wartość, ale nie chcesz, aby klaster pobierał zmianę w połowie aktualizacji. Aby zachować spójność konfiguracji, możesz użyć klucza-wartość, aby zasygnalizować ukończenie aktualizacji. Ta wartość klucza jest znana jako klucz sentinel. Dostawca Kubernetes może monitorować tę wartość klucza, a ConfigMap i Secret zostaną ponownie wygenerowane tylko przy użyciu zaktualizowanych danych po wykryciu zmiany w kluczu sentinel.
W poniższym przykładzie wartość klucza o nazwie app1_sentinel
jest sondowana co minutę, a konfiguracja jest odświeżona za każdym razem, gdy zmiany zostaną wykryte w kluczu sentinel.
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
monitoring:
keyValues:
- key: app1_sentinel
label: common
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:
key | wartość | tags |
---|---|---|
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
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:
key | wartość |
---|---|
klucz1 | wartość1 |
klucz2 | value2 |
key3 | value3 |
Właściwość jest nieobecna configMapData.type
lub ustawiona na default
wartość ,
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