dulao5
(Dulao5)
1
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:4.0.7
- 【问题描述】:EKS的 tidb node-group 的node被重启后,EC2的autoscaling动作慢,EKS/tidb-operator的调度动作快,导致ec2还没就绪,tidb-server的容器就已经在现有tidb node上被创建出来了。导致一台 tidb node-group 的node里面容器实例不均衡。
我在 AWS EKS 上部署了一个tidb集群,其中 tidb-server 的容器有两个,分别调度在对应的 EKS tidb node-group 服务器上。
现在一台aws ec2重启后,在上面的 tidb-server 容器被杀掉,系统没有等待被重启的aws ec2就绪,马上在另一台node上新增了一个 tidb-server 容器。
这样导致两个 tidb-server 容器都被安放在同一台tidb node上,另一台tidb node就绪后,是空的服务器资源。
我的疑问
- 怎样才能将同居的tidb容器分到新的tidb node服务器上?
- 这种情况应该怎样避免?
可以在 Node 恢复正常状态后, 删除这个 Pod, 创建新的 Pod 的时候会被均匀调度到新的 Node,
如果不想 Pod 被调度到其他节点, 可以让 Node 未重启前让 Pod 处于 Pending 的状态, 具体方法可以通过参考文档中 TiDB 高可用 部分实现, 配置 TiDB 集群的 .spec.affinity
将 preferredDuringSchedulingIgnoredDuringExecution
改为 requiredDuringSchedulingIgnoredDuringExecution
, 并且可以参考 Kubernetes 相关文档了解更多 Pod Affinity的细节
1 个赞
system
(system)
关闭
5
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。