大数据运维实战指南:资源调度框架YARN/K8s深度解析(第四篇)

大数据运维实战指南:资源调度框架YARN/K8s深度解析(第四篇)

系列文章目录

  1. 第一篇:大数据运维概述与核心技能体系
  2. 第二篇:Hadoop生态体系与集群部署实战
  3. 第三篇:分布式存储系统运维与优化
  4. 第四篇:资源调度框架YARN/K8s深度解析
  5. 第五篇:实时计算框架Flink/Spark运维指南
  6. 第六篇:大数据监控体系与自动化运维
  7. 第七篇:云原生时代的大数据运维实践
  8. 第八篇:数据安全与合规性管理
  9. 第九篇:性能调优与故障排查案例集
  10. 第十篇:大数据运维职业发展路径

第四篇:资源调度框架YARN/K8s深度解析

一、核心架构对比分析(新增多维度对比矩阵)

1.1 调度机制深度解析
YARN
K8s
资源请求
调度器类型
Capacity Scheduler
Kube-Scheduler
队列级资源隔离
静态资源分配
Pod优先级机制
动态资源抢占

对比矩阵

维度 YARN Capacity Scheduler K8s Default Scheduler Volcano高性能调度器[[9]]
调度粒度 Container(毫秒级) Pod(秒级) Job级(分钟级)
资源隔离机制 CGroups(计算资源) CGroups+网络命名空间 细粒度CPU/MEM隔离
多租户支持 队列配额(硬/软限制) 命名空间+ResourceQuota 基于QoS的混合调度[[6]]
混部能力 支持离在线混部[[10]] 原生不支持,需扩展 原生支持GPU+CPU混部
弹性伸缩支持 通过Fair Scheduler动态调整 HPA+Cluster Autoscaler[[8]] 基于负载预测的弹性扩缩

1.2 资源隔离技术实现

控制面隔离

  • YARN:通过yarn.scheduler.capacity.root.<queue>.maximum-capacity控制队列资源上限[[6]]
  • K8s:使用ResourceQuota限制命名空间的CPU/MEM配额:
    apiVersion: v1
    kind: ResourceQuota
    metadata:
      name: compute-resources
    spec:
      hard:
        requests.cpu: "10"
        requests.memory: "20Gi"
        limits.cpu: "15"
        limits.memory: "30Gi"
    

数据面隔离

  • CGroups层级结构
    # 查看Pod的CGroups配置
    cat /sys/fs/cgroup/cpu/kubepods/besteffort/pod.../cpu.cfs_quota_us
    
  • 网络隔离
    Kubernetes通过CNI插件实现Pod间网络隔离,如Calico的Policy规则:
    apiVersion: projectcalico.org/v3
    kind: NetworkPolicy
    metadata:
      name: deny-all
    spec:
      selector: app=web
      types:
      - Ingress
      - Egress
      ingress:
      - action: Deny
        protocol: TCP
        source:
          selector: app=backend
      egress:
      - action: Allow
        protocol: U
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全息架构师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值