이 페이지에서는 Google Kubernetes Engine(GKE) 클러스터에서 DNS 제공업체와 관련된 문제를 해결하는 방법을 보여줍니다.
추가 지원이 필요하면 Cloud Customer Care에 연락하세요.GKE용 Cloud DNS 이벤트
이 섹션에서는 GKE의 일반적인 Cloud DNS 문제를 자세히 설명합니다.
Cloud DNS 중지됨
Cloud DNS API가 중지되면 다음과 같은 이벤트가 발생합니다.
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.
이 오류는 Cloud DNS API가 기본적으로 사용 설정되어 있지 않기 때문에 발생합니다. Cloud DNS API를 수동으로 사용 설정해야 합니다.
이 문제를 해결하려면 Cloud DNS API를 사용 설정합니다.
Cloud DNS에 요청을 전송할 수 없음: API 비율 한도 초과
다음 이벤트는 프로젝트가 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.
이 문제를 해결하려면 Cloud DNS 할당량과 Compute Engine 할당량 및 한도를 검토하세요. Google Cloud 콘솔을 사용하여 할당량을 늘릴 수 있습니다.
이전 오류로 인해 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.
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.
이 문제를 해결하려면 클러스터 이벤트를 확인하여 원래 오류의 원인을 찾은 후 안내에 따라 해당 루트 문제를 해결하세요.
앞의 예시에서 관리형 영역에 대한 InsufficientQuota
오류는 연쇄 장애를 트리거했습니다. FailedPrecondition
의 두 번째 오류는 초기 할당량 부족 문제인 이전 오류가 발생했음을 나타냅니다. 이 예시 문제를 해결하려면 Cloud DNS 할당량 오류에 대한 안내를 따르세요.
응답 정책을 바인딩할 수 없음
응답 정책이 클러스터의 네트워크에 바인딩되고 GKE용 Cloud DNS가 응답 정책을 네트워크에 바인딩하려고 할 때 다음과 같은 이벤트가 발생합니다.
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.
문제를 해결하려면 다음 단계를 수행합니다.
네트워크에 바인딩된 응답 정책을 가져옵니다.
gcloud dns response-policies list --filter='networks.networkUrl: NETWORK_URL'
NETWORK_URL
을 오류의 네트워크 URL로 바꿉니다. 예:https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME
출력이 비어 있으면 응답 정책이 동일한 프로젝트에 없을 수 있습니다. 다음 단계를 진행하여 응답 정책을 검색합니다.
출력이 다음과 비슷한 경우 4단계로 건너뛰고 응답 정책을 삭제합니다.
[ { "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" } ]
IAM 정책 분석 도구를 사용하여
dns.networks.bindDNSResponsePolicy
권한이 있는 프로젝트 목록을 가져옵니다.각 프로젝트에 네트워크에 바인딩된 응답 정책이 있는지 확인합니다.
gcloud dns response-policies list --filter='networks.networkUrl:NETWORK_URL' \ --project=PROJECT_NAME
kube-dns에 잘못된 구성이 지정됨
GKE용 Cloud DNS에 잘못된 커스텀 kube-dns ConfigMap을 적용하면 다음과 같은 이벤트가 발생합니다.
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
이 문제를 해결하려면 오류의 세부정보를 검토하여 ConfigMap의 잘못된 부분을 확인합니다. 앞의 예시에서 8.8.8.256
은 유효한 IP 주소가 아닙니다.
다음 단계
Kubernetes DNS 문제 진단에 대한 일반적인 정보는 DNS 변환 디버깅을 참조하세요.
Cloud DNS 문제를 진단하려면 Cloud DNS Logging을 사용 설정하고 Cloud DNS 문제 해결 문서를 살펴보세요.
- 추가 지원이 필요하면 Cloud Customer Care에 연락합니다.