Skip to content

应用

本文介绍 Olares 中应用标识符、类型、权限以及与应用市场集成相关的核心概念。

应用标识符

在 Olares 中,每个应用都有两个标识符:应用名称和应用 ID。

应用名称

应用名称由 Indexer 分配。Olares 团队维护的 Indexer 仓库是 apps。应用在该仓库中的目录名即为其应用名称。

应用 ID

应用 ID 是应用名 MD5 哈希值的前八个字符。例如,如果应用名称为“hello”,则其应用 ID 为“b1946ac9”。

应用对应的端点(Endpoint)会使用该应用 ID。

应用类型

Olares 包含多种类型的应用。你可以通过控制面板查看系统的各类应用,并通过命名空间来识别具体的应用类型。

系统应用

系统应用包括 Kubernetes、Kubesphere、Olares 组件和必要的硬件驱动。系统级命名空间包括:

os-system
kubesphere-monitoring-federated
kubesphere-controls-system
kubesphere-system
kubesphere-monitoring-system
kubekey-system
default
kube-system
kube-public
kube-node-lease
gpu-system

其中,os-system 是 Olares 开发的组件。集群级的应用以及系统提供的各种数据库中间件都安装在这个命名空间下。

用户级系统应用

Olares 支持多用户,并为管理员和普通成员用户提供两个不同的系统应用命名空间:

  • user-space-{本地名称}

    user-space 命名空间用于安装用户日常交互的系统应用,包括:

    • 文件管理器
    • 设置
    • 控制面板
    • 仪表盘
    • 应用市场
    • Profile
    • Vault

    这些应用之间存在相互调用,同时调用系统底层接口(如 Kubernetes 的 api-server 接口)。为了确保系统安全,Olares 将它们统一部署在独立的 user-space 命名空间中,通过沙盒机制隔离,防止恶意程序的攻击和非法访问。

  • user-system-{本地名称}

    系统应用和用户的内置应用通常不允许第三方应用直接访问。

    但如果数据库集群和内置应用通过 Service Provider 开放了某些接口,社区应用可以通过声明访问权限来使用这些服务。

    在这种情况下,系统会在 user-system 命名空间下为这些资源提供网络代理,并对来自第三方应用的网络请求进行鉴权。

社区应用

社区应用是由第三方开发者创建和维护的应用,涵盖从生产力工具、娱乐应用到数据分析工具等多种用途。

社区应用的命名空间由两部分组成:应用名称和用户的本地名称,例如:

n8n-alice
gitlab-client-bob

集群应用

集群应用是一类特殊的社区应用,旨在为整个 Olares 集群共享资源或服务。它们作为服务提供者持续运行,遵循以下规则:

  • 每个集群仅允许安装一个实例
  • 仅管理员可以安装和管理集群应用
  • 在 Olares 应用市场中以“for Cluster”后缀和“Cluster-scoped”标签标识
  • 用户需要通过其授权应用访问集群应用。例如,“ComfyUI for Cluster”提供集群范围的服务,用户通过其授权客户端应用“ComfyUI”访问

授权应用

授权应用是集群应用的客户端界面。管理员和普通成员都可以安装。

依赖项

依赖项是某些应用正常运行所必需的前置应用。安装带有依赖项的应用前,用户必须确保集群中已安装所有必需的依赖项。

Service Provider

Service Provider 机制使社区应用能够与系统应用、其他社区应用的服务进行交互。

Service Provider

该机制包含三个步骤:

  1. Provider 声明:开发者必须将其应用声明为特定服务接口的 Provider。 系统包含内置的 Provider。

  2. 权限请求:需要使用 Service 接口的应用必须明确申请 Provider 的权限

  3. 请求处理:调用时,user-system 下的 system-server 服务作为代理,处理传入请求并执行必要的权限验证。

了解更多