You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法在Reaper UI中添加MicroK8s部署的Cassandra集群

解决MicroK8s上Bitnami Cassandra集群无法被Reaper通过JMX连接的问题

核心问题分析

Bitnami Cassandra镜像默认将JMX绑定到本地回环地址(127.0.0.1),且启用JMX认证,同时Reaper与Cassandra的网络端口/策略可能未正确打通,导致JMX连接拒绝。

分步解决方案

1. 修改Bitnami Cassandra的JMX监听配置

Bitnami镜像默认限制JMX仅本地访问,需修改为允许远程连接:

  • 编辑Cassandra的StatefulSet,添加环境变量:
    env:
      - name: CASSANDRA_JMX_LOCAL
        value: "false"
    
  • 重启Cassandra Pod,确保JMX绑定到0.0.0.0,允许集群内/外部访问。

2. 确认JMX端口与Service配置

  • 确保Cassandra的StatefulSet暴露JMX端口(默认7199):
    ports:
      - name: jmx
        containerPort: 7199
        protocol: TCP
    
  • 更新headless Service(bitnami-cassandra-headless),包含JMX端口的映射:
    ports:
      - name: jmx
        port: 7199
        targetPort: jmx
    

3. 配置JMX认证信息

Bitnami Cassandra默认启用JMX认证,需获取并在Reaper中正确配置:

  • 获取JMX密码:
    kubectl get secret bitnami-cassandra -o jsonpath='{.data.jmx-password}' | base64 -d
    
    默认用户名为cassandra
  • 在Reaper WebUI添加集群时,勾选Enable JMX Authentication,填入上述用户名和密码。

4. 验证网络连通性

  • 如果Reaper部署在K8s集群内部,直接在Reaper Pod内测试JMX端口连通:
    kubectl exec -it <reaper-pod-name> -- nc -zv bitnami-cassandra-headless.default.svc.cluster.local 7199
    
  • 如果Reaper在集群外部(本地通过端口转发访问),先转发JMX端口:
    kubectl port-forward svc/bitnami-cassandra-headless 7199:7199 -n default
    
    然后用localhost:7199作为Reaper的种子节点地址。

5. 检查Reaper配置

确保test_cassandra-reaper.yaml中JMX相关配置正确(如果是集群内部部署):

jmxAuth:
  username: cassandra
  password: <your-jmx-password>

重启Reaper Pod生效。

额外排查点

  • 查看Reaper日志的详细错误,区分是连接超时(网络问题)还是认证失败(密码错误)
  • 检查K8s网络策略,确保Reaper Pod能访问Cassandra Pod的7199端口
  • 用nodetool -h bitnami-cassandra-headless.default.svc.cluster.local -p 7199 status验证JMX是否正常工作

内容的提问来源于stack exchange,提问作者zihao zheng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 08:25:09