From 33ccd559eb17e8698dc7649d4b89e40f39c05a9e Mon Sep 17 00:00:00 2001 From: yuli Date: Thu, 5 May 2022 20:35:46 +0800 Subject: [PATCH] [zh]Update content/zh/docs/tasks/administer-cluster/dns-debugging-resolution.md [zh]Update content/zh/docs/tasks/administer-cluster/dns-debugging-resolution.md [zh]Update content/zh/docs/tasks/administer-cluster/dns-debugging-resolution.md --- .../dns-debugging-resolution.md | 82 ++++++++++++++++--- 1 file changed, 72 insertions(+), 10 deletions(-) diff --git a/content/zh/docs/tasks/administer-cluster/dns-debugging-resolution.md b/content/zh/docs/tasks/administer-cluster/dns-debugging-resolution.md index 5aa692443a..2a777134e1 100644 --- a/content/zh/docs/tasks/administer-cluster/dns-debugging-resolution.md +++ b/content/zh/docs/tasks/administer-cluster/dns-debugging-resolution.md @@ -262,11 +262,11 @@ The service name is `kube-dns` for both CoreDNS and kube-dns deployments. 如果你已经创建了 DNS 服务,或者该服务应该是默认自动创建的但是它并没有出现, -请阅读[调试服务](/zh/docs/tasks/debug-application-cluster/debug-service/) +请阅读[调试服务](/zh/docs/tasks/debug/debug-application/debug-service/) 来获取更多信息。 如果你没看到对应的端点,请阅读 -[调试服务](/zh/docs/tasks/debug-application-cluster/debug-service/)的端点部分。 +[调试服务](/zh/docs/tasks/debug/debug-application/debug-service/)的端点部分。 若需要了解更多的 Kubernetes DNS 例子,请在 Kubernetes GitHub 仓库里查看 [cluster-dns 示例](https://github.com/kubernetes/examples/tree/master/staging/cluster-dns)。 @@ -374,6 +374,74 @@ linux/amd64, go1.10.3, 2e322f6 2018/09/07 15:29:04 [INFO] Reloading complete 172.17.0.18:41675 - [07/Sep/2018:15:29:11 +0000] 59925 "A IN kubernetes.default.svc.cluster.local. udp 54 false 512" NOERROR qr,aa,rd,ra 106 0.000066649s +``` + +### CoreDNS 是否有足够的权限? + +CoreDNS 必须能够列出 {{< glossary_tooltip text="service" term_id="service" >}} 和 +{{< glossary_tooltip text="endpoint" term_id="endpoint" >}} 相关的资源来正确解析服务名称。 + +示例错误消息: +``` +2022-03-18T07:12:15.699431183Z [INFO] 10.96.144.227:52299 - 3686 "A IN serverproxy.contoso.net.cluster.local. udp 52 false 512" SERVFAIL qr,aa,rd 145 0.000091221s +``` + + +首先,获取当前的 ClusterRole `system:coredns`: + +```shell +kubectl describe clusterrole system:coredns -n kube-system +``` + + +预期输出: +``` +PolicyRule: + Resources Non-Resource URLs Resource Names Verbs + --------- ----------------- -------------- ----- + nodes [] [] [get] + endpoints [] [] [list watch] + namespaces [] [] [list watch] + pods [] [] [list watch] + services [] [] [list watch] + endpointslices.discovery.k8s.io [] [] [list watch] +``` + + +如果缺少任何权限,请编辑 ClusterRole 来添加它们: + +```shell +kubectl edit clusterrole system:coredns -n kube-system +``` + + +EndpointSlices 权限的插入示例: +``` +... +- apiGroups: + - discovery.k8s.io + resources: + - endpointslices + verbs: + - list + - watch +... ``` ### 你的服务在正确的命名空间中吗? @@ -403,9 +468,6 @@ kubectl exec -i -t dnsutils -- nslookup 指定命名空间的查询: ```shell