Implementación de aplicaciones de forma coherente a escala mediante configuraciones de Flux v2 y Azure Policy
Azure Policy se puede usar para aplicar configuraciones de Flux v2 (tipo de recurso de Microsoft.KubernetesConfiguration/fluxConfigurations
) a gran escala en clústeres de Kubernetes habilitados para Azure Arc (Microsoft.Kubernetes/connectedClusters
) o de AKS (Microsoft.ContainerService/managedClusters
). Para usar Azure Policy, seleccione una definición de directiva integrada y cree una asignación de directiva.
Antes de asignar la directiva que crea configuraciones de Flux, debe asegurarse de que la extensión Flux se implementa en los clústeres. Para ello, primero debe asignar una directiva que implemente la extensión en todos los clústeres del ámbito seleccionado (todos los grupos de recursos de una suscripción o grupo de administración, o en grupos de recursos específicos). A continuación, al crear la asignación de directiva para implementar configuraciones, establezca parámetros para la configuración de Flux que se aplicará a los clústeres de ese ámbito.
Para habilitar la separación de preocupaciones, puede crear varias asignaciones de directivas, cada una con una configuración de Flux v2 diferente que apunte a un origen diferente. Por ejemplo, los administradores de clúster pueden usar un repositorio de Git, mientras que otros repositorios los pueden usar los equipos de aplicaciones.
Definiciones de directiva integradas
Las siguientes definiciones de directivas integradas proporcionan compatibilidad con estos escenarios:
Descripción | Directiva |
---|---|
Instalación de la extensión Flux (necesaria en todos los escenarios) | Configure installation of Flux extension on Kubernetes cluster |
Configuración de Flux mediante un repositorio de Git público (por lo general, un escenario de prueba) | Configure Kubernetes clusters with Flux v2 configuration using public Git repository |
Configuración de Flux mediante un repositorio de Git privado con autenticación SSH | Configure Kubernetes clusters with Flux v2 configuration using Git repository and SSH secrets |
Configuración de Flux mediante un repositorio de Git privado con autenticación HTTPS | Configure Kubernetes clusters with Flux v2 configuration using Git repository and HTTPS secrets |
Configuración de Flux mediante un repositorio de Git privado con autenticación de certificado de CA HTTPS | Configure Kubernetes clusters with Flux v2 configuration using Git repository and HTTPS CA Certificate |
Configuración de Flux mediante un repositorio de Git privado con un secreto de K8s local | Configure Kubernetes clusters with Flux v2 configuration using Git repository and local secrets |
Configuración de Flux mediante un origen de Bucket privado y secretos de KeyVault | Configure Kubernetes clusters with Flux v2 configuration using Bucket source and secrets in KeyVault |
Configuración de Flux mediante un origen de Bucket privado y un secreto de K8s local | Configure Kubernetes clusters with specified Flux v2 Bucket source using local secrets |
Para buscar todas las definiciones de directiva de Flux v2, busque flux. Para más información, consulte Definiciones integradas de Azure Policy para Kubernetes habilitado para Azure Arc.
Requisitos previos
- Uno o varios clústeres de Kubernetes habilitados para Arc o clústeres de AKS.
- Permisos
Microsoft.Authorization/policyAssignments/write
en el ámbito (suscripción o grupo de recursos) donde creará las asignaciones de directiva.
Creación de una asignación de directiva para instalar la extensión Flux
Para que una directiva aplique configuraciones de Flux v2 a un clúster, primero debe instalarse la extensión en el clúster. Para asegurarse de que la extensión está instalada en cada uno de los clústeres, asigne la definición de directiva Configuración de la instalación de la extensión Flux en el clúster de Kubernetes al ámbito deseado.
- En Azure Portal, vaya a Directiva.
- En la sección Creación de la barra lateral, seleccione Definiciones.
- En la categoría "Kubernetes", seleccione la definición de directiva integrada Configuración de la instalación de la extensión Flux en el clúster de Kubernetes.
- Seleccione Asignar.
- Establezca el Ámbito en el grupo de administración, la suscripción o el grupo de recursos al que se aplicará la asignación de directiva.
- Si quiere excluir recursos del ámbito de asignación de la directiva, establezca Exclusiones.
- Otorgue a la asignación de directiva un nombre de asignación y una descripción fáciles de identificar.
- Asegúrese de que Cumplimiento de directivas esté establecido en Habilitado.
- Seleccione Revisar y crear y, luego, Crear.
Creación de una asignación de directiva para aplicar configuraciones de Flux
A continuación, vuelva a la lista Definiciones (en la sección Creación de Directiva) para aplicar la definición de directiva de configuración al mismo ámbito.
En la categoría "Kubernetes", seleccione la definición de directiva integrada Configurar clústeres de Kubernetes con la configuración de Flux v2 mediante el repositorio Git público o una de las otras definiciones de directiva para aplicar configuraciones de Flux.
Seleccione Asignar.
Establezca el Ámbito en el mismo que seleccionó al asignar la primera directiva, incluidas las exclusiones.
Otorgue a la asignación de directiva un nombre de asignación y una descripción fáciles de identificar.
Asegúrese de que Cumplimiento de directivas esté establecido en Habilitado.
Seleccione Siguiente y, a continuación, seleccione Siguiente de nuevo para abrir la pestaña Parámetros.
Establezca los valores de parámetro que se van a usar.
- Para obtener más información sobre los parámetros, vea el tutorial sobre la implementación de configuraciones de Flux v2.
- Al crear configuraciones de Flux, debe proporcionar un valor para uno (y solo uno) de estos parámetros:
repositoryRefBranch
,repositoryRefTag
,repositoryRefSemver
,repositoryRefCommit
.
Seleccione Siguiente para abrir la tarea Corrección.
Habilite Crear una tarea de corrección.
Verifique que se comprueba Crear una identidad administrada y que la identidad tiene permisos de Colaborador. Para más información, consulte Inicio rápido: creación de una asignación de directiva para identificar recursos no compatibles y Corrección de recursos no compatibles con Azure Policy.
Seleccione Revisar y crear y, luego, Crear.
A continuación, la configuración se aplica a los nuevos clústeres de Kubernetes o AKS habilitados para Azure Arc creados dentro del ámbito de la asignación de directivas.
En los clústeres existentes, es posible que deba ejecutar manualmente una tarea de corrección. Normalmente, esta tarea de asignación de directiva tarda entre 10 y 20 minutos en surtir efecto.
Verificación de la asignación de directiva
En Azure Portal, vaya a uno de los clústeres de Kubernetes habilitados para Azure Arc o de AKS.
En la sección Configuración de la barra lateral, seleccione GitOps.
En la lista de configuraciones, debería ver la configuración creada por la asignación de directiva.
En la sección Recursos de Kubernetes de la barra lateral, seleccione Espacios de nombres y Cargas de trabajo.
Debería ver el espacio de nombres y los artefactos que creó la configuración de Flux. Debería ver también que los objetos que describen los manifiestos en el repositorio de Git que se implementan en el clúster.
Personalización de una directiva
Las directivas integradas abarcan los escenarios principales para usar GitOps con Flux v2 en los clústeres de Kubernetes. Sin embargo, debido a las limitaciones en el número de parámetros permitidos en las asignaciones de Azure Policy (un máximo de 20), no todos los parámetros están presentes en las políticas incorporadas. Además, para ajustarse al límite de 20 parámetros, solo se puede crear una única Kustomization con las directivas integradas.
Si tiene un escenario que difiere de las directivas integradas, puede superar las limitaciones mediante la creación de directivas personalizadas mediante las directivas integradas como plantillas. Puede crear directivas personalizadas que contengan solo los parámetros que necesita y codificar de forma rígida el resto, por lo tanto, trabajando en torno al límite de 20 parámetros.