一个 openshift-origin 工作节点不会解析集群.local 记录,从而导致图像回撤



我们已经设置了一个拥有100多个节点的okd 3.11集群。一切工作正常,但随后工作节点停止解析注册服务内部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配置文件中,/etc/dnsmasq.d/origin-upstream-dns.conf可以作为解决方案,但无法找到导致此问题的原因。

我尝试在dnsmasq服务的ExecStart中添加-q,它显示dnsmasq不会查询在127.0.0.1:53本地运行的openshift dns。

Dnsmasq config/resolv.conf在节点上是有序的。

我已经尝试重新启动dnsmasq/NetworkManager/Docker,我已经尝试重新生成ovs/sdn pod,但仍然没有帮助。

找到了一些dnsmasq可以这样做的文档证据。

一些RedHat文章建议长时间运行的dnsmasq服务可能会出现错误并停止解析名称。类似的案例在openshift环境中也有报道。

下面的链接建议重新启动服务可以解决一段时间的问题,然后问题可能会重新出现。如前所述,在我的情况下,服务重启没有帮助,但IT中最古老的补救措施起作用了(重新启动节点解决了问题)。

参考:

https://access.redhat.com/solutions/3393141

https://bugzilla.redhat.com/show_bug.cgi?id=1560489

相关内容

  • 没有找到相关文章