Bonnes pratiques pour Config Connector
Cette page décrit les bonnes pratiques à suivre lorsque vous utilisez Config Connector.
Gérer les limites de quota d'API
Si vous avez rencontré des erreurs indiquant que vous avez dépassé le plafond d'utilisation des API, vous avez peut-être créé trop de ressources Config Connector du même genre dans le même projet de quota. Lorsque vous créez de nombreuses ressources, celles-ci peuvent générer trop de requêtes API vers le même point de terminaison de l'API en raison de la stratégie de rapprochement utilisée par Config Connector.
Pour résoudre ce problème, vous pouvez demander une augmentation de quota. En plus d'une augmentation du quota, si vous avez confirmé que l'erreur de quota est due à des requêtes GET sur les ressources Google Cloud gérées par vos ressources Config Connector, vous pouvez envisager l'une des options suivantes :
- Augmenter l'intervalle de réconciliation pour vos ressources Config Connector
- Répartir vos ressources sur plusieurs projets
- Passer Config Connector en mode espace de noms
Augmenter l'intervalle de réconciliation
Vous pouvez augmenter le délai entre la réconciliation d'une ressource par Config Connector pour éviter d'atteindre les quotas d'API. Il est recommandé de définir l'intervalle de réconciliation sur une heure.
Pour augmenter l'intervalle de réconciliation, suivez les étapes décrites dans Configurer l'intervalle de réconciliation.
Segmenter vos ressources en plusieurs projets
Cette approche répartit vos ressources Config Connector sur différents projets. Cette approche fonctionne bien lorsque vous ajoutez des ressources, mais elle peut être risquée pour les ressources existantes, car vous devez les supprimer et les recréer dans d'autres projets. La suppression de ressources peut entraîner une perte de données pour certains types de ressources, comme les ressources SpannerInstance
ou BigtableTable
. Nous vous conseillons de sauvegarder vos données avant de les supprimer.
Pour répartir les ressources Config Connector existantes dans différents projets, procédez comme suit :
- Décidez quelles ressources Config Connector vous prévoyez de déplacer vers d'autres projets.
- Supprimez les ressources Config Connector.
Assurez-vous que l'annotation
cnrm.cloud.google.com/deletion-policy
n'est pas définie surabandon
. - Mettez à jour le champ
spec.projectRef
ou l'annotationcnrm.cloud.google.com/project-id
dans la configuration YAML des ressources Config Connector que vous prévoyez de déplacer vers les nouveaux projets. - Accordez au compte de service IAM utilisé par Config Connector les autorisations appropriées sur les nouveaux projets.
- Appliquez la configuration YAML mise à jour pour créer les ressources Config Connector.
Passer au mode espace de noms
Vous pouvez lier différents comptes de service IAM appartenant à différents projetsGoogle Cloud à différents espaces de noms où Config Connector est installé en mode espace de noms, et répartir vos ressources dans différents espaces de noms. Pour ce faire, procédez comme suit :
Configurez Config Connector pour qu'il s'exécute en mode espace de noms. Créez des comptes de service IAM à partir de différents projets et liez-les à différents espaces de noms en suivant les instructions pour configurer Config Connector pour chaque projet.
Accordez aux nouveaux comptes de service IAM les autorisations appropriées pour le projet contenant les ressources.
Décidez quelles ressources Config Connector vous prévoyez de déplacer vers d'autres espaces de noms.
Mettez à jour la configuration YAML des ressources Config Connector et définissez l'annotation
cnrm.cloud.google.com/deletion-policy
surabandon
.Appliquez la configuration YAML mise à jour pour modifier la règle de suppression des ressources Config Connector.
Mettez à jour le champ
metadata.namespace
dans la configuration YAML des ressources Config Connector que vous prévoyez de déplacer vers les différents espaces de noms.Appliquez la configuration YAML mise à jour pour acquérir les ressources abandonnées.
Gérer les pools de nœuds dans les clusters GKE
Des erreurs peuvent se produire lorsque vous créez un cluster en appliquant une ressource ContainerCluster
dans Config Connector, puis que vous tentez de mettre à jour les champs nodeConfig
ou d'autres champs liés aux nœuds en appliquant une configuration ContainerCluster
mise à jour. Ces erreurs sont dues à des champs immuables tels que nodeConfig
, nodeConfig.labels
et nodeConfig.taint
, ce qui constitue une limite technique de l'API Google Cloud sous-jacente.
Si vous devez mettre à jour ces champs, vous pouvez utiliser la ressource ContainerNodePool
pour gérer les pools de nœuds où ces champs ne sont pas immuables. Pour gérer les pools de nœuds à l'aide de la ressource ContainerNodePool
, vous devez spécifier une annotation cnrm.cloud.google.com/remove-default-node-pool: "true"
. Cette annotation supprime le pool de nœuds par défaut créé lors de la création du cluster. Ensuite, pour créer des pools de nœuds distincts, spécifiez les champs nodeConfig
dans ContainerNodePool
plutôt que dans ContainerCluster
. Pour référence, consultez l'exemple de ressource ContainerNodePool
.
Vous devez définir l'annotation cnrm.cloud.google.com/state-into-spec: absent
pour les ressources ContainerCluster
et ContainerNodePool
. Cette annotation permet d'éviter d'éventuelles erreurs de réconciliation lors de l'interaction entre le contrôleur Config Connector et les API sous-jacentes.
Les exemples suivants montrent une configuration ContainerCluster
et une configuration ContainerNodePool
avec ces annotations définies :
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