AWS EKS : 一台 group-node 上启动了两个 tidb-server 容器示例

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【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就绪后,是空的服务器资源。

我的疑问

  1. 怎样才能将同居的tidb容器分到新的tidb node服务器上?
  2. 这种情况应该怎样避免?

可以在 Node 恢复正常状态后, 删除这个 Pod, 创建新的 Pod 的时候会被均匀调度到新的 Node,

如果不想 Pod 被调度到其他节点, 可以让 Node 未重启前让 Pod 处于 Pending 的状态, 具体方法可以通过参考文档中 TiDB 高可用 部分实现, 配置 TiDB 集群的 .spec.affinitypreferredDuringSchedulingIgnoredDuringExecution 改为 requiredDuringSchedulingIgnoredDuringExecution , 并且可以参考 Kubernetes 相关文档了解更多 Pod Affinity的细节

1 个赞

谢谢您的回答.

受教了!

没事~, 欢迎继续交流

1 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。