Diretrizes de escalonabilidade do Config Controller

Nesta página, você encontra recomendações para planejar a arquitetura de gerenciamento de configuração nas instâncias do Config Controller e manter a criação e o gerenciamento de recursos do Google Cloud dentro dos objetivos de nível de serviço (SLO).

Esta página é destinada a administradores, arquitetos e operadores que gerenciam o ciclo de vida da infraestrutura tecnológica subjacente e planejam as necessidades de capacidade e infraestrutura. Para saber mais sobre papéis comuns e tarefas de exemplo referenciados no conteúdo do Google Cloud, consulte Tarefas e funções de usuário comuns do GKE Enterprise.

Usar o modo com namespace

Recomendamos o uso do Config Connector no modo com namespace, porque pode ser mais fácil gerenciar um grande número de recursos. É possível definir que cada namespace corresponda a um único namespace, o que pode ajudar a gerenciar cotas e configurações, já que os recursos têm cotas de leitura e gravação por projeto. A partir da versão 1.119.0, é possível aumentar os limites da taxa de reconciliação por namespace. Ao aumentar os limites de taxa, é possível permitir a reconciliação de mais de 10.000 recursos por namespace em um intervalo de 10 minutos. Tanto o Config Connector quanto o Config Sync oferecem suporte ao modo com namespace, o que permite mapear cada namespace para um único projeto do Google Cloud.

Metas de escalonabilidade

A tabela a seguir representa os valores que testamos regularmente. Sabemos que o Config Connector pode lidar com números maiores. Mostramos que 30.000 podem ser gerenciados em um único namespace. No entanto, é necessário fazer alguns ajustes para que isso funcione. Recomendamos que você revise o modo namespace para receber sugestões sobre essas alterações.

Os destinos de escalonabilidade do Config Controller são grupos de recursos testados pelo Google e com o uso do GitOps do Config Sync. É possível usar esses destinos para ajudar a planejar sua arquitetura de gerenciamento de configuração.

Esses destinos não são limites rígidos. Alongar a quantidade de um tipo de recurso não necessariamente tornará a instância do Config Controller indisponível, mas poderá reduzir a quantidade total de outros tipos de recursos na mesma instância do Config Controller que você pode implantar.

As tabelas nesta página são apenas referências e não são exaustivas.

Namespace único

Veja no exemplo a seguir uma instância do Config Controller com um namespace do Config Connector no cluster. O Config Connector pode criar e gerenciar o seguinte número de recursos nesse namespace:

Resource type

Limite sugerido

SQLInstance

450

SQLDatabase

2.250

SQLUser

2.500

StorageBucket

5.000

ContainerCluster

50

ContainerNodepool

200

IAMServiceAccount

2.500

IAMPartialPolicy

7.500

Vários namespaces

O exemplo a seguir mostra uma instância do Config Controller com 50 namespaces do Config Connector em um cluster. O Config Connector pode criar e gerenciar o seguinte número de recursos em cada namespace:

Resource type

Limite sugerido

SQLInstance

9

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

Namespaces do Config Connector

O Config Controller usa o modo de namespace do Config Connector por padrão. Veja nas tabelas a seguir um exemplo do número de namespaces do Config Connector que você pode ter em uma única instância do Config Connector.

--cluster-ipv4-cidr-block

Número de nós

Número de namespaces do Config Connector

/18

64

600

/19

32

300

/20 (padrão e recomendado)

16

120

/21

8

60

Verificar as metas de escalonabilidade

É possível usar os recursos a seguir para determinar se você atingiu as metas de escalonabilidade.

Cotas da API Google Cloud

É possível ver suas cotas da API Google Cloud no console do Google Cloud. Quando algumas cotas estiverem perto dos limites, considere fragmentar a cota de API por projetos do Google Cloud. Para saber mais sobre monitoramento e alertas de métricas de cota, consulte Monitoramento e alertas de métricas de cota.

Uso de memória do Config Connector

É possível ver o uso da memória do Config Connector no painel de monitoramento do GKE. Quando o uso da memória do Config Connector estiver próximo do limite, considere Fragmentar por namespace.

Como escalonar verticalmente o Config Controller

Se você tiver atingido as metas de escalonabilidade, considere aumentar o escalonamento das instâncias do Config Controller. Nesta seção, descrevemos os diferentes métodos que você pode usar para escalonar verticalmente as instâncias do Config Controller.

Fragmentação por namespace

Se você atingir um objetivo de escalonabilidade com um único namespace do Config Connector, poderá Configurar o Config Connector para gerenciar recursos nos seus namespaces.

Cada namespace usa as próprias contas de serviço e cargas de trabalho de operadores, permitindo que o Config Connector gerencie seus recursos em grande escala. Se você usa uma instância do Config Connector para gerenciar vários projetos do Google Cloud, pode utilizar um namespace do Config Connector para gerenciar cada projeto do Google Cloud.

Fragmentar a cota de API por projetos do Google Cloud

Se você atingir uma meta de escalonabilidade devido ao alcance das Cotas da API Google Cloud, será possível vincular diferentes contas de serviço do IAM de diferentes projetos do Google Cloud a namespaces diferentes em que o Config Connector é instalado no modo de namespace. Depois, é possível dividir seus recursos em projetos diferentes.

Fragmentação por instâncias do Config Connector

Se você atingir uma meta de escalonabilidade com vários namespaces do Config Connector, poderá criar e usar mais de uma instância do Config Controller. Com mais de uma instância do Config Controller, é possível fragmentar o gerenciamento de configuração de recursos, por exemplo, por diferentes ambientes de desenvolvimento, equipes de aplicativos ou diretórios GitOps na organização.

Outras considerações sobre escalonabilidade

Cotas da API Google Cloud

Se você encontrar erros indicando que excedeu o limite de cota da API, talvez tenha criado muitos recursos do Config Connector do mesmo tipo no mesmo projeto. Esses recursos podem gerar muitas solicitações de API para o mesmo endpoint da API devido à estratégia de reconciliação no Config Connector.

Para resolver isso, fragmente a cota de API por projeto do Google Cloud ou solicite um limite de cota maior.

Limitações do GKE

Como o Config Controller foi criado com base no GKE, há limitações do GKE a serem consideradas. As seções a seguir abordam considerações específicas relacionadas ao Config Controller. Para mais informações sobre limites gerais e práticas recomendadas para grandes clusters do GKE, consulte Planejar para clusters grandes do GKE.

Limite da conta de serviço do Kubernetes

O número de Contas de serviço do Kubernetes (KSA) criadas em um único cluster do GKE não pode exceder 3.000 porque é possível encontrar um Problema de falha no pod gke-metadata-server.

Sempre que você adiciona um namespace do Config Connector, ele também cria uma conta de serviço do Kubernetes.

Problemas de desempenho no plano de controle do GKE

O plano de controle do cluster do GKE pode ter problemas de desempenho se uma instância do Config Controller tiver muitos namespaces do Config Connector. É necessário limitar o número de namespaces do Config Connector a menos de 500 por cluster.

Sempre que você adiciona um namespace do Config Connector, ele também cria um pod de controlador.

A seguir