DIRECTION
Cloud Native Alignment
本文件定义 OrbitMesh 的云原生术语体系,避免系统设计停留在传统代理或机场语境。
View source1. 目标
本文件定义 OrbitMesh 的云原生术语体系,避免系统设计停留在传统代理或机场语境。
OrbitMesh 应对标以下类型的基础设施项目:
- Kubernetes:声明式资源、Controller、Reconcile Loop。
- Istio / Envoy:Traffic Policy、Gateway、xDS-style configuration。
- Cilium:网络、策略、可观测性。
- Crossplane:Desired State、Provider、Managed Resource。
- Tailscale:设备身份、控制平面、数据面分离。
2. 正式术语
Control Plane
控制平面,负责:
- Resource 管理。
- Desired State。
- Policy。
- Controller。
- Configuration Compiler。
- API。
- 多租户和权限。
Data Plane
数据平面,负责实际流量转发。
MVP 使用 sing-box,但系统抽象不绑定 sing-box。
Node
加入 OrbitMesh 的主机、设备、VPS、NAS 或托管节点。
Edge Runtime
Node 侧运行时,负责:
- 拉取 Desired State。
- 应用 Runtime Configuration。
- 管理 Runtime。
- 上报状态和指标。
Capability
产品能力抽象:
- Traffic。
- Mesh。
- Gateway。
- Tunnel。
Traffic Role
Traffic Capability 内部角色:
traffic.entry。traffic.exit。traffic.relay。traffic.subscription。traffic.route。
Runtime Plugin
具体网络软件适配层,例如:
- sing-box。
- Xray。
- EasyTier。
- Traefik。
- frp。
- NGINX。
- Envoy。
Desired State
控制平面声明的期望状态。
示例:
kind: RuntimeDesiredState
node: tencent-hk
capabilities:
- capability: traffic
role: traffic.entry
runtimeBindings:
- runtime: sing-box
capabilityRole: traffic.entry
Actual State
Edge Runtime 实际上报的运行状态。
Reconciler
持续比较 Desired State 和 Actual State,并推动实际状态收敛。
3. 资源模型
OrbitMesh 采用资源化建模:
Tenant
User
Membership
Node
EdgeRuntime
CapabilityBinding
RuntimeBinding
Endpoint
Domain
Certificate
Subscription
TrafficPolicy
DesiredState
RuntimeConfiguration
HealthCheck
UsageRecord
AuditEvent
4. 控制循环
Desired State
|
v
Controller / Reconciler
|
v
Runtime Configuration
|
v
Edge Runtime
|
v
Actual State
|
v
Status Update
5. 架构原则
- Control Plane 声明期望。
- Edge Runtime 执行期望。
- Runtime Adapter 适配不同数据平面。
- Traffic Policy Engine 只输出策略结果,不直接生成 Runtime 配置。
- Configuration Compiler 负责从平台模型编译到 Runtime 配置。
- Health Engine 为 Traffic Policy Engine 提供信号。
- Observability 覆盖控制流和数据流。
6. 开发约定
代码命名建议:
NodeEdgeRuntimeCapabilityBindingRuntimeBindingEndpointSubscriptionTrafficPolicyRuntimeAdapterConfigurationCompilerDesiredStateRuntimeConfiguration
数据库约定:
- role 使用
traffic.entry、traffic.exit等 capability role。 - runtime-specific 配置只存在于编译结果中。
Gateway只用于 Gateway Capability,不作为所有 Node 的通用名称。
API 约定:
- Node resource 使用
/nodes。 - Subscription resource 使用
/subscriptions。 - Runtime binding 使用
/runtime-bindings。 - Capability binding 使用
/capability-bindings。