You need to enable JavaScript to run this app. Kubernetes上StatefulSet部署的Cassandra集群如何实现internode安全配置
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes上StatefulSet部署的Cassandra集群如何实现internode安全配置

针对K8s StatefulSet部署Cassandra集群的节点间安全配置说明

完全可以为该集群配置安全策略,节点间(internode)通信安全是核心可配置项之一,具体落地方案如下:

核心配置项

1. 节点间TLS传输加密

这是internode安全的基础配置,通过修改cassandra.yaml的server_encryption_options字段即可开启,示例配置如下:

server_encryption_options:
    internode_encryption: all # 可选值:none(关闭)、dc(仅跨DC加密)、rack(仅跨机架加密)、all(全量加密)
    keystore: /etc/cassandra/security/keystore.jks
    keystore_password: <你的密钥库密码>
    truststore: /etc/cassandra/security/truststore.jks
    truststore_password: <你的信任库密码>
    require_client_auth: true # 开启双向认证,禁止未授权节点接入集群

K8s侧操作步骤:

  • 将生成的JKS格式证书、密钥文件存储为K8s Secret
  • 修改StatefulSet编排,将Secret挂载到所有Cassandra Pod的对应路径下
  • 滚动更新StatefulSet生效配置

2. K8s层网络隔离

配套配置K8s原生NetworkPolicy,限制Cassandra Pod的internode通信端口(默认7000为明文端口、7001为TLS加密端口)仅允许同集群的Cassandra节点访问,拦截未授权的外部访问请求,示例规则如下:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: cassandra-internode-allow
  namespace: <你的Cassandra部署命名空间>
spec:
  podSelector:
    matchLabels:
      app: cassandra # 匹配你的Cassandra Pod标签
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: cassandra
    ports:
    - protocol: TCP
      port: 7000
    - protocol: TCP
      port: 7001

配置注意事项

  • 滚动更新StatefulSet时需要按顺序先更新Seed节点,再更新普通节点,避免集群出现脑裂
  • 生产环境开启加密前需要先在测试集群验证证书有效性、节点连通性,避免配置错误导致节点间通信中断
  • 证书到期前需要提前更新Secret并滚动重载Pod,避免证书过期导致集群节点离线

内容的提问来源于stack exchange,提问作者Sudip Manandhar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 18:15:09