Tutorial: Uso de la configuración dinámica en Azure Kubernetes Service
Si usa Azure Kubernetes Service (AKS), en este tutorial se muestra cómo habilitar la configuración dinámica de las cargas de trabajo en AKS aprovechando Azure App Configuration y su proveedor de Kubernetes. En el tutorial se supone que trabaja en el inicio rápido y que tiene configurado un proveedor de Kubernetes de App Configuration, por lo que antes de continuar, asegúrese de completar el inicio rápido de Uso de Azure App Configuration en Azure Kubernetes Service.
Sugerencia
Consulte las opciones para las cargas de trabajo hospedadas en Kubernetes para acceder a Azure App Configuration.
Requisitos previos
Finalice el inicio rápido: uso de Azure App Configuration en Azure Kubernetes Service.
Sugerencia
Azure Cloud Shell es un shell interactivo gratuito que se puede usar para ejecutar las instrucciones de línea de comandos en este artículo. Tiene herramientas comunes de Azure preinstaladas, lo que incluye el SDK de .NET Core. Si ha iniciado sesión en su suscripción de Azure, inicie Azure Cloud Shell desde shell.azure.com. Para más información sobre Azure Cloud Shell, lea la documentación.
Adición de una clave de Sentinel
Una clave de Sentinel es una clave que se actualiza después de completar el cambio de todas las demás claves. La aplicación supervisa la clave de Sentinel. Cuando se detecta un cambio, la aplicación actualiza todos los valores de configuración. Este enfoque ayuda a garantizar la coherencia de la configuración de la aplicación y reduce el número total de solicitudes realizadas al almacén de App Configuration, en comparación con la supervisión de los cambios en todas las claves.
Agregue el siguiente par de clave-valor al almacén de App Configuration. Para obtener más información sobre cómo agregar pares clave-valor a un almacén mediante Azure Portal o la CLI, vaya a Creación de un par clave-valor.
Clave | Value |
---|---|
Settings:Sentinel | 1 |
Recarga de datos de App Configuration
Abra el archivo appConfigurationProvider.yaml ubicado en el directorio Implementación. A continuación, agregue la sección
refresh
en la propiedadconfiguration
. Habilita la actualización de configuración mediante la supervisión de la clave de 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 configMapData: type: json key: mysettings.json auth: workloadIdentity: managedIdentityClientId: <your-managed-identity-client-id> configuration: refresh: enabled: true monitoring: keyValues: - key: Settings:Sentinel
Sugerencia
De forma predeterminada, el proveedor de Kubernetes sondea los valores de clave de supervisión cada 30 segundos para la detección de cambios. Sin embargo, puede cambiar este comportamiento estableciendo la propiedad
interval
delrefresh
. Si desea reducir el número de solicitudes al almacén de App Configuration, puede ajustarla a un valor mayor.Abra el archivo deployment.yaml en el directorio Implementación y agregue el siguiente contenido a la sección
spec.containers
. La aplicación carga la configuración desde un archivo montado en volumen que genera el proveedor de Kubernetes de App Configuration. Al establecer esta variable de entorno, la aplicación puede usar el sondeo para supervisar los cambios en los archivos montados.env: - name: DOTNET_USE_POLLING_FILE_WATCHER value: "true"
Ejecute el siguiente comando para implementar el cambio. Reemplace el espacio de nombres si usa la aplicación de AKS existente.
kubectl apply -f ./Deployment -n appconfig-demo
Abra una ventana del explorador y vaya a la dirección IP que obtuvo en el paso anterior. La página web tiene este aspecto:
Actualice los siguientes valores de clave en el almacén de App Configuration, asegurándose de actualizar la clave de Sentinel por última vez.
Key Value Settings:Message Hola desde Azure App Configuration: ahora con actualizaciones en directo. Settings:Sentinel 2 Después de actualizar el explorador varias veces, verá el contenido actualizado una vez que ConfigMap se actualice en 30 segundos.
Volver a cargar ConfigMap y secreto
El proveedor de Kubernetes de App Configuration genera ConfigMaps o secretos que se pueden usar como variables de entorno o archivos montados por volumen. En este tutorial se muestra cómo cargar la configuración desde un archivo JSON mediante el proveedor de configuración JSON de .NET, que vuelve a cargar automáticamente la configuración cada vez que se detecta un cambio en el archivo montado. Como resultado, la aplicación obtiene automáticamente la configuración actualizada cada vez que el proveedor de Kubernetes de App Configuration actualiza el ConfigMap.
Si la aplicación depende de variables de entorno para la configuración, puede requerir un reinicio para recoger los valores actualizados. En Kubernetes, el reinicio de la aplicación se puede orquestar mediante actualizaciones graduales en los pods o contenedores correspondientes. Para automatizar las actualizaciones de configuración, puede aprovechar herramientas de terceros como stakater/Reloader, lo que puede desencadenar automáticamente actualizaciones graduales en los cambios realizados en ConfigMaps o secretos.
Pasos siguientes
Para más información sobre el proveedor de Kubernetes de Azure App Configuration, consulte Referencia del proveedor de Kubernetes de Azure App Configuration.