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 1.12.6 引入新架构的原因,以及如何从旧版 v2 共享应用迁移到新版共享架构。

了解共享应用

共享应用为 Olares 集群中的所有用户提供共享的资源或服务。与每位成员各自安装实例不同,管理员只需安装并管理一个实例,所有人即可使用。

共享应用的主要特点:

  • 集中管理:只有管理员可以安装、升级、暂停、恢复和卸载共享应用,并负责在集群内配置和托管应用的服务、资源和运行环境。
  • 易于识别:在应用市场中,共享应用通常带有共享应用共享版group 等标识。
  • 灵活访问:访问方式取决于应用类型。

依赖项

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

Service Provider

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

Service Provider

该机制包含三个步骤:

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

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

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

了解更多