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

Iguazio中Secrets的定义、作用范围及使用方法咨询

Iguazio平台Secrets使用问题解答

1. Secrets定义方式与生效范围

Iguazio的Secrets分两个生效级别,定义方式对应不同入口:

  • 项目级Secrets(日常最常用):普通项目成员即可操作,在对应项目的Web控制台左侧菜单栏找到「Secrets」入口,点击新建后输入键名、密钥值保存即可;也可以在已关联项目的命令行环境中执行mlrun project secrets set <你的Secret键名> <密钥值>直接创建。这类Secrets仅对当前项目下的所有作业、服务、Notebook生效,跨项目默认无访问权限。
  • 集群级Secrets:仅平台管理员有权限创建,需要在平台全局管理后台的集群配置页操作,生效范围覆盖整个集群下所有项目,一般仅用来存储全局通用凭证,比如公共镜像仓库密钥、统一存储访问账号这类跨项目共用的配置。

2. 作业中调用Secrets的方法

根据作业类型不同,有两种常用调用方式,不需要手动做K8s层面的Secret挂载:

  • 基于MLRun SDK提交的常规作业:代码里直接引入mlrun包,调用mlrun.get_secret("<Secret键名>")即可获取对应值,SDK会自动基于当前作业的项目上下文拉取有权限的Secret,无需额外配置。
  • 自定义容器作业/需要用环境变量读配置的场景:提交作业时通过secret://协议前缀引用Secret注入为环境变量即可,示例代码:
# 把名为DB_PASSWORD的Secret注入为作业的环境变量
fn.set_env("DB_PASSWORD", "secret://DB_PASSWORD")

作业启动后,容器内可以直接通过os.getenv("DB_PASSWORD")读取对应值,和普通环境变量使用逻辑完全一致。

  • Jupyter Notebook中使用:先加载项目上下文proj = mlrun.get_or_create_project("当前项目名"),之后调用proj.get_secret("<Secret键名>")即可读取。

3. Spark/Dask等分布式作业的Secrets支持

平台原生完全支持分布式作业使用Secrets,不需要给每个工作节点单独做配置:

  • 平台托管的Spark作业:只要在提交作业时通过上述secret://方式引用了对应Secret,平台拉起Driver、Executor节点时会自动把Secret同步注入到所有相关Pod中,所有节点都能正常读取,不会出现Worker节点权限不足拿不到Secret的问题。
  • 平台托管的Dask作业:逻辑和Spark一致,Scheduler、Worker节点拉起时会自动同步作业引用的所有Secret,使用方式和单节点作业没有区别。

注意:如果是对接外部自建的Spark/Dask集群,需要提前给集群使用的服务账号配置对应Iguazio项目的Secret读取权限,平台托管的分布式服务默认已经配置好相关权限,无需手动调整。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:39:21