在 Kubernetes 集群上刷新 CoreDNS 缓存

Fau*_*zan 7 dns core-file kubernetes kube-dns coredns

如何在 kubernetes 集群上刷新 CoreDNS 缓存?

我知道可以通过删除 CoreDNS pod 来完成,但是是否有适当的方法来刷新缓存?

Ton*_*Lee 12

@coollinuxoid 的回答不适合生产环境,它会有暂时的停机时间,因为命令会同时终止所有的 pod。相反,您应该通过设置环境变量来使用 kubernetes 部署的滚动更新机制,以避免使用以下命令停机:

kubectl -n kube-system set env deployment.apps/coredns FOO="BAR"
Run Code Online (Sandbox Code Playgroud)

  • 我认为您可以完全避免设置环境变量:`kubectl rollout restart deployment coredns -n kube-system` (14认同)

coo*_*oid 8

正如您所说,最好的方法是重新启动 coredns pod。这可以轻松完成,只需将 coredns 部署缩放到“0”,然后再将其缩放回所需的数量。就像在下面的示例命令中一样:

kubectl scale deployment.apps/coredns -n kube-system --replicas=0
kubectl scale deployment.apps/coredns -n kube-system --replicas=2
Run Code Online (Sandbox Code Playgroud)