Cette page explique comment résoudre les problèmes liés aux fournisseurs DNS dans les clusters Google Kubernetes Engine (GKE).
Si vous avez besoin d'une aide supplémentaire, contactez Cloud Customer Care.Événements Cloud DNS pour GKE
Cette section décrit les problèmes courants liés à Cloud DNS dans GKE.
API Cloud DNS désactivée
L'événement suivant se produit lorsque l'API Cloud DNS est désactivée :
Warning FailedPrecondition service/default-http-backend
Failed to send requests to Cloud DNS: Cloud DNS API Disabled. Please enable the Cloud DNS API in your project PROJECT_NAME: Cloud DNS API has not been used in project PROJECT_NUMBER before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/dns.googleapis.com/overview?project=PROJECT_NUMBER then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.
Cette erreur se produit, car l'API Cloud DNS n'est pas activée par défaut. Vous devez l'activer manuellement.
Pour résoudre le problème, activez l'API Cloud DNS.
Échec de l'envoi de requêtes à Cloud DNS : limite de débit des API dépassée
L'événement suivant se produit lorsqu'un projet a dépassé un quota ou une limite Cloud DNS :
kube-system 27s Warning InsufficientQuota
managedzone/gke-cluster-quota-ee1bd2ca-dns Failed to send requests to Cloud DNS: API rate limit exceeded. Contact Google Cloud support team to request a quota increase for your project PROJECT_NAME: Quota exceeded for quota metric 'Write requests' and limit 'Write limit for a minute for a region' of service 'dns.googleapis.com' for consumer 'project_number:PROJECT_NUMBER.
Pour résoudre ce problème, vérifiez les quotas Cloud DNS et les quotas et limites de Compute Engine. Vous pouvez augmenter votre quota à l'aide de la console Google Cloud.
Échec de l'envoi de requêtes à Cloud DNS en raison d'une erreur précédente
L'événement suivant se produit lorsque des erreurs entraînent des défaillances en cascade :
kube-system 27s Warning InsufficientQuota
managedzone/gke-cluster-quota-ee1bd2ca-dns Failed to send requests to Cloud DNS: API rate limit exceeded. Contact Google Cloud support team to request a quota increase for your project PROJECT_NAME: Quota exceeded for quota metric 'Write requests' and limit 'Write limit for a minute for a region' of service 'dns.googleapis.com' for consumer 'project_number:PROJECT_NUMBER.
kube-system 27s Warning FailedPrecondition service/default-http-backend Failed to send requests to Cloud DNS due to a previous error. Please check the cluster events.
Pour résoudre ce problème, recherchez la source de l'erreur d'origine dans les événements de cluster et suivez les instructions correspondantes.
Dans l'exemple précédent, l'erreur InsufficientQuota
pour la zone gérée a déclenché des défaillances en cascade. La deuxième erreur pour FailedPrecondition
indique qu'une erreur précédente s'est produite (problème de quota initial insuffisant). Pour résoudre cet exemple de problème, suivez les instructions concernant l'erreur de quota Cloud DNS.
Échec de la liaison de la stratégie de réponse
L'événement suivant se produit lorsqu'une stratégie de réponse est liée au réseau du cluster et que Cloud DNS pour GKE tente de lier une stratégie de réponse au réseau :
kube-system 9s Warning FailedPrecondition responsepolicy/gke-2949673445-rp
Failed to bind response policy gke-2949673445-rp to test. Please verify that another Response Policy is not already associated with the network: Network 'https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/networks/NETWORK_NAME' cannot be bound to this response policy because it is already bound to another response policy.
kube-system 9s Warning FailedPrecondition service/kube-dns
Failed to send requests to Cloud DNS due to a previous error. Please check the cluster events.
Pour résoudre ce problème, procédez comme suit :
Obtenez la stratégie de réponse liée au réseau :
gcloud dns response-policies list --filter='networks.networkUrl: NETWORK_URL'
Remplacez
NETWORK_URL
par l'URL du réseau obtenue à partir de l'erreur (par exemple,https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME
).Si la sortie est vide, la règle de réponse ne se trouve peut-être pas dans le même projet. Passez à l'étape suivante pour rechercher la stratégie de réponse.
Si le résultat ressemble à ce qui suit, passez à l'étape 4 pour supprimer la stratégie de réponse.
[ { "description": "Response Policy for GKE cluster \"CLUSTER_NAME\" with cluster suffix \"cluster.local.\" in project \"PROJECT_ID\" with scope \"CLUSTER_SCOPE\".", ... "kind": "dns#responsePolicy", "responsePolicyName": "gke-CLUSTER_NAME-POLICY_ID-rp" } ]
Obtenez une liste des projets avec l'autorisation
dns.networks.bindDNSResponsePolicy
à l'aide d'IAM Policy Analyzer.Vérifiez chaque projet pour voir s'il contient la stratégie de réponse liée au réseau :
gcloud dns response-policies list --filter='networks.networkUrl:NETWORK_URL' \ --project=PROJECT_NAME
Configuration non valide spécifiée dans kube-dns
L'événement suivant se produit lorsque vous appliquez un ConfigMap kube-dns personnalisé qui n'est pas valide pour Cloud DNS pour GKE :
kube-system 49s Warning FailedValidation configmap/kube-dns
Invalid configuration specified in kube-dns: error parsing stubDomains for ConfigMap kube-dns: dnsServer [8.8.8.256] validation: IP address "8.8.8.256" invalid
Pour résoudre ce problème, examinez les détails de l'erreur concernant la partie non valide du ConfigMap. Dans l'exemple précédent, 8.8.8.256
n'est pas une adresse IP valide.
Étapes suivantes
Pour obtenir des informations générales sur l'analyse des problèmes de DNS de Kubernetes, consultez la section Déboguer la résolution DNS.
Pour diagnostiquer les problèmes liés à Cloud DNS, vous pouvez activer la journalisation Cloud DNS et consulter la documentation concernant le dépannage de Cloud DNS.
- Si vous avez besoin d'une aide supplémentaire, contactez Cloud Customer Care.