我们使用本地持久存储作为SOLR Pod的存储后端。 Pod被冗余调度到多个kubernetes节点。如果其中一个节点发生故障,则其他节点上总是有足够的实例。
如果要对某个节点进行维护,我们如何才能排干这些节点(而无需将SOLR Pod迁移到其他节点)?对我们而言,最重要的是kube-proxy不再向有问题的节点上的Pod发送新请求,以便一段时间后我们可以进行维护而不会中断正在运行的请求的服务。
我们尝试了警戒线,但是警戒线只会确保没有新的Pod调度到某个节点。 Drain似乎不适用于具有本地持久卷的Pod。
答案 0 :(得分:1)
您可以签出pod的反亲和力。
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
这些构造使您可以在满足某些条件时击退或吸引豆荚。
在您的情况下,“ pod”反亲和性'requiredDuringSchedulingIgnoredDuringExecution'也许是最好的选择。我还没有亲自使用过它,我希望它可以将您引向正确的方向。