Nesta página, mostramos como resolver problemas relacionados a provedores de DNS em clusters do Google Kubernetes Engine (GKE).
Se precisar de mais ajuda, entre em contato com o Cloud Customer Care.Eventos do Cloud DNS para GKE
Nesta seção, detalhamos problemas comuns do Cloud DNS no GKE.
Cloud DNS desativado
O evento a seguir ocorre quando a API Cloud DNS está desativada:
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.
Esse erro ocorre porque a API Cloud DNS não está ativada por padrão. Ative a API Cloud DNS manualmente.
Para resolver o problema, ative a API Cloud DNS.
Falha ao enviar solicitações para o Cloud DNS: limite de taxa de API excedido.
O evento a seguir ocorre quando um projeto excede uma cota ou limite do 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.
Para resolver esse problema, consulte as cotas do Cloud DNS e as cotas e limites do Compute Engine. É possível aumentar a cota usando o console do Google Cloud.
Falha ao enviar para solicitações para o Cloud DNS devido a um erro anterior
O evento a seguir ocorre quando os erros causam falhas em cascata:
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.
Para resolver esse problema, verifique os eventos do cluster para encontrar a origem do erro original e siga as instruções para resolver esse problema raiz.
No exemplo anterior, o erro InsufficientQuota
da zona gerenciada
acionou falhas em cascata. O segundo erro para FailedPrecondition
indica que ocorreu um erro anterior, que era o problema inicial de cota insuficiente. Para resolver esse problema de exemplo, siga as orientações relacionadas
ao erro de cota do Cloud DNS.
Falha ao vincular a política de resposta
O evento a seguir ocorre quando uma política de resposta está vinculada à rede do cluster e o Cloud DNS para GKE tenta vincular uma política de resposta à rede:
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.
Para resolver o problema, siga estas etapas:
Receba a política de resposta vinculada à rede:
gcloud dns response-policies list --filter='networks.networkUrl: NETWORK_URL'
Substitua
NETWORK_URL
pelo URL da rede do erro, comohttps://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME
.Se a saída estiver vazia, a política de resposta pode não estar no mesmo projeto. Vá para a próxima etapa para pesquisar a política de resposta.
Se a saída for semelhante a esta, pule para a etapa 4 para excluir a política de resposta.
[ { "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" } ]
Receba uma lista de projetos com a permissão
dns.networks.bindDNSResponsePolicy
usando o IAM Policy Analyzer.Verifique se cada projeto tem a política de resposta vinculada à rede:
gcloud dns response-policies list --filter='networks.networkUrl:NETWORK_URL' \ --project=PROJECT_NAME
Configuração inválida especificada em kube-dns
O evento a seguir ocorre quando você aplica um kube-dns ConfigMap inválido para o Cloud DNS para o 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
Para resolver esse problema, revise os detalhes no erro sobre a parte inválida do ConfigMap. No exemplo anterior, 8.8.8.256
não é um endereço IP
válido.
A seguir
Veja informações gerais sobre como diagnosticar problemas de DNS do Kubernetes em Como depurar a resolução de DNS.
Para ajudar a diagnosticar problemas do Cloud DNS, ative a geração de registros do Cloud DNS e revise o documento de solução de problemas do Cloud DNS.
- Se precisar de mais ajuda, entre em contato com o Cloud Customer Care.