GKE DNS解析错误

GKE DNS解析错误,dns,kubernetes,google-kubernetes-engine,Dns,Kubernetes,Google Kubernetes Engine,我们在GKE版本1.9上使用Kubernetes cronjobs来运行几个定期任务。从POD中,我们需要对网络外部的外部API进行多次调用。通常,但并非所有时候,这些调用都会因为DNS解析超时而失败 我目前的假设是,我们试图联系的服务的上游DNS服务器限制了我们多次重复DNS请求的请求速率,因为这些记录的TTL太低,或者仅仅因为缓存大小太小,我们从dnsmasq缓存中删除了这些条目 我尝试编辑kube dns部署以更改传递给dnsmasq容器的缓存大小和ttl参数,但更改被还原,因为它是GKE

我们在GKE版本1.9上使用Kubernetes cronjobs来运行几个定期任务。从POD中,我们需要对网络外部的外部API进行多次调用。通常,但并非所有时候,这些调用都会因为DNS解析超时而失败

我目前的假设是,我们试图联系的服务的上游DNS服务器限制了我们多次重复DNS请求的请求速率,因为这些记录的TTL太低,或者仅仅因为缓存大小太小,我们从dnsmasq缓存中删除了这些条目

我尝试编辑kube dns部署以更改传递给dnsmasq容器的缓存大小和ttl参数,但更改被还原,因为它是GKE管理的部署。
是否有办法保持这些更改,以便GKE不会覆盖它们?处理GKE或Kubernetes引擎上的dns问题还有其他方法吗?

不确定是否涵盖了所有旋钮,但如果您更新了部署使用的ConfigMap,您应该能够在GKE上重新配置KubeDNS。它将在部署新实例时使用ConfigMap。然后使用新配置重新部署现有的POD。

我建议您使用POD,如KubeDNS,它从Kubernetes API检索资源、服务、入口等的列表,以确定所需的DNS记录列表。

由于kube DNS由主节点处理,因此无法保留自定义更改。主节点将继续恢复更改。我建议检查kube dns吊舱,看看它们是否重新启动,也可以通过运行kubectl get events-namespace=kube系统来检查事件,看看kube dns吊舱是否有任何问题。