1

cassandra-env.sh

JMX_PORT=7199

如果 [ "$LOCAL_JMX" = "是" ]; 然后 JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.local.port=$JMX_PORT" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false" 否则 JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.remote.port =$JMX_PORT"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false" #JVM_OPTS="$JVM_OPTS -Dcom.sun. management.jmxremote.ssl=true" #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.need.client.auth=true" #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl. enabled.protocols="#JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.enabled.cipher.suites="#JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/path/to/keystore " #JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=" #JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStore=/path/to/truststore" #JVM_OPTS="$JVM_OPTS -Djavax.net. ssl.trustStorePassword="fi

  1. 将 $JMX_PORT 设置为 no 作为环境变量
  2. JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=xxxx" (主机名设置为 nodeport ip)

我正在尝试使用 nodeportIp:port 连接到 jconsole 远程端口。谁能帮我这个?

4

1 回答 1

1

按照设计,Cassandra pod 不能通过 Kubernetes 集群外部的 JMX 访问。出于这个原因,Cassandra 容器安装了一个管理 API,作为 sidecar 服务层,用于管理任务,例如停止/启动节点、健康检查和运行nodetool命令。

有关 Apache Cassandra 管理 API 的详细信息,请参阅https://github.com/k8ssandra/management-api-for-apache-cassandra

您将无法直接配置cassandra-env.sh,因为 cass-operator 将覆盖它。有关K8ssandra.io安全性和 JMX 配置的详细信息,请参阅https://docs.k8ssandra.io/tasks/secure/。干杯!

于 2021-09-21T06:35:14.580 回答