Skip to content

配置环境变量

通过控制面板,你可以查看和修改应用的环境变量,以满足调试、功能配置或临时调整的需求。

开始之前

在进行修改前,先确认目标变量应在何处配置。

对比项系统级变量应用级变量
配置位置设置控制面板
作用范围所有引用了该变量的应用共享仅作用于单个应用资源
涵盖内容Olares 预置的常用变量,
如 API 密钥、邮件服务器设置等
系统级变量未覆盖的应用特定参数
应用升级后是否保留

先查阅设置系统级环境变量,确认你需要的变量是否已存在。如果没有,使用以下步骤在控制面板中配置。

确定变量的存储位置

应用中的变量可以存储在不同类型的 Kubernetes 资源中。了解目标变量存储在哪个资源中,决定了你如何修改它以及是否需要重启。

资源类型典型内容修改后是否需要重启
部署直接的键值对自动重启
配置字典配置数据、启动参数、配置文件需手动重启
保密字典敏感数据,如密码、令牌、凭证需手动重启

常规应用

要确定变量存储在哪里,在 YAML 编辑器中打开部署,查看 spec > containers 部分。注入方式会告诉你变量的来源:

  • env:变量直接在部署中以键值对的形式定义。
  • envFrom 配合 configMapRef:变量存储在引用的 Configmap 中。
  • valueFrom 配合 secretKeyRef:变量存储在引用的 Secret 中。

例如,在下面的 YAML 中,envFrom 引用了 Configmap lobechat-config,而 env 直接定义了 PGIDPUIDTZ

yaml
spec:
  containers:
    - name: lobechat
      image: docker.io/beclab/lobehub-lobehub:2.1.18
      ports:
        - name: http
          containerPort: 3210
          protocol: TCP
      envFrom:
        - configMapRef:
            name: lobechat-config
      env:
        - name: PGID
          value: '1000'
        - name: PUID
          value: '1000'
        - name: TZ
          value: Etc/UTC

C/S 架构应用

部分应用采用客户端/服务器(C/S)架构,例如 Ollama。它们的变量分布在两个不同的命名空间中:用户命名空间(用于客户端资源),系统命名空间(用于服务端资源)。

对于 C/S 应用,环境变量通常存储在跨两个命名空间的 Configmap 中。根据你想要修改的内容,前往正确的命名空间进行修改:

  • 要修改外部访问行为,前往用户命名空间,查找名称中包含 nginxsidecar 的 Configmap。
  • 要修改应用核心参数,前往系统命名空间,查找名称中包含 envconfig 或类似标识的 Configmap。

修改部署中的变量

此方法适用于直接调整工作负载。下面的示例更改 Jellyfin 的时区,使媒体库显示本地时间戳而不是 UTC。

  1. 在控制面板的浏览面板中,选择 Jellyfin 项目。

  2. 部署资源组下,点击 jellyfin,然后点击 edit_square

    浏览到 Jellyfin 的部署实例

  3. 在 YAML 编辑器中,找到 containers 部分,定位 jellyfin 的 env 字段,然后更改 TZ 的值:

    yaml
    env:
      - name: PGID
        value: '1000'
      - name: PUID
        value: '1000'
      - name: UMASK
        value: '002'
      - name: TZ
        value: Asia/Shanghai   # 原为 Etc/UTC
  4. 点击 Confirm。Pod 将自动重启以使更改生效。

修改配置字典中的变量

此方法用于添加第三方 API 密钥、修改启动参数或更新配置文件。

常规应用

以下示例向 DeerFlow 的配置中添加 Tavily API 密钥,以启用网络搜索。

  1. 在控制面板的浏览面板中,选择 DeerFlow 项目。

  2. 配置字典下,点击 deerflow-config浏览到 DeerFlow 的配置字典

  3. 在资源详情页,点击右上角的 edit_square 打开 YAML 编辑器。

  4. data 部分下添加以下键值对:

    yaml
    SEARCH_API: tavily
    TAVILY_API_KEY: tvly-xxx # 你的 Tavily API Key

    配置 Tavily

  5. 点击 Confirm 保存更改。

  6. 返回部署 > deerflow,然后点击重启

    重启 DeerFlow

  7. 在确认对话框中输入 deerflow,然后点击 Confirm

等待状态图标变为绿色,表示新配置已加载。

C/S 架构应用

根据你要修改的内容,你可能需要在用户命名空间、系统命名空间或两者中修改变量。

在用户命名空间中修改客户端设置

以下步骤将 Ollama 的代理读取超时从 300s 改为 600s

  1. 在控制面板的浏览面板中,选择 Ollama 项目。

  2. 部署资源组下,点击 ollamav2,然后点击 edit_square在控制面板中定位 Ollama 实例

  3. 在 YAML 编辑器中,找到 containers 部分,定位并检查 env 字段。这里的配置引用了 nginx.conf

    编辑 Ollama 实例的 YAML

  4. 点击 Cancel 关闭编辑器。

  5. 展开配置字典,点击 nginx-config,然后点击右上角的 edit_square

    定位 Nginx 配置实例

  6. 在 YAML 编辑器中,找到 data 部分,定位 nginx.conf 键,然后将 proxy_read_timeout 的值从 300s 改为 600s

    编辑 Nginx 配置

  7. 点击 Confirm

  8. 返回部署 > ollamav2,然后点击重启,使更改生效。

等待状态图标变为绿色,表示新配置已加载。

在系统命名空间中修改服务端设置

以下步骤将 Ollama 的最大加载模型数从 3 改为 5

  1. 在控制面板的浏览面板中,向下滚动并点击 System 展开系统部分。

  2. 选择 ollamaserver-shared,然后在部署资源组下,点击 ollama,再点击 edit_square

    在系统命名空间中定位 Ollama

  3. 在 YAML 编辑器中,找到 containers 部分,检查 envFrom 字段。这里的配置引用了 ollama-env

    编辑 YAML

  4. 点击 Cancel 关闭编辑器。

  5. 返回配置字典,点击 ollama-env 实例,然后点击右上角的 edit_square

    编辑 Ollama 环境变量

  6. 在 YAML 编辑器中,找到 data 部分,然后将 OLLAMA_MAX_LOADED_MODELS 的值从 3 改为 5

    编辑 Ollama 变量

  7. 点击 Confirm

  8. 返回部署 > ollama,然后点击重启,使更改生效。

等待状态图标变为绿色,表示新配置已加载。

修改保密字典中的变量

保密字典中的修改流程与配置字典相同。根据你的应用类型,遵循常规应用C/S 架构应用中的步骤。

INFO

当你打开保密字典的 YAML 编辑器时,data 字段下的所有值都必须是 Base64 编码的。

常见问题

修改配置字典或保密字典后,更改未生效

修改配置字典或保密字典后,关联的工作负载不会自动重新加载配置。你必须重启工作负载才能读取新的值。

使用以下任一方法重启工作负载:

  • 在控制面板中重启

    进入应用所在命名空间的部署资源组,点击目标工作负载,然后点击重启

  • 通过应用市场或设置重启

    如果不确定应该重启哪个工作负载,可以采用暂停应用,然后再恢复应用的方法:

    • 进入应用市场 > 我的 Olares,点击应用操作按钮旁边的 keyboard_arrow_down,选择暂停,然后再点击恢复
    • 进入设置 > 应用,点击应用,点击暂停,然后点击恢复

这两种方法都会应用并加载配置字典或保密字典中的最新配置,从而使你的更改生效。