【发布时间】:2019-07-19 13:41:01
【问题描述】:
如何刷新 kubernetes 集群上的 CoreDNS 缓存?
我知道可以通过删除 CoreDNS pod 来完成,但是有没有适当的方法来刷新缓存?
【问题讨论】:
标签: kubernetes dns kube-dns coredns core-file
如何刷新 kubernetes 集群上的 CoreDNS 缓存?
我知道可以通过删除 CoreDNS pod 来完成,但是有没有适当的方法来刷新缓存?
【问题讨论】:
标签: kubernetes dns kube-dns coredns core-file
@coollinuxoid 的回答不适合生产环境,因为命令会同时终止所有的 Pod,所以会有暂时的停机时间。相反,您应该使用 kubernetes 部署的滚动更新机制,通过设置环境变量来避免使用命令的停机时间:
kubectl -n kube-system set env deployment.apps/coredns FOO="BAR"
【讨论】:
kubectl -n kube-system set env deployment.apps/coredns FOO- 再次摆脱环境变量...
kubectl rollout restart deployment coredns -n kube-system
正如您所说,最好的方法是重新启动 coredns pod。这可以通过将 coredns 部署缩放到“0”然后将其缩放回所需的数量来轻松完成。 就像下面的示例命令一样:
kubectl scale deployment.apps/coredns -n kube-system --replicas=0
kubectl scale deployment.apps/coredns -n kube-system --replicas=2
【讨论】:
在每个 rabbitmq pod 中执行此操作以删除 mnesia,然后重新启动 pods
rm -rf /bitnami/rabbitmq/mnesia
【讨论】: