Práticas recomendadas do Config Connector
Esta página explica as práticas recomendadas que você deve considerar ao usar Config Connector.
Gerenciar limites de cota da API
Se ocorrerem erros que indicam que você excedeu o limite de cota da API, pode ser que você tenha criado muitos recursos do Config Connector do mesmo tipo no mesmo projeto de cota. Quando você cria muitos recursos, eles podem gerar muitas APIs solicitações para o mesmo endpoint de API devido à estratégia de reconciliação que o Config Connector usa.
Uma forma de resolver esse problema é solicitar um aumento de cota. Além de uma cota aumentar, se você confirmou que o erro de cota é causado por solicitações GET em relação aos recursos do Google Cloud gerenciados pelo Config Connector recursos, considere uma das seguintes opções:
- Aumente o intervalo de reconciliação dos seus recursos do Config Connector.
- Dividir seus recursos em vários projetos
- Alternar o Config Connector para o modo com namespace
Aumentar o intervalo de reconciliação
É possível aumentar o tempo entre a reconciliação de um recurso pelo Config Connector para evitar o atingimento de cotas da API. A recomendação é definir o valor da reconciliação para 1 hora.
Para aumentar o intervalo de reconciliação, siga as etapas em Como configurar o intervalo de reconciliação.
Dividir recursos em vários projetos
Essa abordagem distribui os recursos do Config Connector em diferentes
projetos. Essa abordagem funciona bem ao adicionar novos recursos, mas pode ser
arriscar dividir os recursos porque é preciso excluir os atuais
e recriá-los em projetos diferentes. A exclusão de recursos pode
causar a perda de dados com alguns tipos de recursos, como SpannerInstance
ou
BigtableTable
. Faça backup dos seus dados antes de excluí-los.
Para dividir os recursos do Config Connector em diferentes projetos, siga estas etapas:
- Decida quais recursos do Config Connector você planeja mover para diferentes projetos.
- Exclua os recursos do Config Connector.
Verifique se a anotação
cnrm.cloud.google.com/deletion-policy
não está definida comoabandon
. - Atualize o campo
spec.projectRef
oucnrm.cloud.google.com/project-id
na configuração YAML dos recursos do Config Connector que você planeja migrar para os novos projetos. - Conceda à conta de serviço do IAM usada pelo Config Connector adequadamente nos novos projetos.
- Aplique a configuração YAML atualizada para criar os recursos do Config Connector.
Alternar para o modo com namespace
É possível vincular diferentes contas de serviço do IAM Projetos do Google Cloud para diferentes namespaces em que o Config Connector está instalado em modo com namespace, e dividir os recursos em namespaces diferentes. Para isso, siga estas etapas:
Configure o Config Connector para ser executado no modo com namespace. Criar novas contas de serviço do IAM de projetos diferentes vinculá-los a namespaces diferentes seguindo o instruções para configurar o Config Connector para cada projeto.
Conceda às novas contas de serviço do IAM as permissões adequadas para o projeto que contém os recursos.
Decida quais recursos do Config Connector você planeja mover para diferentes namespaces.
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 do YAML atualizada para atualizar o Config Connector recursos e políticas de exclusão de dados.
Atualize o campo
metadata.namespace
na configuração YAML da Recursos do Config Connector que você planeja mover para os namespaces diferentes.Aplique a configuração YAML atualizada para adquirir os recursos abandonados.
Gerenciar pools de nós em clusters do GKE
Pode haver erros ao criar um cluster aplicando uma
ContainerCluster
no Config Connector e tenta atualizar o
nodeConfig
ou outros campos relacionados ao nó aplicando uma
ContainerCluster
. Esses erros ocorrem devido a campos imutáveis, como
como nodeConfig
, nodeConfig.labels
e nodeConfig.taint
, que é um
limitação dos recursos
API Google Cloud.
Se for necessário atualizar esses campos, você poderá usar
ContainerNodePool
recurso para gerenciar pools de nós em que esses campos não são imutáveis. Para gerenciar
pools de nós com o recurso ContainerNodePool
, é preciso especificar um
cnrm.cloud.google.com/remove-default-node-pool: "true"
. Isso
remove o pool de nós padrão criado durante o cluster
criação. Em seguida, para criar pools de nós separados, especifique campos nodeConfig
em
ContainerNodePool
em vez de ContainerCluster
. Consulte a
Exemplo de recurso ContainerNodePool
como referência.
Defina a anotação
cnrm.cloud.google.com/state-into-spec: absent
para os recursos ContainerCluster
e ContainerNodePool
. Isso
evita possíveis erros de reconciliação durante a interação entre
o controlador Config Connector e as APIs de base.
Os exemplos a seguir mostram uma ContainerCluster
e uma ContainerNodePool
.
com esse conjunto de anotações:
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