【云计算】云主机的亲和性策略(一):快乐旅行团

云主机的亲和性策略》系列,共包含以下文章:

😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 💖💖💖 将激励 🔥 博主输出更多优质内容!!!

云主机的亲和性策略(一):快乐旅行团

本文用「旅行团分车」的比喻来解释云主机组如何实现反亲和性策略,保证同一个组的云主机分散在不同宿主机上。

1.场景设定

目标:一个公司组织 30 名员工(类比 30 台云主机)去春游,为了防止一辆大巴车出事故导致全员受伤,公司要求:

  • ✳️ 同一部门的员工必须分散在不同的大巴车上!(这就是反亲和性)

第一步:创建分组规则(云主机组)

  • 公司 HR 宣布:
    • 本次春游采用 安全分散组 规则!每个部门是一个独立小组,组内成员必须坐不同车辆。
    • 这相当于在云平台创建了一个 反亲和性云主机组,策略类型为 Spread

第二步:员工报名加入小组(云主机加入组)

  • 开发部经理:我们开发部 10 人,加入 "安全分散组"!(相当于创建 10 台云主机时指定加入同一个云主机组)
  • 测试部经理:测试部 8 人,也加入这个组!(其他云主机陆续加入同一组)

第三步:调度员分配车辆(云平台调度器)

调度员(类比云平台调度器)手里有:

  • 空闲大巴列表:10 辆车(类比 10 台宿主机),每辆车有 50 个座位(类比宿主机资源)。
  • 分组规则:同一个部门的员工不能在同一辆车上!

分配过程

  • ✅ 开发部第 1 个员工:随便选一辆车(如 1 号车)坐下
  • ✅ 开发部第 2 个员工:调度员检查 1 号车已有开发部的人 → 禁止上车! 只能选其他车(如 2 号车)
  • ✅ 开发部第 3 个员工:1 号车和 2 号车已有开发部成员 → 只能选 3 号车
  • ...
  • ✅ 测试部第 1 个员工:所有车都无测试部成员 → 可坐任意车(如 1 号车)
  • ✅ 测试部第 2 个员工:1 号车已有测试部的人 → 换 2 号车

最终结果

  • 开发部 10 人 → 分散在 10 辆不同的车上(1人/车)
  • 测试部 8 人 → 分散在 8 辆车上(1人/车)
  • 即使 1 号车抛锚,开发部和测试部各自只损失 1 人!

2.关键角色对应表

春游场景 云计算场景 作用
员工 云主机(VM) 需要被调度的个体
大巴车 宿主机(物理服务器) 承载个体的物理单元
安全分散组 反亲和性云主机组 声明 "组内成员必须分散" 的规则
调度员 云平台调度器 根据规则分配位置
车辆抛锚 宿主机故障 分散部署后,单点故障影响最小化

3.为什么不用其他方法?

  • 1️⃣ 方法一:员工自由选座(无规则)
    • 风险:开发部全员挤上 1 号车 → 车故障则整个部门瘫痪!
    • 类比无策略时云主机扎堆在同一宿主机。
  • 2️⃣ 方法二:贴标签分组(标签选择器)
    • 给每辆车贴标签(如 "红队车 / 蓝队车"),要求员工按标签选车。
    • 问题:员工需自己记住规则,容易出错!(相当于用户需手动管理复杂标签)
  • 3️⃣ 方法三:指定车队(资源池分区)
    • 直接规定:"开发部只能坐 1-5 号车,测试部坐 6-10 号车"。
    • 缺点:如果开发部只有 2 人,却占用 5 辆车 → 浪费座位!(类比资源碎片化)

4.云主机组的核心优势

  • 用户省心:只需说 "加入反亲和组",不用关心底层宿主机在哪。
  • 调度高效:调度员(云平台)自动执行分散逻辑,避免人为错误。
  • 故障隔离:单台宿主机宕机时,组内其他云主机不受影响(如同部门员工在其他车上安然无恙)。

5.现实中的技术彩蛋

  • 如果车辆不够怎么办?
    • → 调度员会拒绝最后几名员工上车:"当前没有符合规则的空车!"(云主机创建失败报错)
  • 能否有人不守规则?
    • → 调度员严格执行规则(硬性反亲和性 ),但也可设置 "尽量遵守,实在不行挤一挤" 模式(软性反亲和性)。

🚀 总结 :云主机组 💻 就像给虚拟机分配 "分散座位" 的智能旅行团规则 🚌,通过 组策略绑定 + 自动化调度,在底层物理故障时保护你的业务不瘫痪!

相关推荐
都给我24 分钟前
可计算存储(Computational Storage)与DPU(Data Processing Unit)的技术特点对比及实际应用场景分析
运维·服务器·网络·云计算
无敌糖果1 小时前
K8S的Pod之initC容器restartPolicy新特性
云原生·容器·kubernetes·pod·restartpolicy·容器重启
程序大爆炸1 小时前
juicefs-csi中pod mount的annotation与label分析
云原生
Cyber4K3 小时前
MySQL--组从复制的详解及功能演练
运维·数据库·mysql·云原生
东风微鸣5 小时前
GitOps:云原生时代的革命性基础设施管理范式
docker·云原生·kubernetes·可观察性
David爱编程6 小时前
Kubernetes NetworkPolicy 实践与策略误区
云原生·容器·kubernetes
程序员瓜叔6 小时前
使用xshell连接远程腾讯云服务器,报错:Xshell Socket error Event: 32 Error: 10053
服务器·云计算·腾讯云
FJW0208146 小时前
Mysql集成技术
linux·mysql·云原生