跳转到正文

网络域

当同一任务的 Pod 分布在多个数据平面集群时,可以选择网络域(Domain)为它们分配虚拟 IP,并建立 RLark 管理的跨集群转发路径。

为跨集群任务选择 Domain

Job 选择 Domain 后,该名称会传递给 Task 和 Pod。RLark 会从 Domain 的 CIDR 中分配虚拟 IP,并向有相关 Pod 的数据平面同步路由和证书信息。

text
Domain(名称 + CIDR)
  ├─ status.ipAllocations:虚拟 IP 与 Pod 的分配记录
  └─ DomainPeer:同一 Domain 在各数据平面的路由和证书信息

同一数据平面内的流量通过目标 Pod 的本地 IP 转发;跨数据平面的流量通过 Server 方向的 SSH 通道转发。Pod 内的网络 Sidecar 使用 TUN 和用户态网络栈处理发往 Domain 虚拟网段的流量。

确认 Domain 是否适合任务

Domain 可以提供:

  • 从指定 CIDR 为相关 Pod 分配虚拟 IP;
  • 向相关数据平面同步同一 Domain 下的 Pod 位置和本地 IP;
  • 使用 Domain 证书标识跨集群代理连接;
  • 在网络组件和通道正常时,按 Pod 名称或虚拟 IP 转发流量。

Domain 不会替任务完成以下工作:

  • 创建 Kubernetes DNS 记录、提供 Service 负载均衡或发现业务端口;
  • 放行任意端口、协议或容器网络策略;
  • 选择 RLinf 的 RLINF_COMM_NET_DEVICES
  • 保证云边链路的延迟、带宽、抖动、重连时间或 SLA;
  • 在不同 Domain 之间建立用户可配置的对等关系。DomainPeer 是同一 Domain 在一个数据平面中的同步资源。

多网卡环境中,需要根据容器内实际接口设置 RLINF_COMM_NET_DEVICES,并在任务启动后验证所选接口可以连通其他 Worker。

选择 Domain 后仍要验证连通性

创建任务时只会保存 Domain 名称,不会执行跨集群预检。提交前,请平台管理员确认 CIDR 不与现有网络重叠,各数据平面的 Agent、网络 Sidecar、NodeServer、证书链和 SSH 通道均已就绪,并用非生产工作负载验证双向连接、目标端口和故障恢复。无法完成这些检查时,不要提交跨集群或真机任务。

固定并验证 Server SSH 主机公钥

生产环境必须配置正确的 Server SSH 主机公钥。主机公钥为空或无法解析时,Agent 可能在未校验主机密钥的情况下建立连接;仅看到隧道连接成功,不能确认对端身份。

验证虚拟 IP 和业务端口

  1. 在管理后台确认 Domain 名称和 CIDR,并记录 IP 分配。
  2. 在 Job 详情中确认每个 Worker 都使用预期 Domain。没有虚拟 IP 时,先检查 Pod 是否已创建并完成状态同步。
  3. 在获授权的诊断容器中,从源 Worker 连接目标虚拟 IP 的指定业务端口;不要扫描整个 CIDR。
  4. 完成双向测试,并记录源与目标 Worker、集群、Domain、虚拟 IP、本地 IP、时间和最小失败请求。
  5. RLinf 在多网卡节点通信异常时,核对容器内 RLINF_COMM_NET_DEVICES 是否指向可互达接口。

排查时依次区分:Pod 是否运行、Domain/IP 是否完成协调、同数据平面代理是否可达、跨数据面 SSH 通道是否可用。仍无法定位时,将记录交给平台管理员检查 DomainPeer、Agent 和 Server 通道。

管理员操作参见创建与删除网络域查看 IP 分配