Lineamientos de escalabilidad de Config Controller

En esta página, se proporcionan recomendaciones para ayudarte a planificar tu arquitectura de administración de configuración en instancias de Config Controller y mantener la creación y administración de recursos de Google Cloud dentro de los objetivos de nivel de servicio (SLO).

Esta página está destinada a administradores, arquitectos y operadores que administran el ciclo de vida de la infraestructura tecnológica subyacente y planifican la capacidad y las necesidades de infraestructura. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Tareas y roles comunes de los usuarios de GKE.

Cómo usar el modo de espacio de nombres

Recomendamos usar Config Connector en el modo de espacio de nombres porque puede ser más fácil administrar grandes cantidades de recursos. Puedes configurar cada espacio de nombres para que corresponda a un solo espacio de nombres, lo que puede ayudar a administrar las cuotas y las configuraciones, ya que los recursos tienen cuotas de lectura y escritura por proyecto. A partir de la versión 1.119.0, puedes aumentar los límites de frecuencia de conciliación por espacio de nombres. Si aumentas los límites de frecuencia, puedes permitir la conciliación de más de 10,000 recursos por espacio de nombres en un intervalo de 10 minutos. Tanto Config Connector como Sincronizador de configuración admiten el modo con espacio de nombres, que permite asignar cada espacio de nombres a un solo proyecto Google Cloud .

Objetivos de escalabilidad

En la siguiente tabla, se representan los valores que probamos con regularidad. Sabemos que Config Connector puede controlar números más grandes. Demostramos que se pueden administrar 30,000 recursos en un solo espacio de nombres. Sin embargo, se necesita realizar algunos ajustes para que esto funcione. Te recomendamos que revises el modo con espacio de nombres para obtener sugerencias sobre estos cambios.

Los objetivos de escalabilidad del controlador de configuración son grupos de recursos que Google probó y que se usan con GitOps de Config Sync. Puedes usar estos objetivos para planificar tu arquitectura de administración de configuración.

Estos objetivos no son límites estrictos. Extender la cantidad de un tipo de recurso no necesariamente hará que la instancia de Config Controller no esté disponible, pero podría reducir la cantidad total de otros tipos de recursos en la misma instancia de Config Controller que puedes implementar.

Las tablas de esta página se proporcionan como referencia y no son exhaustivas.

Espacio de nombres único

En el siguiente ejemplo, se muestra una instancia de Config Controller con un espacio de nombres de Config Connector en el clúster. Config Connector puede crear y administrar la siguiente cantidad de recursos en ese espacio de nombres:

Tipo de recurso

Límite sugerido

SQLInstance

450

SQLDatabase

2,250

SQLUser

2,500

StorageBucket

5,000

ContainerCluster

50

ContainerNodepool

200

IAMServiceAccount

2,500

IAMPartialPolicy

7,500

Varios espacios de nombres

En el siguiente ejemplo, se muestra una instancia de Config Controller con 50 espacios de nombres de Config Connector en un clúster. Config Connector puede crear y administrar la siguiente cantidad de recursos en cada espacio de nombres:

Tipo de recurso

Límite sugerido

SQLInstance

9

SQLDatabase 45
SQLUser 45
StorageBucket 100
ContainerCluster 1
ContainerNodepool 4
IAMServiceAccount 50
IAMPartialPolicy 150

Espacios de nombres de Config Connector

De forma predeterminada, Config Controller usa el modo de espacio de nombres de Config Connector. En la siguiente tabla, se muestra un ejemplo de la cantidad de espacios de nombres de Config Connector que puedes tener en una sola instancia de Config Connector.

--cluster-ipv4-cidr-block

Cantidad de nodos

Cantidad de espacios de nombres de Config Connector

/18

64

600

/19

32

300

/20 (predeterminado y recomendado)

16

120

/21

8

60

Cómo verificar los objetivos de escalabilidad

Puedes usar los siguientes recursos para determinar si alcanzaste los objetivos de escalabilidad.

Google Cloud Cuotas de API

Puedes ver tus cuotas de la API de Google Cloud en la consola de Google Cloud . Cuando algunas cuotas estén cerca de sus límites, considera la posibilidad de dividir la cuota de la API por proyectos. Google Cloud Si deseas obtener más información para supervisar las métricas de cuota y generar alertas sobre ellas, consulta Supervisa y alerta sobre las métricas de cuota.

Uso de memoria de Config Connector

Puedes ver el uso de memoria de Config Connector en el panel de supervisión de GKE. Cuando el uso de memoria de Config Connector se acerca a su límite, considera la posibilidad de fragmentar por espacio de nombres.

Cómo escalar el controlador de configuración

Si alcanzaste los objetivos de escalabilidad, deberías considerar escalar aún más tus instancias de Config Controller. En esta sección, se describen los diferentes métodos que puedes usar para aumentar la escala de tus instancias de Config Controller.

Fragmentación por espacio de nombres

Si alcanzas un objetivo de escalabilidad con un solo espacio de nombres de Config Connector, puedes configurar Config Connector para administrar recursos en tus espacios de nombres.

Cada espacio de nombres usa sus propias cuentas de servicio y cargas de trabajo del operador, lo que permite que Config Connector administre tus recursos a gran escala. Si usas una instancia de Config Connector para administrar varios proyectos de Google Cloud , puedes usar un espacio de nombres de Config Connector para administrar cada proyecto de Google Cloud . Google Cloud

Fragmentación de la cuota de la API por Google Cloud proyectos

Si alcanzas un objetivo de escalabilidad debido a que alcanzaste las cuotas de la API deGoogle Cloud , puedes vincular diferentes cuentas de servicio de IAM que pertenezcan a diferentes proyectos de Google Cloud a diferentes espacios de nombres en los que Config Connector esté instalado en modo de espacio de nombres. Luego, puedes dividir tus recursos en diferentes proyectos.

Fragmentación por instancias de Config Connector

Si alcanzas un objetivo de escalabilidad con varios espacios de nombres de Config Connector, puedes crear y usar más de una instancia de Config Controller. Con más de una instancia del Controlador de configuración, puedes fragmentar la administración de la configuración de recursos, por ejemplo, por diferentes entornos de desarrollo, equipos de aplicaciones o directorios de GitOps dentro de tu organización.

Otras consideraciones de escalabilidad

Google Cloud Cuotas de la API

Si recibiste errores que indican que excediste el límite de cuota de la API, es posible que hayas creado demasiados recursos de Config Connector del mismo tipo en el mismo proyecto. Esos recursos pueden generar demasiadas solicitudes a la misma extremo de API debido a la estrategia de reconciliación en Config Connector.

Para resolver este problema, puedes dividir la cuota de la API por Google Cloud proyecto o solicitar un ajuste de cuota.

Limitaciones de GKE

Dado que Config Controller se basa en GKE, existen limitaciones de GKE que debes tener en cuenta. En las siguientes secciones, se abordan consideraciones específicas relacionadas con Config Controller. Para obtener más información sobre los límites generales y las prácticas recomendadas para los clústeres de GKE grandes, consulta Planifica para clústeres de GKE grandes.

Límite de cuentas de servicio de Kubernetes

​​La cantidad de cuentas de servicio de Kubernetes (KSA) creadas en un solo clúster de GKE no debe superar las 3,000, ya que es posible que se produzca un problema de falla del Pod gke-metadata-server.

Cada vez que agregas un espacio de nombres de Config Connector, también se crea una cuenta de servicio de Kubernetes.

Problemas de rendimiento del plano de control de GKE

El plano de control del clúster de GKE puede tener problemas de rendimiento si una instancia de Config Controller tiene demasiados espacios de nombres de Config Connector. Debes limitar la cantidad de espacios de nombres de Config Connector a menos de 500 por clúster.

Cada vez que agregas un espacio de nombres de Config Connector, también se crea un pod de controlador.

¿Qué sigue?