Diretrizes de escalabilidade do Config Controller

Esta página fornece recomendações para ajudar a planear a arquitetura de gestão de configuração em instâncias do Config Controller e manter a Google Cloud criação e a gestão de recursos dentro dos objetivos de nível de serviço (SLOs).

Esta página destina-se a administradores, arquitetos e operadores que gerem o ciclo de vida da infraestrutura tecnológica subjacente e planeiam a capacidade e as necessidades de infraestrutura. Para saber mais sobre as funções comuns e as tarefas de exemplo que referimos no Google Cloud conteúdo, consulte Funções e tarefas comuns do utilizador do GKE.

Use o modo com espaço de nomes

Recomendamos a utilização do Config Connector no modo com espaços de nomes, uma vez que pode ser mais fácil gerir um grande número de recursos. Pode definir cada espaço de nomes para corresponder a um único espaço de nomes, o que pode ajudar a gerir as quotas e as configurações, uma vez que os recursos têm quotas de leitura e escrita por projeto. A partir da versão 1.119.0, pode aumentar os limites da taxa de conciliação por espaço de nomes. Ao aumentar os limites de taxa, pode permitir a conciliação de mais de 10 000 recursos por espaço de nomes num intervalo de 10 minutos. O Config Connector e o Config Sync suportam o modo com espaços de nomes, o que permite mapear cada espaço de nomes para um único Google Cloud projeto.

Alvos de escalabilidade

A tabela seguinte representa os valores que testamos regularmente. Sabemos que o Config Connector pode processar números maiores. Mostrámos que é possível gerir 30 000 recursos num único espaço de nomes. No entanto, é necessária alguma otimização para que isto funcione. Recomendamos que reveja o modo com espaço de nomes para ver sugestões sobre estas alterações.

Os alvos de escalabilidade do Config Controller são grupos de recursos testados pela Google e com a utilização do Config Sync GitOps. Pode usar estes alvos para ajudar a planear a sua arquitetura de gestão de configuração.

Estes objetivos não são limites rígidos. Aumentar a quantidade de um tipo de recurso não torna necessariamente a instância do Config Controller indisponível, mas pode reduzir a quantidade total de outros tipos de recursos na mesma instância do Config Controller que pode implementar.

As tabelas nesta página destinam-se a ser referências e não são exaustivas.

Espaço de nomes único

O exemplo seguinte mostra uma instância do Config Controller com um espaço de nomes do Config Connector no cluster. O Config Connector pode criar e gerir o seguinte número de recursos nesse espaço de nomes:

Tipo de recurso

Limite sugerido

SQLInstance

450

SQLDatabase

2500

SQLUser

2500

StorageBucket

5000

ContainerCluster

50

ContainerNodepool

200

IAMServiceAccount

2500

IAMPartialPolicy

7500

Vários espaços de nomes

O exemplo seguinte mostra uma instância do Config Controller com 50 espaços de nomes do Config Connector num cluster. O Config Connector pode criar e gerir o seguinte número de recursos em cada espaço de nomes:

Tipo de recurso

Limite sugerido

SQLInstance

9

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

Namespace do Config Connector

Por predefinição, o Config Controller usa o modo com espaço de nomes do Config Connector. As tabelas seguintes mostram um exemplo do número de espaços de nomes do Config Connector que pode ter numa única instância do Config Connector.

--cluster-ipv4-cidr-block

Número de nós

Número de espaços de nomes do Config Connector

/18

64

600

/19

32

300

/20 (predefinição e recomendado)

16

120

/21

8

60

Verificar objetivos de escalabilidade

Pode usar os seguintes recursos para ajudar a determinar se atingiu os objetivos de escalabilidade.

Google Cloud Quotas da API

Pode ver as suas Google Cloud quotas da API na Google Cloud consola. Quando algumas quotas estão perto dos respetivos limites, considere dividir a quota da API por Google Cloud projetos. Para saber mais sobre a monitorização e os alertas relativos às métricas de quota, consulte o artigo Configure alertas e monitorização de quotas.

Utilização de memória do Config Connector

Pode ver a utilização de memória do Config Connector no painel de controlo de monitorização do GKE. Quando a utilização de memória do Config Connector estiver perto do limite, considere a divisão por espaço de nomes.

Aumentar a escala do Config Controller

Se atingiu os objetivos de escalabilidade, deve considerar aumentar ainda mais as instâncias do Config Controller. Esta secção descreve diferentes métodos que pode usar para aumentar as suas instâncias do Config Controller.

Partição por espaço de nomes

Se atingir um objetivo de escalabilidade com um único espaço de nomes do Config Connector, pode configurar o Config Connector para gerir recursos nos seus espaços de nomes.

Cada espaço de nomes usa as suas próprias contas de serviço e cargas de trabalho do operador, o que permite que o Config Connector faça a gestão dos seus recursos em grande escala. Se usar uma instância do Config Connector para gerir vários Google Cloud projetos, pode usar um espaço de nomes do Config Connector para gerir cada Google Cloud projeto.

Dividir a quota da API por Google Cloud projetos

Se atingir um objetivo de escalabilidade devido ao alcance das Google Cloud quotas da API, pode associar diferentes contas de serviço de IAM pertencentes a diferentes projetos Google Cloud a diferentes espaços de nomes onde o Config Connector está instalado no modo de espaço de nomes. Em seguida, pode dividir os seus recursos em diferentes projetos.

Partição por instâncias do Config Connector

Se atingir um objetivo de escalabilidade com vários espaços de nomes do Config Connector, pode criar e usar mais do que uma instância do Config Controller. Com mais do que uma instância do Config Controller, pode dividir a gestão de configuração dos recursos, por exemplo, por diferentes ambientes de desenvolvimento, equipas de aplicações ou diretórios GitOps na sua organização.

Outras considerações de escalabilidade

Google Cloud Quotas da API

Se tiver encontrado erros que indicam que excedeu o limite da quota da API, pode ter criado demasiados recursos do Config Connector do mesmo tipo no mesmo projeto. Esses recursos podem gerar demasiados pedidos de API para o mesmo ponto final da API devido à estratégia de conciliação no Config Connector.

Para resolver este problema, pode dividir a quota da API por Google Cloud projeto ou pedir um ajuste da quota.

Limitações do GKE

Uma vez que o Config Controller é criado com base no GKE, existem limitações do GKE que deve considerar. As secções seguintes abordam considerações específicas relacionadas com o Config Controller. Para mais informações acerca dos limites gerais e das práticas recomendadas para clusters do GKE grandes, consulte o artigo Planeie clusters do GKE grandes.

Limite de contas de serviço do Kubernetes

​​O número de contas de serviço do Kubernetes (KSA) criadas num único cluster do GKE não deve exceder 3000,porque pode encontrar um gke-metadata-server problema de falha do pod.

Sempre que adiciona um espaço de nomes do Config Connector, também cria uma conta de serviço do Kubernetes.

Problemas de desempenho do plano de controlo do GKE

O plano de controlo do cluster do GKE pode ter problemas de desempenho se uma instância do Config Controller tiver demasiados espaços de nomes do Config Connector. Deve limitar o número de espaços de nomes do Config Connector a menos de 500 por cluster.

Sempre que adiciona um espaço de nomes do Config Connector, também cria um pod do controlador.

O que se segue?