我们使用本地持久存储作为SOLR pod的存储后端。pod被冗余地调度到多个kubernetes节点。如果其中一个节点发生故障,那么其他节点上总是有足够的实例。
如果我们想对节点进行维护,我们如何耗尽这些节点(而不将SOLR pod"迁移"到其他节点(?对我们来说,最重要的是kube代理将不再向有问题的节点上的pod发送新请求,这样一段时间后我们就可以在不中断运行请求的服务的情况下进行维护。
我们尝试了cordon,但cordon只会确保没有新的pod被安排到节点。Drain似乎不适用于具有本地持久卷的pod。
您可以查看pod抗亲和力。
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-和抗亲和力
当满足某些条件时,这些构造可以让你排斥或吸引豆荚。
在你的情况下,pod反亲和力"requiredDuringSchedulelingIgnoredDuringExecution"可能是你最好的选择。我还没有亲自使用它,我希望它能引导你走向正确的方向。