Справочник по поставщику kubernetes Конфигурация приложений Azure
В следующей ссылке описаны свойства, поддерживаемые поставщиком v2.1.0
Kubernetes Конфигурация приложений Azure. Дополнительные сведения об изменении см . в заметках о выпуске.
Свойства
Ресурс AzureAppConfigurationProvider
содержит следующие дочерние свойства верхнего уровня в разделе spec
. Необходимо endpoint
указать либо connectionStringReference
.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
конечная точка | Конечная точка Конфигурация приложений Azure, из которой вы хотите получить значения ключей. | альтернатива | строка |
connectionStringReference | Имя секрета Kubernetes, содержащего Конфигурация приложений Azure строка подключения. | альтернатива | строка |
replicaDiscoveryEnabled | Параметр, определяющий, обнаруживаются ли реплики Конфигурация приложений Azure автоматически и используются для отработки отказа. Если свойство отсутствует, используется значение true по умолчанию. |
false | bool |
loadBalancingEnabled | Параметр, позволяющий рабочей нагрузке распространять запросы на Конфигурация приложений во всех доступных репликах. Если свойство отсутствует, используется значение false по умолчанию. |
false | bool |
целевой объект | Назначение полученных значений ключей в Kubernetes. | true | объект |
auth | Метод проверки подлинности для доступа к Конфигурация приложений Azure. | false | объект |
настройка | Параметры запроса и обработки значений ключей в Конфигурация приложений Azure. | false | объект |
secret | Параметры ссылок Key Vault в Конфигурация приложений Azure. | conditional | объект |
featureFlag | Параметры флагов компонентов в Конфигурация приложений Azure. | false | объект |
Свойство имеет следующее дочернее spec.target
свойство.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
configMapName | Имя создаваемого ConfigMap. | true | строка |
configMapData | Параметр, указывающий, как должны заполняться извлеченные данные в созданном ConfigMap. | false | объект |
spec.target.configMapData
Если свойство не задано, созданный ConfigMap заполняется списком значений ключей, полученных из Конфигурация приложений Azure, что позволяет использовать ConfigMap в качестве переменных среды. Обновите это свойство, если вы хотите использовать ConfigMap в качестве подключенного файла. Это свойство имеет следующие дочерние свойства.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
type | Параметр, указывающий, как извлекаемые данные создаются в созданном ConfigMap. Допустимые значения включают default , json yaml и properties . |
необязательно | строка |
key | Имя ключа извлеченных данных, если type задано значение json , yaml или properties . Присвойте ему имя файла, если ConfigMap настроен для использования в качестве подключенного файла. |
conditional | строка |
separator | Разделитель, используемый для вывода данных ConfigMap в иерархическом формате, если для типа задано json значение или yaml . Разделитель по умолчанию пуст, а созданный ConfigMap содержит значения ключей в исходной форме. Настройте этот параметр, только если загрузчик файла конфигурации, используемый в приложении, не может загружать значения ключей, не преобразовывая их в иерархический формат. |
необязательно | строка |
Свойство spec.auth
не требуется, если строка подключения хранилища Конфигурация приложений предоставляется путем задания spec.connectionStringReference
свойства. В противном случае для проверки подлинности используется одно из удостоверений, субъекта-службы, удостоверения рабочей нагрузки или управляемого удостоверения. У spec.auth
него есть следующие дочерние свойства. Следует указать только одно из них. Если ни один из них не задан, используется управляемое удостоверение, назначаемое системой масштабируемого набора виртуальных машин.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
servicePrincipalReference | Имя секрета Kubernetes, содержащего учетные данные субъекта-службы. Секрет должен находиться в том же пространстве имен, что и поставщик Kubernetes. | false | строка |
workloadIdentity | Параметры для использования удостоверения рабочей нагрузки. | false | объект |
managedIdentityClientId | Идентификатор клиента управляемого удостоверения, назначаемого пользователем, масштабируемого набора виртуальных машин. | false | строка |
Свойство имеет следующее дочернее spec.auth.workloadIdentity
свойство.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
serviceAccountName | Имя учетной записи службы, связанной с удостоверением рабочей нагрузки. | true | строка |
У spec.configuration
него есть следующие дочерние свойства.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
Селекторов | Список селекторов для фильтрации ключевых значений. | false | Массив объектов |
trimKeyPrefixes | Список префиксов ключей, которые необходимо обрезать. | false | строка массив |
refresh | Параметры обновления значений ключей из Конфигурация приложений Azure. Если свойство отсутствует, значения ключей из Конфигурация приложений Azure не обновляются. | false | объект |
spec.configuration.selectors
Если свойство не задано, все значения ключей без метки скачиваются. Он содержит массив объектов селектора, которые имеют следующие дочерние свойства. Обратите внимание, что значения ключей последнего селектора имеют приоритет и переопределяют все перекрывающиеся ключи из предыдущих селекторов.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
keyFilter | Фильтр ключа для запроса ключевых значений. Это свойство и snapshotName свойство не должны быть заданы одновременно. |
альтернатива | строка |
labelFilter | Фильтр меток для запроса ключевых значений. Это свойство и snapshotName свойство не должны быть заданы одновременно. |
false | строка |
SnapshotName | Имя моментального снимка, из которого загружаются значения ключей. Это свойство не должно использоваться в сочетании с другими свойствами. | альтернатива | строка |
Свойство spec.configuration.refresh
имеет следующие дочерние свойства.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
включена | Параметр, определяющий, обновляются ли значения ключей из Конфигурация приложений Azure автоматически. Если свойство отсутствует, используется значение false по умолчанию. |
false | bool |
мониторинг | Ключи-значения, отслеживаемые при обнаружении изменений, ключи aka sentinel. Значения ключей из Конфигурация приложений Azure обновляются только в том случае, если изменяется по крайней мере один из отслеживаемых значений ключей. Если это свойство отсутствует, все выбранные значения ключей будут отслеживаться для обновления. | false | объект |
interval | Интервал обновления значений ключей из Конфигурация приложений Azure. Оно должно быть больше или равно 1 секунде. Если свойство отсутствует, используется значение по умолчанию 30 секунд. | false | строка длительности |
Это spec.configuration.refresh.monitoring.keyValues
массив объектов, которые имеют следующие дочерние свойства.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
key | Ключ ключа-значения. | true | строка |
label | Метка значения ключа. | false | строка |
Свойство spec.secret
имеет следующие дочерние свойства. Требуется, если должны быть скачаны ссылки на Key Vault. Дополнительные сведения о поддержке встроенных типов секретов Kubernetes см. в разделе "Типы секретов".
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
целевой объект | Назначение извлеченных секретов в Kubernetes. | true | объект |
auth | Метод проверки подлинности для доступа к Key Vaults. | false | объект |
refresh | Параметры обновления данных из Key Vault. Если свойство отсутствует, данные из Key Vault не обновляются, если соответствующие ссылки Key Vault не будут перезагружены. | false | объект |
Свойство имеет следующее дочернее spec.secret.target
свойство.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
secretName; | Имя создаваемого секрета Kubernetes. | true | строка |
spec.secret.auth
Если свойство не задано, используется управляемое удостоверение, назначаемое системой. У него есть следующие дочерние свойства.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
servicePrincipalReference | Имя секрета Kubernetes, содержащего учетные данные субъекта-службы, используемого для проверки подлинности с помощью Key Vault, не имеющих отдельных методов проверки подлинности. | false | строка |
workloadIdentity | Параметры удостоверения рабочей нагрузки, используемого для проверки подлинности с помощью Key Vault, которые не имеют отдельных методов проверки подлинности. Он имеет то же дочернее свойство, что spec.auth.workloadIdentity и . |
false | объект |
managedIdentityClientId | Идентификатор клиента управляемого удостоверения, назначаемого пользователем масштабируемого набора виртуальных машин, используемый для проверки подлинности с помощью Key Vault, которые не имеют отдельных методов проверки подлинности. | false | строка |
keyVaults | Методы проверки подлинности для отдельных хранилищ ключей. | false | Массив объектов |
Метод проверки подлинности каждого Key Vault можно указать со следующими свойствами. Одно из managedIdentityClientId
них servicePrincipalReference
или workloadIdentity
должно быть предоставлено.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
uri | Универсальный код ресурса (URI) хранилища ключей. | true | строка |
servicePrincipalReference | Имя секрета Kubernetes, содержащего учетные данные субъекта-службы, используемого для проверки подлинности с помощью Key Vault. | false | строка |
workloadIdentity | Параметры удостоверения рабочей нагрузки, используемого для проверки подлинности с помощью Key Vault. Он имеет то же дочернее свойство, что spec.auth.workloadIdentity и . |
false | объект |
managedIdentityClientId | Идентификатор клиента управляемого удостоверения, назначаемого пользователем, масштабируемого набора виртуальных машин, используемый для проверки подлинности с помощью Key Vault. | false | строка |
Свойство spec.secret.refresh
имеет следующие дочерние свойства.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
включена | Параметр, определяющий, обновляются ли данные из Key Vaults автоматически. Если свойство отсутствует, используется значение false по умолчанию. |
false | bool |
interval | Интервал обновления данных из Key Vault. Оно должно быть больше или равно 1 минуте. Обновление Key Vault не зависит от Конфигурация приложений обновления, настроенного с помощьюspec.configuration.refresh . |
true | строка длительности |
Свойство spec.featureFlag
имеет следующие дочерние свойства. Требуется, если ожидается, что скачиваются флаги компонентов.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
Селекторов | Список селекторов для фильтрации флагов компонентов. | false | Массив объектов |
refresh | Параметры для обновления флагов компонентов из Конфигурация приложений Azure. Если свойство отсутствует, флаги компонентов из Конфигурация приложений Azure не обновляются. | false | объект |
spec.featureFlag.selectors
Если свойство не задано, флаги компонентов не скачиваются. Он содержит массив объектов селектора, которые имеют следующие дочерние свойства. Обратите внимание, что флаги функций последнего селектора имеют приоритет и переопределяют все перекрывающиеся ключи из предыдущих селекторов.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
keyFilter | Фильтр ключей для запросов флагов компонентов. Это свойство и snapshotName свойство не должны быть заданы одновременно. |
альтернатива | строка |
labelFilter | Фильтр меток для запросов флагов компонентов. Это свойство и snapshotName свойство не должны быть заданы одновременно. |
false | строка |
SnapshotName | Имя моментального снимка, из которого загружаются флаги компонентов. Это свойство не должно использоваться в сочетании с другими свойствами. | альтернатива | строка |
Свойство spec.featureFlag.refresh
имеет следующие дочерние свойства.
Имя | Описание | Обязательное поле | Тип |
---|---|---|---|
включена | Параметр, определяющий, обновляются ли флаги компонентов из Конфигурация приложений Azure автоматически. Если свойство отсутствует, используется значение false по умолчанию. |
false | bool |
interval | Интервал обновления флагов компонентов с Конфигурация приложений Azure. Оно должно быть больше или равно 1 секунде. Если свойство отсутствует, используется значение по умолчанию 30 секунд. | false | строка длительности |
Установка
Используйте следующую helm install
команду, чтобы установить поставщик Конфигурация приложений Azure Kubernetes. Полный список параметров и их значения по умолчанию см . в helm-values.yaml . Можно переопределить значения по умолчанию, передав --set
флаг в команду.
helm install azureappconfiguration.kubernetesprovider \
oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
--namespace azappconfig-system \
--create-namespace
Автомасштабирование
По умолчанию автомасштабирование отключено. Однако при наличии нескольких ресурсов для создания нескольких AzureAppConfigurationProvider
конфигураций и секретов можно включить автомасштабирование по горизонтали pod, установив для true
параметра autoscaling.enabled
значение .
helm install azureappconfiguration.kubernetesprovider \
oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
--namespace azappconfig-system \
--create-namespace
--set autoscaling.enabled=true
сбор данных
Программное обеспечение может собирать сведения о вас и использовании программного обеспечения и отправлять его в Корпорацию Майкрософт. Корпорация Microsoft может использовать ее для предоставления услуг и улучшения своих продуктов и служб. Вы можете отключить данные телеметрии, задав requestTracing.enabled=false
при установке поставщика Конфигурация приложений Azure Kubernetes. Существуют также некоторые функции программного обеспечения, которые позволяют вам и Корпорации Майкрософт собирать данные от пользователей ваших приложений. Если вы используете эти функции, необходимо соблюдать применимые законы, включая предоставление соответствующих уведомлений пользователям приложений вместе с копией заявления о конфиденциальности Майкрософт. С нашим заявлением о конфиденциальности можно ознакомиться на веб-сайте https://go.microsoft.com/fwlink/?LinkID=824704. Дополнительные сведения о сборе и использовании данных см. в документации справки и нашем заявлении о конфиденциальности. Использование вами данного программного обеспечения означает ваше согласие с этими принципами.
Примеры
Проверка подлинности
Использование управляемого удостоверения, назначаемого системой масштабируемого набора виртуальных машин
Включите управляемое удостоверение, назначаемое системой, в масштабируемом наборе виртуальных машин, используемом кластером Служба Azure Kubernetes (AKS).
Предоставьте управляемому удостоверению, назначаемого системой, Конфигурация приложений роль средства чтения данных в Конфигурация приложений Azure.
Разверните следующий пример
AzureAppConfigurationProvider
ресурса в кластере 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
Использование управляемого удостоверения, назначаемого пользователем масштабируемого набора виртуальных машин
Создайте управляемое удостоверение , назначаемое пользователем, и запишите его идентификатор клиента после создания.
Назначьте управляемому удостоверению, назначенному пользователем, масштабируемый набор виртуальных машин, используемый кластером Служба Azure Kubernetes (AKS).
Предоставьте управляемому удостоверению, назначаемого пользователем, Конфигурация приложений роль средства чтения данных в Конфигурация приложений Azure.
spec.auth.managedIdentityClientId
Задайте для свойства идентификатор клиента управляемого удостоверения, назначаемого пользователем, в следующем примереAzureAppConfigurationProvider
ресурса и разверните его в кластере 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>
Использование субъекта-службы
Предоставьте субъекту-службе роль средства чтения данных Конфигурация приложений в Конфигурация приложений Azure.
Создайте секрет Kubernetes в том же пространстве имен, что
AzureAppConfigurationProvider
и ресурс, и добавьте azure_client_id, azure_client_secret и azure_tenant_id субъекта-службы в секрет.spec.auth.servicePrincipalReference
Задайте свойству имя секрета в следующем примереAzureAppConfigurationProvider
ресурса и разверните его в кластере 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>
Использование удостоверения рабочей нагрузки
Включите удостоверение рабочей нагрузки в кластере Служба Azure Kubernetes (AKS).
Получите URL-адрес издателя OIDC кластера AKS.
Создайте управляемое удостоверение , назначаемое пользователем, и запишите его идентификатор клиента, идентификатор клиента, имя и группу ресурсов.
Предоставьте управляемому удостоверению, назначаемого пользователем, Конфигурация приложений роль средства чтения данных в Конфигурация приложений Azure.
Создайте учетную запись службы, добавив файл YAML (например, serviceAccount.yaml) со следующим содержимым в каталог, содержащий файлы развертывания AKS. Учетная запись службы будет создана при применении всех изменений развертывания к кластеру AKS (например, с помощью
kubectl apply
). Замените<your-managed-identity-client-id>
идентификатором клиента и<your-managed-identity-tenant-id>
идентификатором клиента управляемого удостоверения, назначаемого пользователем, который только что был создан. Замените<your-service-account-name>
предпочитаемым именем.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>
Создайте учетные данные федеративного удостоверения для управляемого удостоверения, назначаемого пользователем, с помощью Azure CLI. Замените
<user-assigned-identity-name>
именем и<resource-group>
группой ресурсов только что созданного управляемого удостоверения, назначаемого пользователем. Замените<aks-oidc-issuer>
URL-адрес издателя OIDC кластера AKS. Замените<your-service-account-name>
именем только что созданной учетной записи службы. Замените<federated-identity-credential-name>
предпочитаемое имя для учетных данных федеративного удостоверения.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
Обратите внимание, что субъект федеративных учетных данных удостоверения должен соответствовать этому формату:
system:serviceaccount:<service-account-namespace>:<service-account-name>
spec.auth.workloadIdentity.serviceAccountName
Задайте для свойства имя учетной записи службы в следующем примереAzureAppConfigurationProvider
ресурса. Убедитесь, чтоAzureAppConfigurationProvider
ресурс и учетная запись службы находятся в одном пространстве имен.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>
Использование строка подключения
Создайте секрет Kubernetes в том же пространстве имен, что
AzureAppConfigurationProvider
и ресурс, и добавьте Конфигурация приложений Azure строка подключения с ключом azure_app_configuration_connection_string в секрете.spec.connectionStringReference
Задайте свойству имя секрета в следующем примереAzureAppConfigurationProvider
ресурса и разверните его в кластере 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
Выбор "ключ-значение"
selectors
Используйте свойство для фильтрации значений ключей, которые нужно скачать из Конфигурация приложений Azure.
В следующем примере скачиваются все значения ключей без метки.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
В следующем примере два селектора используются для получения двух наборов значений ключей, каждый из которых содержит уникальные метки. Важно отметить, что значения последнего селектора имеют приоритет и переопределяют все перекрывающиеся ключи из предыдущих селекторов.
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
Моментальный снимок можно использовать отдельно или вместе с другими селекторами "ключ-значение". В следующем примере вы загружаете значения ключей общей конфигурации из моментального снимка, а затем переопределяете некоторые из них с ключевыми значениями для разработки.
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
Обрезка префикса ключа
В следующем примере свойство используется trimKeyPrefixes
для обрезки двух префиксов из имен ключей перед их добавлением в созданный 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]
Обновление конфигурации
При внесении изменений в данные в Конфигурация приложений Azure может потребоваться, чтобы эти изменения обновлялись автоматически в кластере Kubernetes. Обычно для обновления нескольких ключевых значений не требуется, чтобы кластер взял изменение в середине обновления. Чтобы обеспечить согласованность конфигурации, можно использовать значение ключа для сигнала о завершении обновления. Это значение ключа называется ключом sentinel. Поставщик Kubernetes может отслеживать это значение ключа, а ConfigMap и Secret будут повторно созданы только с обновленными данными после обнаружения изменения в ключе sentinel.
В следующем примере имя ключа с именем " app1_sentinel
ключ- значение" будет опрашивать каждую минуту, и конфигурация обновляется всякий раз, когда изменения обнаруживаются в ключе 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
Ссылки на Key Vault
Проверка подлинности
В следующем примере один Key Vault проходит проверку подлинности с помощью субъекта-службы, а все остальные Key Vault проходят проверку подлинности с помощью управляемого удостоверения, назначаемого пользователем.
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>
Типы секретов
В настоящее время поддерживаются два встроенных типа секретов Kubernetes, непрозрачные и TLS. Секреты, разрешенные из ссылок Key Vault, сохраняются в качестве типа непрозрачного секрета по умолчанию. Если у вас есть ссылка на Key Vault на сертификат и хотите сохранить его в качестве типа секрета TLS, можно добавить тег со следующим именем и значением в ссылку Key Vault в Конфигурация приложений Azure. Таким образом, секрет с kubernetes.io/tls
типом будет создан и назван в честь ключа ссылки Key Vault.
Имя. | Значение |
---|---|
.kubernetes.secret.type | kubernetes.io/tls |
В следующих примерах показано, как данные заполняются в созданных секретах с различными типами.
Если хранилище Конфигурация приложений имеет следующие ссылки на Key Vault:
key | значение | tags |
---|---|---|
app1-secret1 | <Справочник по Key Vault 1> | {} |
app1-secret2 | <Справочник по Key Vault 2> | {} |
app1-certificate | <Справочник по Key Vault 3> | {".kubernetes.secret.type": "kubernetes.io/tls"} |
В следующем примере создаются секреты непрозрачных и 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>
Созданные секреты заполняются следующими данными:
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>
Обновление секретов из Key Vault
Обновление секретов из Key Vault обычно требует перезагрузки соответствующих ссылок Key Vault из Конфигурация приложений Azure. Однако с spec.secret.refresh
помощью свойства можно обновить секреты из Key Vault независимо. Это особенно полезно для того, чтобы рабочая нагрузка автоматически взяла все обновленные секреты из Key Vault во время смены секретов. Обратите внимание, что для загрузки последней версии секрета ссылка на Key Vault не должна быть секретом версии.
В следующем примере обновляются все неверсионные секреты из Key Vault каждый час.
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
Флаги компонентов
В следующем примере флаги функций с ключами, начинающийся с app1
и эквивалентные меткам common
, загружаются и обновляются каждые 10 минут. Обратите внимание, что для заполнения флагов функций в созданном ConfigMap configMapData.type
свойство должно быть json
или 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
Использование ConfigMap
Приложения, работающие в Kubernetes, обычно используют ConfigMap как переменные среды или как файлы конфигурации. configMapData.type
Если свойство отсутствует или имеет значение по умолчанию, ConfigMap заполняется элементизованным списком данных, извлеченных из Конфигурация приложений Azure, которые можно легко использовать в качестве переменных среды. configMapData.type
Если для свойства задано значение json, yaml или properties, данные, полученные из Конфигурация приложений Azure, группируются в один элемент с именем ключа, указанным configMapData.key
свойством в созданном ConfigMap, который можно использовать в качестве подключенного файла.
В следующих примерах показано, как данные заполняются в созданном ConfigMap с разными параметрами configMapData.type
свойства.
Если хранилище Конфигурация приложений имеет следующие ключевые значения:
key | значение |
---|---|
key1 | value1 |
key2 | value2 |
key3 | value3 |
configMapData.type
И свойство отсутствует или задано значение 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
Созданный ConfigMap заполняется следующими данными:
data:
key1: value1
key2: value2
key3: value3