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

如何通过自动部署的Secrets为DataGrid 8.4添加应用用户

问题分析与解决方案

一、当前application用户配置的常见错误点

  • 批处理文件未被正确加载:如果你的Infinispan自定义资源(CR)没有在spec.security.endpointAuthentication.identities.configMapName字段中指定包含identities-batch.yaml的ConfigMap名称,Operator会忽略这个用户配置,导致用户无法创建。
  • 权限分配语法错误:批处理文件中的用户创建命令不符合Infinispan CLI规范,比如遗漏-g application参数(指定权限组),或者命令格式写错,会导致用户创建失败或权限未正确绑定。
  • 密码不一致:如果同时用Secret存储密码,但批处理文件中的密码与Secret内容不匹配,会引发登录认证失败。

二、正确定义拥有application权限的自定义用户

1. 编写合规的identities-batch.yaml批处理文件

确保文件包含正确的用户创建命令,格式如下:

batch
# 创建application用户并分配application权限组
user create application -p your-plaintext-password -g application
run-batch

注:application权限组默认拥有缓存的读写权限,完全满足Hot Rod客户端连接并操作缓存的需求。

2. 创建存储批处理文件的ConfigMap

kubectl create configmap infinispan-custom-identities --from-file=identities-batch.yaml

3. 在Infinispan CR中引用该ConfigMap

修改你的Infinispan自定义资源,添加权限配置:

apiVersion: infinispan.org/v1
kind: Infinispan
metadata:
  name: infinispan-cluster
spec:
  replicas: 3
  security:
    endpointAuthentication:
      identities:
        configMapName: infinispan-custom-identities

生产环境推荐用Secret存储密码:将密码存入Secret,批处理文件中用user create application -p "${secret:your-secret-name:password-key}" -g application引用,同时在CR的spec.security.endpointAuthentication.identities.secretName中指定Secret名称。

4. 验证用户创建状态

等Operator同步完成后,用operator用户登录Infinispan CLI:

kubectl exec -it <infinispan-pod-name> -- ./cli.sh -c https://localhost:11222 -u operator -p <operator-password>

执行user ls应该能看到application用户,再用user show application确认其已加入application权限组。

三、调试Infinispan登录失败问题

  • 查看Pod日志定位错误:
    kubectl logs <infinispan-pod-name> -f
    
    重点搜索identity、user、batch相关日志,比如是否存在Failed to execute batch command这类用户创建失败的提示。
  • 检查Infinispan CR状态:
    kubectl get infinispan infinispan-cluster -o yaml
    
    查看status.conditions字段,确认是否有配置错误导致实例未就绪。
  • 直接测试Hot Rod连接:
    在Spring Boot客户端Pod中用hotrod-cli测试(若已安装):
    hotrod-cli --server <infinispan-service-name>:11222 --user application --password <你的密码>
    
    根据错误信息判断是认证失败还是网络连通性问题。
  • 验证权限组配置:
    登录控制台或CLI,执行role show application,确认该角色包含CREATE、READ、WRITE等缓存操作权限。
  • 检查挂载资源正确性:
    进入Infinispan Pod,查看ConfigMap是否正确挂载:
    kubectl exec -it <infinispan-pod-name> -- cat /opt/infinispan/server/conf/identities/identities-batch.yaml
    
    确认文件内容与你定义的一致。

内容的提问来源于stack exchange,提问作者usr-local-ΕΨΗΕΛΩΝ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:30:02