明确 NATS Account 多租户隔离及队列命名范围
This commit is contained in:
@@ -57,7 +57,8 @@ Gitea workflow_job webhook
|
||||
`microvm-runner-launch` 管理 VM 的临时磁盘、网络及清理,`guest-runner` 领取一次性
|
||||
注册凭据并以 ephemeral 模式注册。`pod-worker` 创建 Kubernetes 执行 Pod。
|
||||
该次 README 描述同一 runner label 的 worker 共享同一个 durable consumer,通过增加 worker
|
||||
或 capacity 扩容。具体 durable 名称和后续调度改动以项目文档为准。
|
||||
或 capacity 扩容。这是 runner 所属 Account 和 stream 内的协调约定,不是跨 NATS Account
|
||||
的全局命名要求。具体 durable 名称和后续调度改动以项目文档为准。
|
||||
|
||||
[NATS](nats.md) 作为集群共享服务部署;维护者说明当前只有 Dynamic Runner 消费它,
|
||||
不因此将 NATS 视为 runner 私有组件。
|
||||
|
||||
+13
-1
@@ -16,10 +16,22 @@ sources:
|
||||
共享服务的定位不随当前消费者数量改变。NATS 属于平台基础设施,
|
||||
Dynamic Runner 使用它传递任务消息,但不独占消息服务的用途和生命周期。
|
||||
|
||||
## 多租户边界
|
||||
|
||||
NATS 原生通过 **Account** 提供多租户隔离。不同 Account 拥有各自的 subject 命名空间
|
||||
和 JetStream 资源范围,多个消费者可以使用同一套 NATS 服务。
|
||||
不同 Account 下的 stream、subject 或 durable 名称不会仅因重名而互相冲突。
|
||||
|
||||
因此,讨论队列与 consumer 必须同时明确所属 Account、stream 和消费者约定,
|
||||
不能把不同租户的名称当作集群全局冲突。跨 Account 通信需要显式配置,
|
||||
同一 Account 内的 worker 协调则遵循所属项目的约定。
|
||||
这一共享服务的隔离定位由维护者于 2026-09-16 补充。
|
||||
|
||||
## 如何接入与维护
|
||||
|
||||
平台部署、连接入口、TLS 和账户配置以 homelab-infra 的 `platform/nats/README.md`
|
||||
及其配置为维护入口。新增消费者应使用适合自身的账户与权限,不能直接沿用 runner 的业务约定。
|
||||
及其配置为维护入口。新租户通过独立 Account 及对应权限接入;属于同一租户的消费者
|
||||
按该 Account 的业务约定使用资源,不能把 runner 的约定推广为整个集群的统一命名要求。
|
||||
|
||||
Dynamic Runner 的 stream、subject、durable 名称、worker 配置和具体启用范围,以
|
||||
[gitea-dynamic-runner 项目文档](https://git.ddupan.top/panxiao81/gitea-dynamic-runner)
|
||||
|
||||
Reference in New Issue
Block a user