如何在已部署的Temporal Helm Chart中配置S3认证密钥?
Temporal S3归档认证配置方案
已通过Temporal官方Helm Chart部署服务,执行过如下Helm命令:
helmstage upgrade --install -f values/values.archival.s3.yaml -f values/values.mysql.yaml temporal-test . -n test服务部署成功后,更新了
values/values.archival.s3.yaml的归档配置,但不清楚如何配置S3的accesskey和secretkey,询问是否需要创建Secret及使用方法。
需要创建K8s Secret存储S3认证信息
不能将accesskey和secretkey明文写入values文件,必须通过K8s Secret进行安全管理,具体操作步骤如下:
创建存储认证信息的Secret
使用kubectl命令创建Secret,将S3的访问密钥ID和秘密访问密钥存入其中:kubectl create secret generic temporal-s3-credentials \ --from-literal=accesskey=你的S3访问密钥ID \ --from-literal=secretkey=你的S3秘密访问密钥 \ -n test替换命令中的实际密钥值,
temporal-s3-credentials为自定义的Secret名称,可根据需求修改。修改values配置文件引用Secret
在values/values.archival.s3.yaml的s3store配置块中,添加引用Secret的字段,修改后的完整配置示例:server: archival: history: state: "enabled" enableRead: true provider: s3store: region: "default" endpoint: "http://ceph-infra-s3:8080" s3ForcePathStyle: true # 新增S3认证配置 accessKeyIDSecret: name: temporal-s3-credentials key: accesskey secretAccessKeySecret: name: temporal-s3-credentials key: secretkey visibility: state: "enabled" enableRead: true provider: s3store: region: "default" endpoint: "http://ceph-infra-s3:8080" s3ForcePathStyle: true # 新增S3认证配置 accessKeyIDSecret: name: temporal-s3-credentials key: accesskey secretAccessKeySecret: name: temporal-s3-credentials key: secretkey namespaceDefaults: archival: history: state: "enabled" URI: "s3://temporal-development" visibility: state: "enabled" URI: "s3://temporal-development"重新执行Helm升级命令应用配置
再次运行Helm命令更新部署,让新的认证配置生效:helmstage upgrade --install -f values/values.archival.s3.yaml -f values/values.mysql.yaml temporal-test . -n test
补充说明
如果你的环境支持IAM角色(如云厂商托管K8s集群的服务账户角色),也可通过角色绑定实现无密钥认证,但针对Ceph S3这类自建对象存储,使用Secret存储密钥是最直接可靠的方案。
内容的提问来源于stack exchange,提问作者jalal zivari
相关产品推荐
相关产品推荐

