当前位置:首页 > 科研成果库

机房灯亮着,租户却串了网:云计算平台构建里那根看不见的隔离线

2026-10-23 05:09:55小研科研成果库10

去年帮一个朋友看私有云。机房灯亮着,监控一片绿。客户做验收,随手从A租户的虚机里ping了一下B租户的数据库地址。通了。现场安静得有点尴尬。

别笑,真事。云平台构建这件事,外行看控制台,内行看隔离线。你能开虚机、能挂盘、能点按钮创建负载均衡,不等于平台立住了。那根看不见的线要是没画对,后面全是坑。

先别急着买机器,画一张租户网络图

很多团队上来就列服务器清单。CPU多少核,内存多大,交换机几台。清单没错,可它回答不了两个问题:谁和谁能通,以及一台机器挂了,谁跟着疼。

云计算平台构建,我习惯先拆成三层看。物理网络,也就是underlay。租户网络,overlay。还有控制面,负责把“我想让A和B通”翻译成设备上的表项。三层里任何一层偷懒,故障都会以奇怪的方式冒出来。

物理网络像小区道路。overlay像每家每户的门牌和快递柜。控制面是物业系统。你光把路修宽没用。门牌乱贴,快递照样送错。对吧?

私有云平台构建租户VXLAN网络隔离拓扑图私有云平台构建租户VXLAN网络隔离拓扑图

VXLAN这东西不新。把二层帧塞进UDP里,跨三层跑。VNI相当于租户的独立门牌号。问题是,VNI分配、VTEP地址规划、MTU、BGP EVPN路由反射器,这些细活没人爱干。可它们决定租户A的广播包会不会漏到租户B。

我见过一个配置:VLAN和VNI映射表是手工维护的。开始没事。后来租户扩容,运维复制粘贴,改了一半。结果两个租户共用一个VNI。安全组还开着,照样串。为什么?安全组管的是虚机网卡上的规则,管不了底层隧道里的广播域重叠。这俩不是一个层面的事。

所以画图不是形式主义。至少画清楚:租户边界、网关位置、南北向出口、东西向策略点。图一画,很多“神秘故障”自己就露头了。

控制面不是后台管理系统,它会雪崩

有人把云平台的控制面当普通Web后台。加个按钮,调个API,写库。听着简单。可它管着成千上万的虚机、卷、安全组、路由。一个租户删网络,可能触发一串清理任务。任务重试没设计好,消息队列堆成山。然后呢?创建虚机的请求全卡住。

这不是危言耸听。我经历过一次。存储卷删除失败,回调一直重试。API网关线程池被占满。控制台转圈。客户以为云挂了。其实计算节点还活着,虚机也在跑。只是你没法管理它们了。控制面的可用性,和业务虚机的可用性,得分开设计。别把鸡蛋放一个篮子,哪怕这个篮子叫Kubernetes。

怎么做?说人话。幂等。重试要有上限和退避。异步任务要能查状态。关键操作要有审计和补偿。控制面数据库别和业务库混在一起。还有,别让一个租户的批量操作拖垮整个平台。配额、限流、排队,这些词不性感,但救命。

对了,Kubernetes不是万能胶。拿它做云平台的控制面可以,但CRD不是数据库,etcd不是无限容量。对象多了,watch会抖。这个坑,谁踩谁知道。

存储这层,副本数不等于高可用

存储这层也隐蔽。虚机磁盘能读写,验收就过了。可故障域呢?三副本放在同一台物理机的三块盘上。机器电源一掉,三副本一起没。你说冤不冤。

云计算平台构建分布式存储故障域划分示意图云计算平台构建分布式存储故障域划分示意图

Ceph也好,其他分布式存储也好。CRUSH map里的故障域层级,得跟机架、电源、交换机对齐。只写host不够。机架级故障、交换机级故障,得提前想。还有,块存储和对象存储的路径不一样。Kubernetes里通过CSI挂卷,PV回收策略、挂载点残留、多挂载冲突,都是日常。

一个常见误解:副本数高就等于数据安全。不对。副本能扛盘坏,扛不了误删,也扛不了脑裂。快照、备份、跨站点复制,是另一码事。别等删库跑路才想起来。

还有性能。分布式存储的延迟不是线性的。网络抖一下,IO队列就堆。虚机里看着像磁盘慢,其实是网络或OSD忙。排查得从链路、磁盘、CRUSH分布一路看。别上来就加盘。

安全组不是防火墙,别把它当万能锁

安全组很好用。虚机网卡上一挂,规则一写。但它是分布式的,规则一多,匹配就复杂。关键是,安全组通常管东西向流量的一个点,管不了租户间路由泄漏。你要是overlay路由配错,包根本没经过那个点。

所以租户隔离得做多层。身份认证一层。API权限一层。网络策略一层。存储访问一层。每层都假设上一层会出错。这样才稳。分布式防火墙可以做微隔离,但策略要跟着业务标签走。别手工写IP。IP会变,标签稳。

说实话,小规模私有云不一定需要全套SDN。三五十台机器,VLAN加路由也能跑。可你要想清楚边界:租户数量、东西向流量、自动化程度。别为了架构图好看,上一堆自己运维不了的组件。平台构建不是拼图比赛。

边界这事,得提前认怂

云平台构建有个诱惑:什么都自己写。调度器自己写,网络控制器自己写,存储也自己攒。除非你是云厂商,或者规模大到能摊薄研发成本。不然,把力气花在租户模型、配额、审计、故障演练上,回报实在。

混合云也一样。公有云托管省心,但账单和锁定得算。私有云可控,但人力是隐形成本。没有标准答案。只有你团队能不能夜里睡踏实。

回到开头那个ping通的故事。后来查出来,是路由反射器上一条策略漏了。改完,世界安静了。你看,云计算平台构建不玄乎。它是一堆具体的小决定堆出来的。隔离线画清楚,故障域对齐,控制面别雪崩。剩下的,慢慢磨。