使用连接

连接允许你在项目级别存储可复用的外部模型源和数据服务访问设置。

有关从 S3、PVC 或 OCI 源直接进行模型部署的 YAML 示例,请参阅 Model Storage

注意: 对于基于 OCI 的模型部署,只有 ACCESS_TYPE 包含 Pull 的连接才会在模型部署表单中可用。

前提条件

  • 你有目标项目命名空间的访问权限。
  • 已存在合适的连接类型。
  • 你拥有要使用的外部存储或 registry 的凭据和端点信息。

创建连接

  1. 在业务视图中,打开目标项目。
  2. 单击 Connections
  3. 单击 Create connection
  4. 选择一个连接类型。
  5. 输入该连接的 Kubernetes 资源名称。
  6. 可选:输入显示名称。
  7. 填写所选连接类型定义的字段。
  8. 单击 Create

内置字段集

  • URI:在 URI 字段中提供完整的 URI。
  • OCI-compliant registry:提供 ACCESS_TYPE,上传或粘贴 .dockerconfigjson,并输入 OCI_HOST
  • S3-compatible object storage:提供 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_S3_ENDPOINT,以及可选的 AWS_DEFAULT_REGIONAWS_S3_BUCKET

验证

  • 新项目会显示在 Connections 页面上。
  • 表格会显示连接名称、连接类型、兼容性标签和创建者。

注意: 连接资源名称和所选连接类型在创建后无法更改。

更新连接

  1. Connections 页面上,打开目标连接的操作菜单。
  2. 单击 Edit
  3. 更新显示名称或连接字段。
  4. 单击 Save

在更新凭据或端点后,请重新部署或重启依赖的工作负载,以便它们获取最新值。

删除连接

  1. Connections 页面上,打开目标连接的操作菜单。
  2. 单击 Delete
  3. 确认操作。

删除连接只会移除项目 secret。任何仍依赖该 secret 的工作负载都必须单独更新。

管理连接类型

连接类型在集群范围内管理,并存储在 kube-public 命名空间中。

连接类型包含的内容

  • 基本元数据:名称、显示名称、类别和启用状态
  • 按顺序排列的分节标题和字段
  • 可选的默认值和只读设置
  • 用于 URI、OCI 或 S3 模型 serving 的兼容性标记

内置模板

连接类型编辑器可为以下内容追加预定义字段集:

  • URI
  • OCI compliant registry
  • S3 compatible object storage

支持的字段类型

字段类型作用
Section仅用于视觉分组
Text - Short / Text - Long纯文本输入
Text - Hidden密码或 secret key 等敏感值
URIURI 输入
Boolean开关输入
Numeric数值输入,可选最小值、最大值和单位
Dropdown单选或多选项
File上传或粘贴文件内容,例如 .dockerconfigjson

注意: 当前 UI 中的文件类型字段支持粘贴内容或上传最大 1 MiB 的文件。

创建连接类型

  1. 打开目标集群,并进入 Settings > Connection types
  2. 单击 Create connection type
  3. 输入连接类型名称。平台会为其添加 ct- 前缀并存储。
  4. 可选:输入显示名称。
  5. 选择一个或多个类别。
  6. 根据需要设置 Enabled
  7. 添加分节标题和字段,或者应用内置的、与模型 serving 兼容的模板。
  8. 单击 Create

复制、编辑、启用和删除

  • 当你想基于现有类型创建新的连接类型时,请使用 Duplicate
  • 自定义连接类型可以编辑或删除。
  • 预装连接类型可以复制,但当前 UI 不允许直接编辑或删除它们。
  • 列表页面提供 Enabled 开关,用于将连接类型标记为启用或禁用。

注意: 编辑连接类型不会重写之前创建的现有连接 secrets。

将连接用于模型部署

当你创建或更新推理服务时,可以将 Model location 设置为 Connection

  1. 打开推理服务创建或更新表单。
  2. Model location 设置为 Connection
  3. 选择连接。
  4. 根据连接类型完成模型路径字段:
    • URI:不需要额外路径;平台会从连接中读取完整的 URI。
    • OCI:输入 oci://<OCI_HOST>/ 下的相对路径,例如 my-model:latest
    • S3:输入 s3://<AWS_S3_BUCKET>/ 下的对象路径,例如 llm/qwen2.5

运行时行为

  • 对于 OCI 连接,连接 secret 会作为 imagePullSecret 挂载到工作负载。
  • 对于 S3 连接,平台会创建一个专用的 ServiceAccount 来引用该连接 secret。
  • 推理服务元数据会在 aml-model-source-connection 注解中保存所选连接名称。

资源模型

当前实现对连接使用项目 secret,对连接类型使用集群级 ConfigMap。

连接 Secret 示例

apiVersion: v1
kind: Secret
metadata:
  name: minio-models
  namespace: demo-project
  labels:
    cpaas.io/dashboard: "true"
  annotations:
    cpaas.io/display-name: MinIO models
    cpaas.io/connection-type-ref: ct-s3-storage
    cpaas.io/connection-type-protocol: s3
    serving.kserve.io/s3-endpoint: minio.minio.svc:9000
    serving.kserve.io/s3-region: us-east-1
type: Opaque
stringData:
  AWS_ACCESS_KEY_ID: <access-key>
  AWS_SECRET_ACCESS_KEY: <secret-key>
  AWS_S3_ENDPOINT: http://minio.minio.svc:9000
  AWS_DEFAULT_REGION: us-east-1
  AWS_S3_BUCKET: models

连接类型 ConfigMap 示例

apiVersion: v1
kind: ConfigMap
metadata:
  name: ct-uri-repository
  namespace: kube-public
  labels:
    cpaas.io/dashboard: "true"
    cpaas.io/connection-type: "true"
  annotations:
    cpaas.io/display_name: URI repository
    cpaas.io/disabled: "false"
data:
  category: '["URI"]'
  fields: >-
    [
      {
        "type": "section",
        "name": "URI",
        "description": "Fields required for URI model serving."
      },
      {
        "type": "uri",
        "name": "URI",
        "envVar": "URI",
        "required": true,
        "properties": {
          "defaultReadOnly": false
        }
      }
    ]

注意: 与最近的 OpenShift AI 文档相比,当前 Alauda AI 前端仍会使用 cpaas.io/connection-type-ref 将连接绑定到其模板,并且还会将模型 serving 兼容性写入 cpaas.io/connection-type-protocol