ECS Sonarqube(elasticsearch) - 获取节点锁失败

ECS Sonarqube(elasticsearch) - failed to obtain node locks

提问人:infantus 提问时间:11/15/2023 最后编辑:infantus 更新时间:11/15/2023 访问量:21

问:

我在 aws ecs 中设置了一个 sonarqube 社区版,兼容 ec2。我将声纳扩展和 elasticsearch 数据文件夹挂载到 efs 接入点。它运行平稳,直到另一个 ecs sonarqube 任务扩展但失败并出现以下问题,我认为它是 elasticsearch efs 问题。

java.lang.IllegalStateException: failed to obtain node locks, tried [/opt/sonarqube/data/es8]; maybe these locations are not writable or multiple nodes were started on the same data path?

我已将我的 efs 接入点设置为 Posix 用户 = 1000:1000 创建信息=1000:1000(0750)

对此可以做些什么?提前致谢。

Elasticsearch SonarQube ECS 亚马逊-EFS

评论


答:

1赞 Mark B 11/15/2023 #1

SonarQube 的免费开源版本不支持一次运行多个实例。此外,运行嵌入式 Elasticsearch 服务器一次只能处理一个实例。因此,要将 SonarQube 扩展到单个节点之外,您必须使用 SonarQube 的付费版本之一,并且还需要在容器外部运行 Elasticsearch。SonarQube 的 Data Center 版本实际上是唯一将“水平可扩展性”列为受支持功能的版本

如果您只想在 ECS 中运行单个实例,并且能够在不遇到此错误的情况下执行部署,则可以将 Desired Count 设置为 ,禁用自动扩展,并将 ECS Deployment Maximum Percent 设置为 ,并将 Deployment Minimum Healthy Percent 设置为 。这将导致部署期间出现一些停机时间,但这是避免运行多个 SonarQube 实例时出现的锁定问题的唯一方法。11000

评论

0赞 infantus 11/22/2023
是的,你是对的。感谢您的友好信息。我做了一个配置,使得 ec2 实例是 t3.medium,使用 1cpu、2gb ram 和 db.t3.micro 的 RDS 运行。这些是否足以让 sonarqube 在 ecs 中运行?
0赞 Mark B 11/23/2023
这完全取决于您配置的项目数量以及这些项目的大小。