EKS中通过Helm部署Postgres HA版Jira启动失败:插件加载报错
解决EKS中通过Helm部署Jira(带Postgres HA)启动时插件加载失败问题
问题核心
从报错日志可明确,Jira启动时插件加载失败的根本原因是数据库连接处于只读事务模式:
ERROR: cannot execute DELETE in a read-only transaction ERROR: cannot execute SELECT FOR UPDATE in a read-only transaction
Jira的Development Integration和Agile插件在初始化时需要执行写操作(删除集群任务、更新属性记录),但当前数据库连接不允许这类操作,导致插件加载失败。
解决方案
1. 确认Postgres HA主节点状态与连接配置
- 检查Postgres HA集群主节点状态:如果使用Bitnami等主流HA Chart,执行
kubectl get pods -l app.kubernetes.io/instance=<postgres-release-name>,role=primary确认主节点Pod处于Running状态 - 修正Jira数据库连接目标:确保Helm values中Jira的数据库
host指向Postgres主节点服务(通常命名为<postgres-release-name>-postgresql-ha-primary),而非只读从节点服务(命名一般包含-read后缀)
2. 检查数据库用户与参数配置
- 验证Jira数据库用户权限:确保该用户拥有数据库读写权限,而非只读权限
- 检查Postgres主节点事务参数:进入主节点Pod执行
psql -U <jira-db-user> -c "SHOW default_transaction_read_only;",确认参数值为off;若为on则修改Postgres配置并重启主节点
3. 应用配置更新并重启Jira
- 更新Helm配置:
helm upgrade <jira-release-name> atlassian-data-center/jira -f your-values.yaml - 若插件缓存异常,删除缓存后重启Pod:
kubectl exec <jira-pod-name> -- rm -rf /var/atlassian/application-data/jira/plugins/installed-plugins/*.jar kubectl delete pod <jira-pod-name>
内容的提问来源于stack exchange,提问作者Farshad.H
相关产品推荐
相关产品推荐

