如何在 kubernetes 中不停机地重启 coredns pod

问题描述 投票:0回答:2

我有一个 coredns pod 在 kube-system 命名空间中运行。我需要在不停机的情况下重新启动 coredns pod。我知道我们可以使用以下命令删除 coredns pod,新的 coredns pod 将自动启动。

kubectl delete pods -n kube-system -l k8s-app=kube-dns

但这正在造成停机时间。所以我希望在不停机的情况下重新启动这个 coredns pod。

如果有人在这方面帮助我,那将会非常有帮助。预先感谢!

kubernetes ttl coredns
2个回答
1
投票

正常情况下,该命令的结果

kubectl get deployment coredns --namespace kube-system --output jsonpath='{.spec.strategy.rollingUpdate.maxUnavailable}'
将返回1;意味着部署 2 个 pod(典型的 coredns 设置),pod 将一次替换 1 个,留下另一个服务请求。在这种情况下,您可以运行
kubectl rollout restart deployment coredns --namespace kube-system
重新启动,无需停机,无需显式删除或增加 coredns pod 数量。


0
投票

为什么需要重启coredns?如果您需要重新加载 coredns configmap,最佳实践是在 configmap 更改时重新加载 coredns。

coredns 将在 30 到 45 秒后自行重新加载,因为您在 configMap 中指定了“重新加载”配置。 https://coredns.io/plugins/reload/

https://stackoverflow.com/a/75757002/6059840

© www.soinside.com 2019 - 2024. All rights reserved.