如何在GKE中清除/刷新kube-dns缓存?
在Google Kubernetes Engine(GKE)中清除kube-dns缓存的方法
方法一:重启kube-dns Deployment(简单直接)
kube-dns的缓存会随pod重启完全清空,执行以下命令触发Deployment滚动重启:
kubectl rollout restart deployment/kube-dns -n kube-system
该命令会逐步重建kube-dns的pod,依托滚动更新机制不会中断服务。
方法二:在运行中的pod内清空dnsmasq缓存(无需重启)
GKE的kube-dns pod包含dnsmasq容器,可通过发送HUP信号让其清空缓存:
- 先获取kube-system命名空间下的kube-dns pod名称:
kubectl get pods -n kube-system | grep kube-dns
- 对目标pod的dnsmasq容器执行信号发送命令,替换
<kube-dns-pod-name>为实际pod名称:
kubectl exec -n kube-system <kube-dns-pod-name> -c dnsmasq -- kill -HUP 1
此操作会让dnsmasq立即清空缓存并重新加载配置,无需重启pod。
内容的提问来源于stack exchange,提问作者user2570135
相关产品推荐
相关产品推荐

