跳到主要内容
约 4 分钟2 张卡

控制平面与数据平面

控制面分发状态,数据面用本地状态处理请求。本文负责两者的故障边界与配置收敛。

1. 面试核心​

先记住这几条,再读正文
  • 控制与执行。 控制面计算路由与策略,数据面执行请求转发。
  • 本地配置。 断连时,有效本地配置可维持已有转发能力。卡 · 控制面
  • 资源发布顺序。 xDS ACK 确认资源校验结果,跨类型资源仍需有序发布。卡 · xDS 确认与资源顺序
  • 新实例就绪。 新实例需有效 bootstrap 与业务配置才能就绪。
  • 陈旧配置。 陈旧配置按资源类型设置期限和到期行为。

2. 控制面​

注册中心、配置中心和 mesh 控制器属于控制面。它们维护资源、生成配置并跟踪分发结果。

业务请求使用本地状态,可减少同步控制面依赖。高风险变更在控制面故障期间暂停。

3. 数据面​

网关、代理与服务进程执行路由和本地保护。它们使用已经验证的配置。

断连后保留有效配置,可以继续访问仍健康的目标。实例地址、权限或证书变化时,旧配置会逐步失效。持续转发能力取决于这些运行条件。

4. 配置分发​

控制面发布资源后,需跟踪各实例的接收与应用状态。完整快照可由应用原子切换。xDS 则按资源类型维护更新和依赖。

发布页面应展示版本分布、ACK/NACK 和离线实例。发送成功只说明消息已发出,收敛需以数据面状态确认。

5. 控制面故障​

短暂断连期间保留有效路由,并记录配置年龄。数据面继续执行本地健康检查与资源保护。

普通路由可在允许的陈旧窗口内继续使用。需要最新撤销状态的操作,应按安全策略拒绝。故障策略按资源划分,避免全系统共用一个开关。

6. 数据面故障​

数据面有独立的容量与故障边界。网关进程、连接池和队列都能成为瓶颈。

设置本地资源上限,并按故障域部署实例。中心限流失效时,本地配额仍需提供保护。具体算法见限流。

7. 陈旧配置​

配置需记录生成时间与允许的陈旧期限。到期行为可以是继续、降级或拒绝。

证书过期、地址回收和权限撤销会改变安全边界。资源 TTL 到期后的移除行为也需演练。直接删除全部路由会导致服务中断。

重连后按协议恢复完整或增量状态。本地持久快照需保护敏感字段。

8. 启动过程​

新实例首次启动缺少已有业务快照。bootstrap 提供控制面地址和连接凭据等最低信息。

获取有效业务配置后,实例才进入就绪状态。控制面不可达时,可信持久快照可作为恢复来源。镜像内的初始配置需有更新和过期策略。

9. 故障演练​

分别注入控制面断连、错误资源与代理过载。观察已有请求、配置年龄和新实例启动结果。

恢复后核对版本收敛时间与拒绝原因。独立演练有助于验证各层故障边界。

10. xDS 确认与资源顺序​

xDS v3 的版本按资源类型和管理服务区分。SotW ACK 带回接受的 version_info。response_nonce 对应当前流中的具体响应。

ACK 表示响应中的资源分别通过校验。它并不保证跨资源类型已完成原子切换。NACK 包含错误详情,也需检查资源实际应用状态。

路由从集群 X 切到 Y 时,先发布 Y 的集群与端点。等待其就绪,再将路由改到 Y,最后移除 X。否则路由会暂时指向尚不存在的集群。

ADS 将多类资源放在同一流中,以协调更新顺序。各资源类型仍有自己的版本与确认。版本值按协议处理,客户端无需对字符串作大小排序。

11. 常见问题​

11.1 本地快照与控制面高可用​

本地快照减少每次转发的远程依赖。控制面多副本仍会遇到局部断网和更新错误。因此,运行中的数据面仍需保存有效状态。

11.2 最后有效配置的使用期限​

12 · 面试题卡片​

12.1 治理控制面故障时,为什么已有调用仍应继续​

出现公司:美团、阿里巴巴

考察重点

  • 理解控制面生成状态与数据面执行状态的分工。
  • 理解最后有效配置、版本 ACK/NACK 和陈旧边界。
  • 理解启动、运行和安全策略的不同降级方式。

相关内容:控制面至故障演练。

参考回答

数据面使用本地有效配置,因此可跨越控制面的短暂断连。

已有目标仍健康且配置有效时,请求可以继续。断连期间记录配置年龄,并保留本地健康检查。

资源到期按各自策略处理。新实例缺少配置时保持未就绪。控制面恢复后核对实际应用状态。xDS 更新还需按资源依赖安排顺序。

12.2 xDS 收到 ACK 后,能立即删除旧集群吗?​

出现公司:暂无已核验的公开来源(本站自测)

考察重点:资源类型、ACK 范围与更新顺序。

相关内容:xDS 确认与资源顺序。

参考回答

确认新集群可用、路由已切换且旧引用已解除后,才能删除旧集群。

单次 xDS ACK 只确认对应响应的资源校验,无法说明跨资源切换已经完成。发布顺序应是准备新集群和端点、更新路由,最后删除旧集群。

13. 参考资料​