我们已经建立了一个 okd 3.11 集群,有 100 多个节点。一切正常,但随后工作节点停止解析注册表服务内部 url。这会导致将新 pod 调度到该节点失败并出现 ImagePullBackoff 错误。
Failed to pull image "docker-registry.default.svc:5000/app-name/app-name:latest": rpc error: code = Unknown desc = Get https://docker-registry.default.svc:5000/v1/_ping: dial tcp: lookup docker-registry.default.svc on 10.*.*.71:53: server misbehaving
我们尝试在工作节点上运行 nslookup,结果如下
虽然这不起作用(虽然它适用于其他节点)
[root@worker22 ~]# nslookup docker-registry.default.svc.cluster.local
Server: 10.*.*.71
Address: 10.*.*.71#53
** server can't find docker-registry.default.svc.cluster.local: SERVFAIL
这工作得很好。
[root@worker22 ~]# nslookup docker-registry.default.svc.cluster.local 127.0.0.1
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: docker-registry.default.svc.cluster.local
Address: 172.*.*.212
添加server=/cluster.local/172.30.0.1到 dnsmasq conf 文件/etc/dnsmasq.d/origin-upstream-dns.conf可以解决问题,但找不到导致此问题的原因。
我尝试将 -q 添加到 dnsmasq 服务ExecStart,它表明 dnsmasq 不会查询在本地运行的 openshift dns 127.0.0.1:53。
Dnsmasq config/resolv.conf 在节点上是有序的。
我尝试重新启动 dnsmasq/NetworkManager/Docker,我尝试重新生成 ovs/sdn pod 但仍然没有帮助。