Descripción general del Sincronizador de configuración

El Sincronizador de configuración permite que los operadores de clúster y los administradores de la plataformas implementen opciones de configuración y políticas coherentes. Puedes implementar estas opciones de configuración y políticas en clústeres individuales de Kubernetes, múltiples clústeres que pueden abarcar entornos híbridos y de múltiples nubes, y múltiples espacios de nombres dentro de los clústeres. Este proceso simplifica y automatiza la configuración y la administración de políticas a gran escala. El Sincronizador de configuración también permite que los equipos de desarrollo administren sus espacios de nombres de forma independiente dentro de los clústeres, al tiempo que están sujetos a barreras de seguridad de las políticas establecidas por los administradores.

Con los mismos principios de Kubernetes, el Sincronizador de configuración propaga de manera continua el estado de los clústeres registrados con un conjunto central de archivos de Kubernetes de configuración declarativa llamados archivos de configuración. Los archivos de configuración se almacenan en uno o más repositorios de Git, y el Sincronizador de configuración los mantiene coherentes con los objetos de Kubernetes configurados. Este enfoque de GitOps (también conocido como configuración como código) te permite administrar, así como implementar una configuración común con un proceso auditable, transaccional, visible y controlado por la versión.

En el siguiente diagrama, un administrador de plataforma crea configuraciones coherentes para tres clústeres diferentes mediante la aplicación de archivos de configuración a los clústeres y espacios de nombres dentro del clúster:

Un administrador de plataforma que implementa varios archivos de configuración en sus clústeres

Beneficios del sincronizador de configuración

En los siguientes puntos, se destacan algunos de los beneficios que brinda el Sincronizador de configuración:

  • Reduce el riesgo de “operaciones de sombra”: Si los cambios sin verificar se envían a clústeres activos, puede ser difícil comprender las diferencias entre la configuración documentada y el entorno en vivo. Puedes solicitar que todos los cambios de configuración del clúster se apliquen mediante el Sincronizador de configuración, que se bloquee el acceso directo a la API de Kubernetes y que rastreen los cambios hasta sus fuentes de información en Git.
  • Usa las prácticas recomendadas de GitOps: antes de que se envíen cambios a tu entorno en vivo, puedes exigir revisiones de código con las herramientas de administración de repositorios que prefieras. Usa el Sincronizador de configuración para auditar con exactitud la confirmación que causó un cambio de configuración.
  • Reduce el tiempo de inactividad debido a las interrupciones relacionadas con la configuración: el Sincronizador de configuración te permite usar una estrategia de “revertir y, luego, investigar” para revertir los cambios rotundos y hacer que tus clústeres en vivo vuelvan a funcionar de forma correcta antes de corregir el cambio problemático y aplicarlo como una confirmación nueva.
  • Usa canalizaciones de integración continua / implementación continua (CI/CD): Usa un flujo de trabajo de CI/CD para procesar la configuración con las herramientas y los formatos que prefieras, prueba y valida tus cambios, y confírmalos automáticamente cuando se aprueben las pruebas Luego, el Sincronizador de configuración aplica los cambios y, posteriormente, supervisa y corrige los desvíos de configuración.

Información sobre el Sincronizador de configuración

Requisitos previos

El Sincronizador de configuración usa espacios de nombres, etiquetas y anotaciones como partes centrales de sus implementación Es útil conocer bien estos conceptos antes de comenzar a usar el producto.

Configura clústeres

El Sincronizador de configuración te permite crear un conjunto común de políticas a nivel de clúster y de configuración, como las restricciones del controlador de políticas, y aplicarlas de manera coherente a los registros y a los clústeres conectados desde una única fuente de información en Git. Antes de configurar un clúster, debes crear una configuración y un repositorio.

Configuraciones

Un archivo de configuración es una declaración de configuración de Kubernetes escrita en YAML o JSON. El sincronizador de configuración lee y aplica la configuración a uno o más clústeres para crear o configurar un objeto o recurso de Kubernetes en esos clústeres, o para proporcionar información que el Sincronizador de configuración necesita. Un archivo de configuración puede contener cualquier detalle de configuración que puedes aplicar a un clúster de Kubernetes mediante kubectl edit o kubectl apply. También puedes declarar varios archivos de configuración en un único archivo. El Sincronizador de configuración lee tres tipos de archivos: .yaml, .yml y .json. Se ignorarán los archivos con otros sufijos.

Antes de escribir una configuración, debes comprender el objeto de Kubernetes para el que la escribes.

Para obtener más información, consulta la descripción general de los archivos de configuración y la configuración de objetos de Kubernetes, que muestra cómo crear una configuración.

Repositorios

El repositorio (o repo) es el repositorio de Git en el que se almacenan los archivos de configuración, incluido el archivo de configuración del Sincronizador de configuración. Cuando configuras el Sincronizador de configuración, estableces el repositorio, la rama y el subdirectorio que el Sincronizador de configuración supervisa para detectar cambios.

El Sincronizador de configuración te permite sincronizar opciones de configuración de varios repositorios al mismo conjunto de clústeres. En el Sincronizador de configuración, puedes hacer referencia a cada repositorio mediante su referencia de Git (una URL de Git, una rama del repositorio, una confirmación o una etiqueta y un directorio). Esta configuración separa el ciclo de vida de la implementación de configuración para los diferentes equipos. También te brinda más autonomía para elegir dónde deseas alojar el repositorio y cómo estructurarlo.

Puedes crear dos tipos de repositorios: un repositorio raíz y repositorios de espacios de nombres:

  • Repositorio raíz: Este repositorio te permite sincronizar una configuración con permiso de clúster y de espacio de nombres. El repositorio raíz usa credenciales a nivel de administrador para aplicar políticas en los espacios de nombres de la aplicación y anular los cambios locales que derivan del estado que declaraste en los archivos de configuración. Cada clúster solo puede tener un repositorio raíz y, por lo general, un administrador central controla este repositorio.

    Puedes usar dos estructuras diferentes para tu repositorio raíz:

    • No estructurado: El formato fuente no estructurado te permite organizar la configuración de tu repositorio de la manera que sea más conveniente. Este formato puede ser muy útil si organizas o generas archivos de configuración con una herramienta como kustomize, kpt o helm. Este es el formato recomendado para la mayoría de los usuarios. Para obtener más información, consulta Usa un repositorio no estructurado.
    • Jerárquico: El formato fuente jerárquico o estructurado, separa los archivos de configuración en categorías distintas para la configuración del sistema, los metadatos del clúster, la configuración a nivel del clúster y la configuración del espacio de nombres a fin de ayudarte a organizar los archivos de configuración. También admite la herencia jerárquica de la configuración en varios espacios de nombres según la estructura de directorios, que se analiza con más detalle en la sección Configura espacios de nombres. El formato predeterminado del repositorio del Sincronizador de configuración es jerárquico. Para obtener más información, consulta Descripción general de los repositorios jerárquicos.

    Para obtener información sobre cómo configurar tu repositorio raíz, consulta Instala el Sincronizador de configuración.

  • Repositorios de espacios de nombres: Los repositorios de espacios de nombres son opcionales y pueden contener archivos de configuración con permisos de espacio de nombres que están sincronizados con un espacio de nombres particular en todos los clústeres. Puedes delegar la configuración y el control de un repositorio de espacio de nombres a usuarios no administrativos. Los repositorios de espacios de nombres deben usar el formato de repositorio no estructurado. Para obtener más información, consulta Configura la sincronización desde repositorios de espacios de nombres.

En el siguiente diagrama, se muestra una descripción general de cómo los equipos pueden sincronizar sus clústeres en un solo repositorio raíz (administrado por un administrador) y varios repositorios de espacios de nombres (administrados por los operadores de la aplicación):

Un administrador central que controla varias configuraciones y operadores de apps que controlan sus propias configuraciones de espacios de nombres.

En el diagrama anterior, un administrador central administra la infraestructura centralizada de la organización y aplica políticas en el clúster y en todos los espacios de nombres de la organización. Los operadores de la aplicación, que son responsables de administrar las implementaciones en vivo, aplican configuraciones a las aplicaciones en los espacios de nombres en los que operan.

Configura varios clústeres

El Sincronizador de configuración te ayuda a implementar políticas y configuraciones coherentes en varios clústeres que pueden abarcar entornos híbridos y de múltiples nubes.

El Sincronizador de configuración te ayuda a configurar varios clústeres, ya que brinda las siguientes opciones:

  • En lugar de ejecutar repetidas veces el comando kubectl apply de forma manual, puedes organizar la implementación de los cambios de configuración en flotas de clústeres a través de Git. Para obtener más información, consulta Lanzamientos seguros con Anthos Config Management.
  • Asegurarte de que se envíe un cambio a cada clúster relevante y solo a los clústeres relevantes, según los metadatos que se aplican a cada clúster Para obtener más información, consulta Configura solo un subconjunto de clústeres. Los metadatos del clúster se administran de manera un poco diferente en los formatos de repositorio no estructurados y jerárquicos.

Te recomendamos registrar tus clústeres. Si lo haces, se facilita la observación del estado actual de todos los clústeres a través de Google Cloud Console y permite la configuración y administración centralizadas del Sincronizador de configuración en los clústeres registrados. Para obtener más información, consultaRegistra un clúster, Configura el Sincronizador de configuración y Actualiza las versiones de Sincronizador de configuración.

Configurar espacios de nombres

La configuración de espacios de nombres con el Sincronizador de configuración te brinda las siguientes funciones:

  • Puedes aprovisionar espacios de nombres de Kubernetes de forma coherente con políticas de alcance de espacio de nombres, como funciones de RBAC, en clústeres registrados y conectados. Las políticas con alcance de espacio de nombres facilitan la implementación y la administración de multiusuarios dentro de los clústeres.
  • Aplica políticas a varios espacios de nombres relacionados, sin duplicar los archivos de configuración y con la capacidad de anular o extender uno de estos archivos para un espacio de nombres o conjunto de espacios de nombres determinados, lo que facilita la aplicación de políticas coherentes en las instancias.

Estas capacidades funcionan de manera diferente en los formatos de repositorio no estructurados y jerárquicos.

Con los repositorios no estructurados, puedes usar Hierarchy Controller a fin de propagar políticas en las jerarquías de espacios de nombres que definas para tus clústeres. Para obtener más información, consulta la Descripción general del controlador de jerarquía.

Con los repositorios jerárquicos, puedes usar grupos de espacios de nombres llamados espacios de nombres abstractos para controlar a qué políticas de espacios de nombres se deben propagar. Los espacios de nombres abstractos requieren organizar espacios de nombres de manera jerárquica en el árbol de directorio de tu repositorio. Para obtener más información, consulta Configura espacios de nombres y objetos con alcance de espacios de nombres y la Descripción general de la herencia de espacios de nombres.

Los formatos jerárquicos y no estructurados también admiten la orientación de conjuntos de espacios de nombres no jerárquicos mediante selectores de etiquetas.

El comando nomos

El Sincronizador de configuración proporciona una API. El comando nomos (nomos.exe en Windows) consume la API, comprueba el estado de la instalación y valida las configuraciones.

Para obtener más información, consulta Usa el comando .

¿Qué sigue?