Bonnes pratiques concernant Config Connector
Cette page décrit les bonnes pratiques à suivre lorsque vous utilisez Config Connector.
Gérer les limites de quota des API
Si vous rencontrez des erreurs indiquant que vous avez dépassé la limite de quota de l'API, il est possible que vous ayez créé trop de ressources Config Connector même Kind sous le même projet de quota. Lorsque vous créez de nombreuses ressources, elles 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'un quota d'augmentation, si vous êtes sûr que l'erreur de quota est due à des requêtes GET sur les ressources Google Cloud gérées par Config Connector ressources, 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 rapprochement
Vous pouvez augmenter le délai entre la réconciliation d'une ressource par Config Connector pour éviter d'atteindre les quotas d'API. Nous vous recommandons de définir l'intervalle de réconciliation sur une heure.
Pour augmenter l'intervalle de réconciliation, suivez la procédure décrite dans la section Configurer l'intervalle de réconciliation.
Répartir vos ressources en plusieurs projets
Cette approche répartit vos ressources Config Connector sur différents projets. Cette approche fonctionne bien lors de l'ajout de ressources, mais elle peut
risque de scinder les ressources existantes, car vous devez supprimer
ressources et les recréer sous différents projets. La suppression de ressources peut entraîner une perte de données avec certains types de ressources, telles que les ressources SpannerInstance
ou BigtableTable
. Nous vous recommandons de sauvegarder vos données avant de les supprimer.
Pour diviser les ressources Config Connector existantes en différents projets, procédez comme suit :
- Déterminer les ressources Config Connector que vous prévoyez de déplacer projets.
- Supprimez les ressources Config Connector.
Assurez-vous que l'annotation
cnrm.cloud.google.com/deletion-policy
n'est pas définie àabandon
. - Mettez à jour le champ
spec.projectRef
oucnrm.cloud.google.com/project-id
. dans la configuration YAML des ressources Config Connector que prévoient de passer aux 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 Créez les ressources Config Connector.
Passer en mode avec espace de noms
Vous pouvez lier différents comptes de service IAM appartenant à différents projets Google Cloud à différents espaces de noms, où Config Connector est installée en mode espace de noms, et diviser vos ressources en différents espaces de noms. Pour ce faire, procédez comme suit :
Configurez Config Connector pour qu'il s'exécute en mode d'espace de noms. Créez des comptes de service IAM à partir de différents projets, puis associez-les à différents espaces de noms en suivant les instructions de configuration de Config Connector pour chaque projet.
Accordez aux nouveaux comptes de service IAM les autorisations appropriées pour le projet contenant les ressources.
Déterminer les ressources Config Connector que vous prévoyez de déplacer et plusieurs espaces de noms.
Mettez à jour la configuration YAML des ressources Config Connector et définissez l'annotation
cnrm.cloud.google.com/deletion-policy
abandon
.Appliquez la configuration YAML mise à jour pour mettre à jour Config Connector ressources" règles de suppression.
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
Vous pouvez rencontrer des erreurs lorsque vous créez un cluster en appliquant une
ContainerCluster
dans Config Connector, puis essayez de mettre à jour
nodeConfig
ou d'autres champs liés aux nœuds en appliquant une méthode
Configuration de ContainerCluster
. Ces erreurs sont dues à des champs immuables tels que
comme nodeConfig
, nodeConfig.labels
et nodeConfig.taint
. Il s'agit d'une erreur
limite de l'infrastructure sous-jacente
API Google Cloud :
Si vous devez mettre à jour ces champs, vous pouvez utiliser la ressource ContainerNodePool
pour gérer les pools de nœuds dans lesquels 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"
. Ce
supprime le pool de nœuds par défaut créé lors de la mise en cluster
création. Ensuite, pour créer des pools de nœuds distincts, spécifiez des champs nodeConfig
dans ContainerNodePool
au lieu de 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
. Ce
permet d'éviter les erreurs de rapprochement lors de l'interaction
le contrôleur Config Connector et les API sous-jacentes.
Les exemples suivants illustrent les classes ContainerCluster
et ContainerNodePool
configuration avec les annotations suivantes 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