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

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:

  1. Decida que recursos do Config Connector planeia mover para projetos diferentes.
  2. Elimine os recursos do Config Connector. Certifique-se de que a anotação cnrm.cloud.google.com/deletion-policy não está definida como abandon.
  3. Atualize o campo spec.projectRef ou a anotação cnrm.cloud.google.com/project-id na configuração YAML dos recursos do Config Connector que planeia mover para os novos projetos.
  4. Conceda à conta de serviço de IAM usada pelo Config Connector as autorizações adequadas nos novos projetos.
  5. 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:

  1. 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.

  2. Conceda às novas contas de serviço de IAM as autorizações adequadas para o projeto que contém os recursos.

  3. Decida que recursos do Config Connector planeia mover para diferentes espaços de nomes.

  4. Atualize a configuração YAML dos recursos do Config Connector e defina a anotação cnrm.cloud.google.com/deletion-policyabandon.

  5. Aplique a configuração YAML atualizada para atualizar a política de eliminação dos recursos do Config Connector.

  6. Abandone os recursos do Config Connector.

  7. Atualize o campo metadata.namespace na configuração YAML dos recursos do Config Connector que planeia mover para os diferentes espaços de nomes.

  8. 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