En esta página, se proporcionan recomendaciones para ayudarte a planificar tu arquitectura de administración de configuraciones 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 Enterprise.
Usa el modo de espacio de nombres
Te recomendamos que uses Config Connector en el modo de espacio de nombres, ya que puede ser más fácil administrar una gran cantidad 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 el Sincronizador de configuración admiten el modo de espacio de nombres, que permite asignar cada espacio de nombres a un solo proyecto de 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, es necesario 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ó con el uso de GitOps del Sincronizador de configuración. Puedes usar estos objetivos para planificar tu arquitectura de administración de configuraciones.
Estos objetivos no son límites estrictos. Aumentar la cantidad de un tipo de recurso no hará que la instancia de Config Controller deje de estar 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 son de 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 |
|
450 |
|
2,250 |
|
2,500 |
|
5,000 |
|
50 |
|
200 |
|
2,500 |
|
7,500 |
Múltiples 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 |
|
9 |
SQLDatabase |
45 |
SQLUser |
45 |
StorageBucket |
100 |
ContainerCluster |
1 |
ContainerNodepool |
4 |
IAMServiceAccount |
50 |
IAMPartialPolicy |
150 |
Espacios de nombres de Config Connector
Config Controller usa el modo de espacio de nombres de Config Connector de forma predeterminada. En las siguientes tablas, se muestra un ejemplo de la cantidad de espacios de nombres de Config Connector que puedes tener en una sola instancia de Config Connector.
|
Cantidad de nodos |
Cantidad de espacios de nombres de Config Connector |
/18 |
64 |
600 |
/19 |
32 |
300 |
/20 (predeterminada y recomendada) |
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 las cuotas de las APIs de Google Cloud en la consola de Google Cloud . Cuando algunas cuotas estén cerca de sus límites, considera fragmentar la cuota de la API por proyectos de . Si deseas obtener más información para supervisar y generar alertas sobre las métricas de cuota, 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 esté cerca de su límite, considera fragmentar por espacio de nombres.
Escalamiento del controlador de configuración
Si alcanzaste los objetivos de escalabilidad, deberías considerar aumentar aún más las instancias de Config Controller. En esta sección, se describen los diferentes métodos que puedes usar para escalar tus instancias de Config Controller.
Divisió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 .
Quota de la API de Sharding por Google Cloud proyectos
Si alcanzas un objetivo de escalabilidad debido a que llegas a las cuotas de API deGoogle Cloud , puedes vincular diferentes cuentas de servicio de IAM que pertenecen 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.
Divisió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 de Config Controller, puedes particionar 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 API
Si tienes errores que indican que superaste 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 API al mismo extremo de API debido a la estrategia de conciliación en Config Connector.
Para resolver este problema, puedes fragmentar la cuota de la API por proyecto de Google Cloud o solicitar un límite de cuota más alto.
Limitaciones de GKE
Dado que Config Controller se compila en GKE, existen limitaciones de GKE que debes tener en cuenta. En las siguientes secciones, se abordan aspectos específicos relacionados con Config Controller. Para obtener más información sobre los límites generales y las prácticas recomendadas para 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 podrías encontrar un problema de falla de 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?
- Obtén información para fragmentar Config Controller.
- Obtén ayuda para solucionar problemas del controlador de configuración.