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

在Kubernetes部署ClickHouse Operator时,如何启用users.xml中的access_management?

解决ClickHouse Operator默认users.xml中access_management注释问题

方法1:修改Operator安装包的内置模板

0.18.3版本的Operator确实没有暴露access_management的配置参数,它是通过内置模板生成users.xml的。你可以直接修改安装bundle文件来调整模板:

  • 先下载官方安装文件到本地:
    wget https://github.com/Altinity/clickhouse-operator/raw/0.18.3/deploy/operator/clickhouse-operator-install-bundle.yaml
    
  • 打开文件找到clickhouse-operator-config这个ConfigMap,定位到其中的users.xml模板片段
  • 找到被注释的<access_management>部分,移除注释并设置为启用状态:
    <access_management>1</access_management>
    
  • 用修改后的文件重新部署Operator:
    kubectl apply -f clickhouse-operator-install-bundle.yaml
    

后续新创建的ClickHouse实例,其users.xml中就会自动启用access_management。

方法2:通过ClickHouseInstallation配置强制覆盖

如果不想修改Operator安装包,可以在ClickHouseInstallation的配置中直接注入该参数:

apiVersion: clickhouse.altinity.com/v1
kind: ClickHouseInstallation
metadata:
  name: your-ch-instance
spec:
  configuration:
    users:
      default:
        profile: default
        password_sha256_hex: "你的密码哈希值" # 保留原有密码配置
        access_management: 1 # 直接添加该配置项

之前配置没生效大概率是格式问题,确保access_management和password_sha256_hex、profile同级嵌套在对应用户节点下。

方法3:临时修改已有Pod的配置(仅测试用)

如果只是临时测试,不想重新部署Operator或实例,可以直接进入Pod修改:

  • 进入目标ClickHouse Pod:
    kubectl exec -it <你的ch-pod名称> -- /bin/bash
    
  • 编辑/etc/clickhouse-server/users.xml,移除access_management的注释并设置为1
  • 重启ClickHouse服务:
    clickhouse restart
    

注意:这种方式是临时的,Pod重建后配置会丢失,不适合生产环境。

额外提示:0.18.3属于较老版本,后续新版本的Operator已经原生支持通过配置直接开启access_management,如果业务允许,升级到新版本会更省心。

内容的提问来源于stack exchange,提问作者Dev Rider

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 06:36:35