Práticas recomendadas para o Config Connector
Esta página explica as práticas recomendadas que deve considerar quando usar o Config Connector.
Faça a gestão dos limites de quota da API
Se tiver ocorrido um erro a indicar que excedeu o limite da quota da API, pode ter criado demasiados recursos do Config Connector do mesmo tipo no mesmo projeto de quota. Quando cria muitos recursos, esses recursos podem gerar demasiados pedidos de API para o mesmo ponto final da API devido à estratégia de conciliação que o Config Connector usa.
Uma forma de resolver este problema é pedir um aumento da quota. Além de um aumento da quota, se confirmou que o erro de quota é causado por pedidos GET em relação aos recursos geridos pelos seus recursos do Config Connector, pode considerar uma das seguintes opções: Google Cloud
- Aumente o intervalo de conciliação para os seus recursos do Config Connector
- Divida os seus recursos em vários projetos
- Mude o conetor de configuração para o modo com espaço de nomes
Aumente o intervalo de conciliação
Pode aumentar o tempo entre a reconciliação de um recurso pelo Config Connector para evitar atingir as quotas da API. A recomendação é definir o intervalo de conciliação como 1 hora.
Para aumentar o intervalo de conciliação, siga os passos em Configurar o intervalo de conciliação.
Divida os seus recursos em vários projetos
Esta abordagem distribui os recursos do Config Connector por diferentes projetos. Esta abordagem funciona bem quando adiciona novos recursos, mas pode ser
arriscado dividir recursos existentes porque tem de eliminar os recursos
existentes e recriá-los em projetos diferentes. A eliminação de recursos pode causar perda de dados com alguns tipos de recursos, como recursos SpannerInstance
ou BigtableTable
. Deve fazer uma cópia de segurança dos seus dados antes de os eliminar.
Para dividir os recursos do Config Connector existentes em diferentes projetos, conclua os seguintes passos:
- Decida que recursos do Config Connector planeia mover para projetos diferentes.
- Elimine os recursos do Config Connector.
Certifique-se de que a anotação
cnrm.cloud.google.com/deletion-policy
não está definida comoabandon
. - Atualize o campo
spec.projectRef
ou a anotaçãocnrm.cloud.google.com/project-id
na configuração YAML dos recursos do Config Connector que planeia mover para os novos projetos. - Conceda à conta de serviço de IAM usada pelo Config Connector as autorizações adequadas nos novos projetos.
- Aplique a configuração YAML atualizada para criar os recursos do Config Connector.
Mude para o modo com espaço de nomes
Pode associar diferentes contas de serviço de IAM pertencentes a diferentes Google Cloud projetos a diferentes espaços de nomes onde o Config Connector está instalado no modo de espaço de nomes, e dividir os seus recursos em diferentes espaços de nomes. Para tal, conclua os seguintes passos:
Configure o Config Connector para ser executado no modo de espaço de nomes. Crie novas contas de serviço de IAM a partir de projetos diferentes e associe-as a espaços de nomes diferentes seguindo as instruções para configurar o Config Connector para cada projeto.
Conceda às novas contas de serviço de IAM as autorizações adequadas para o projeto que contém os recursos.
Decida que recursos do Config Connector planeia mover para diferentes espaços de nomes.
Atualize a configuração YAML dos recursos do Config Connector e defina a anotação
cnrm.cloud.google.com/deletion-policy
abandon
.Aplique a configuração YAML atualizada para atualizar a política de eliminação dos recursos do Config Connector.
Atualize o campo
metadata.namespace
na configuração YAML dos recursos do Config Connector que planeia mover para os diferentes espaços de nomes.Aplique a configuração YAML atualizada para adquirir os recursos abandonados.
Faça a gestão de node pools em clusters do GKE
Pode ocorrerem erros quando cria um cluster aplicando um recurso ContainerCluster
no Config Connector e, em seguida, tenta atualizar o nodeConfig
ou outros campos relacionados com nós aplicando uma configuração ContainerCluster
atualizada. Estes erros devem-se a campos imutáveis, como nodeConfig
, nodeConfig.labels
e nodeConfig.taint
, o que é uma limitação técnica da Google Cloud API subjacente.
Se precisar de atualizar estes campos, pode usar o recurso
ContainerNodePool
para gerir conjuntos de nós onde estes campos não são imutáveis. Para gerir
pools de nós através do recurso ContainerNodePool
, tem de especificar uma
anotação cnrm.cloud.google.com/remove-default-node-pool: "true"
. Esta anotação remove o node pool predefinido que é criado durante a criação do cluster. Em seguida, para criar node pools separados, especifique os campos nodeConfig
em
ContainerNodePool
em vez de em ContainerCluster
. Consulte o
ContainerNodePool
exemplo de recurso
para referência.
Deve definir a anotação
cnrm.cloud.google.com/state-into-spec: absent
para os recursos ContainerCluster
e ContainerNodePool
. Esta anotação evita potenciais erros de conciliação durante a interação entre o controlador do Config Connector e as APIs subjacentes.
Os exemplos seguintes mostram uma configuração de ContainerCluster
e ContainerNodePool
com estas anotações definidas:
apiVersion: container.cnrm.cloud.google.com/v1beta1 kind: ContainerCluster metadata: name: containercluster-sample annotations: cnrm.cloud.google.com/remove-default-node-pool: "true" cnrm.cloud.google.com/state-into-spec: absent spec: description: A sample cluster. location: us-west1 initialNodeCount: 1
apiVersion: container.cnrm.cloud.google.com/v1beta1 kind: ContainerNodePool metadata: labels: label-one: "value-one" name: containernodepool-sample annotations: cnrm.cloud.google.com/state-into-spec: absent spec: location: us-west1 autoscaling: minNodeCount: 1 maxNodeCount: 3 nodeConfig: machineType: n1-standard-1 preemptible: false oauthScopes: - "https://www.googleapis.com/auth/logging.write" - "https://www.googleapis.com/auth/monitoring" clusterRef: name: containercluster-sample