深入 Kubernetes 的无人区-蚂蚁金服双十一的调度系统
深入 Kubernetes 的“无人区” —— 蚂蚁金服双十一的调度系统 曹寅2/19 一、蚂蚁金服的Kubernetes现状 二、双十一Kubernetes实践 三、展望未来迎接挑战 目 录 contents 目录3/19 一、蚂蚁金服的Kubernetes现状 Part 1:4/19 发展历程与落地规模 Part 1:蚂蚁金服的Kubernetes现状 平台研发 灰度验证 Pods业务 6/19 统一资源调度架构 Part 1:蚂蚁金服的Kubernetes现状 非云 资源 云化 资源 基础 服务 蚂蚁 k8s 核心 CRI Kubernetes API Server 极速交付 分时复用 弹性容量 资源画像 规模化调度 高可用容灾 可视化 服务 Cluster Control Panel 在线应用 计算型混部任务 CSI CNI Device 资源分时调度 Part 2:双十一 Kubernetes 实践 快速腾挪的问题 1.实例上下线需要预热 2. 腾挪耗时不可控 3. 大规模腾挪的稳定性技术风险 9/19 资源分时链路切换 Part 2:资源分时调度 Kubernetes Node 分时调度 Agent Pod 资源 Node 分时调度 Agent Pod 资源 Node 分时调度 Agent0 码力 | 19 页 | 2.18 MB | 5 月前3经典算法与人工智能在外卖物流调度中的应用
经典算法与深度学习 在外卖物流调度中的应用 SPEAKER / 徐明泉 百度外卖首席架构师 引言:外卖配送的背后 2 引言:外卖订单调度系统要考虑的因素 3 订单相关 骑士相关 • 商户、用户位置 • 用户期望时间 • 预计出餐时间.. • 现有订单的配送路线 • 新增订单后配送路线的改变情况 • 历史取送餐速度 • 完成每个订单的预计时间 • 熟悉的区域 • 配送工具 外卖订单的智能 调度系统 一. 智能调度系统的 大数据分析监控 二. 智能调度系统中 的人工智能 三. 提纲 5 外卖订单的智能 调度系统 一. 智能调度系统的 大数据分析监控 二. 智能调度系统中 的人工智能 三. 外卖订单智能调度系统发展历程 6 人工派单模式 • 调度员根据订单地址和骑士 位置来进行订单分配 • 人力调度派单峰值为每人 800单/天 调度 系统 3 整体最优分配 调度 系统 4.0 深度学习智能模式 • 出餐时间估算更准,缩短 骑士到店等待时间,节省 运力,提升用户等餐体验 出餐时间预估 深度学习智能 调度 系统 2.0 系统派单模式 • 系统综合考虑配送距离、 骑士运力、期望送达时间 等因素来自动派单 配送距离 期望送达时间 骑士运力 订单相似度 调度 系统 1.0 外卖订单智能调度要解决的核心问题 7 调度系统算法0 码力 | 28 页 | 6.86 MB | 1 年前3OpenShift Container Platform 4.9 节点
their respective owners. 摘要 摘要 本文提供有关在集群中配置和管理节点、Pod 和容器的说明。它还提供有关配置 Pod 调度和放置、 使用作业(job)和 DaemonSet 来自动执行操作,以及确保集群保持高效性的其他任务信息。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.9. 在 POD 调度决策中纳入 POD 优先级 2.9.1. 了解 pod 优先级 2.9.1.1. Pod 优先级类 2.9.1.2. Pod 优先级名称 2.9.2. 了解 pod 抢占 2.9.2.1. 非抢占优先级类(技术预览) 2.9.2.2. Pod 抢占和其他调度程序设置 2.9.2.3. 安全终止被抢占的 pod 2.9.3. 配置优先级和抢占 2.10. 使用节点选择器将 POD 放置( 放置(调 调度) 度) 3.1. 使用调度程序控制 POD 放置 3.1.1. 调度程序用例 3.1.1.1. 基础架构拓扑级别 3.1.1.2. 关联性 3.1.1.3. 反关联性 3.2. 配置默认调度程序以控制 POD 放置 3.2.1. 了解默认调度 3.2.1.1. 了解调度程序策略 3.2.2. 创建调度程序策略文件 3.2.3. 修改调度程序策略 51 510 码力 | 374 页 | 3.80 MB | 1 年前3Volcano加速金融行业大数据分析平台云原生化改造的应用实践
大数据平台云原生面临的挑战 传统大数据平台云原生化改造成为必然趋势 大数据分析、人工智能等批量计算场景深度应用于金融场景 作业管理缺失 • Pod级别调度,无法感知上层应用 • 缺少作业概念、缺少完善的生命周期的管理 • 缺少任务依赖、作业依赖支持 调度策略局限 • 不支持Gang-scheduling、Fair-share scheduling • 不支持多场景的Resource reservation,backfill topology based scheduling 领域框架支持不足 • 1:1的operator部署运维复杂 • 不同框架对作业管理、并行计算等要求不通 • 计算密集,资源波动大,需要高级调度能力 资源规划复用、异构计算支持不足 • 缺少队列概念 • 不支持集群资源的动态规划以及资源复用 • 对异构资源支持不足 传统服务 大数据 人工智能 云原生大数据平台 大数据、AI等批量计算场景 Pytorch, MPI, Horovod, Tensorflow、Spark等。 2. 丰富的高阶调度策略 公平调度、任务拓扑调度、基于SLA调度、作业抢占、回填、弹性调度、 混部等。 3. 细粒度的资源管理 提供作业队列,队列资源预留、队列容量管理、多租户的动态资源共享。 4. 性能优化和异构资源管理 调度性能优化,并结合 Kubernetes 提供扩展性、吞吐、网络、运行时的 多项优化,异构硬件支持x860 码力 | 18 页 | 1.82 MB | 1 年前3OpenShift Container Platform 4.6 节点
their respective owners. 摘要 摘要 本文提供有关在集群中配置和管理节点、Pod 和容器的说明。它还提供有关配置 Pod 调度和放置、 使用作业(job)和 DaemonSet 来自动执行操作,以及确保集群保持高效性的其他任务信息。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 启用设备管理器 2.9. 在 POD 调度决策中纳入 POD 优先级 2.9.1. 了解 pod 优先级 2.9.1.1. Pod 优先级类 2.9.1.2. Pod 优先级名称 2.9.2. 了解 pod 抢占 2.9.2.1. Pod 抢占和其他调度程序设置 2.9.2.2. 安全终止被抢占的 pod 2.9.3. 配置优先级和抢占 2.10. 使用节点选择器将 POD 放置到特定节点 放置( 放置(调 调度) 度) 3.1. 使用调度程序控制 POD 放置 3.1.1. 调度程序用例 3.1.1.1. 基础架构拓扑级别 3.1.1.2. 关联性 3.1.1.3. 反关联性 3.2. 配置默认调度程序以控制 POD 放置 3.2.1. 了解默认调度 3.2.1.1. 了解调度程序策略 3.2.2. 创建调度程序策略文件 3.2.3. 修改调度程序策略 3.20 码力 | 404 页 | 3.60 MB | 1 年前3OpenShift Container Platform 4.14 Operator
OPERATOR 目录 2.7. 多租户集群中的 OPERATOR 2.8. CRD 第 第 3 章 章 用 用户 户任 任务 务 3.1. 从已安装的 OPERATOR 创建应用程序 3.2. 在命名空间中安装 OPERATOR 第 第 4 章 章 管理 管理员 员任 任务 务 4.1. 在集群中添加 OPERATOR 4.2. 更新安装的 OPERATOR 4.3. 从集群中删除 OPERATOR OPERATOR 条件 4.8. 允许非集群管理员安装 OPERATOR 4.9. 管理自定义目录 4.10. 在受限网络中使用 OPERATOR LIFECYCLE MANAGER 4.11. 目录源 POD 调度 4.12. 管理平台 OPERATOR (技术预览) 4.13. TROUBLESHOOTING OPERATOR 的问题 第 第 5 章 章 开 开发 发 OPERATOR 5.1. 关于 OPERATOR 实施并自动执行常见的第 1 天操作,如安装和配置以及第 2 天操作,如自动缩放和缩减并创 建备份。所有这些活动均位于集群中运行的一个软件中。 1.1. 对于开发人员 作为开发人员,您可以执行以下 Operator 任务: 安装 Operator SDK CLI。 创建 Go-based Operators, Ansible-based Operators, Java-based Operators, 和 Helm-based0 码力 | 423 页 | 4.26 MB | 1 年前3OpenShift Container Platform 4.10 可伸缩性和性能
6 章 章 调 调度 度 NUMA 感知工作 感知工作负载 负载 6.1. 关于 NUMA 感知调度 6.2. 安装 NUMA RESOURCES OPERATOR 6.3. 创建 NUMARESOURCESOPERATOR 自定义资源 6.4. 部署 NUMA 感知辅助 POD 调度程序 6.5. 使用 NUMA 感知调度程序调度工作负载 6.6. 对 NUMA 感知调度进行故障排除 5 OpenShift Container Platform 节点配置文件包含重要的选项。例如,控制可以为节点调度的最大 pod 数 量的两个参数: podsPerCore 和 maxPods。 当两个参数都被设置时,其中较小的值限制了节点上的 pod 数量。超过这些值可导致: CPU 使用率增加。 减慢 pod 调度的速度。 根据节点中的内存数量,可能出现内存耗尽的问题。 耗尽 IP 地址池。 资源过量使用,导致用户应用程序性能变差。 除非您需要动态内存大小,否则请不要定义内存气球设备,并确保 libvirt 不会为您创建。将 memballoon 参数作为设备元素的子项包含在您的域配置 XML 文件中。 检查活跃配置集列表: 2.6.6. 调整主机调度程序的 CPU 迁移算法 重要 重要 ... ...0 码力 | 315 页 | 3.19 MB | 1 年前3Kubernetes开源书 - 周立
18-Daemon Set 19-配置最佳实践 20-管理容器的计算资源 21-Kubernetes资源分配 22-将Pod分配到Node 23-容忍与污点 24-Secret 25-Pod优先级和抢占 26-Service 27-Ingress Resources 28-动态⽔平扩容 29-实战:使⽤K8s编排Wordpress博客 2 简介 Kubernetes开源书。不啰嗦了,JUST 01-什么是Kubernetes 5 资源隔离:可预测的应⽤程序性能。 资源利⽤:效率⾼,密度⾼。 为什么我需要Kubernetes,它能⼲啥? 最基本的功能:Kubernetes可在物理机或虚拟机集群上调度和运⾏应⽤容器。然⽽,Kubernetes还允许开发⼈员将物理 机以及虚拟机 “从主机为中⼼的基础设施转移到以容器为中⼼的基础设施”,从⽽提供容器固有的全部优势。 Kubernetes提供了构建以容器为中⼼的开发环境的基础架构。 群(1.11.2) 14 K8s组件 本⽂概述了Kubernetes集群中所需的各种组件。 Master组件 Master组件提供K8s集群的控制⾯板。Master对集群进⾏全局决策(例如调度),以及检测和响应集群事件(例如:当 replication controller所设置的 replicas 不够时,启动⼀个新的Pod)。 Master可在集群中的任意节点上运⾏。然⽽,简单0 码力 | 135 页 | 21.02 MB | 1 年前3OpenShift Container Platform 4.13 虚拟化
于运行和管理虚拟机工作负载以及容器工作负载。 OpenShift Virtualization 通过 Kubernetes 自定义资源添加新对象至 OpenShift Container Platform 集群 中,以启用虚拟化任务。这些任务包括: 创建和管理 Linux 和 Windows 虚拟机 (VM) 在集群中运行 pod 和虚拟机工作负载 通过各种控制台和 CLI 工具连接至虚拟机 导入和克隆现有虚拟机 管理虚拟机上附加的网络接口控制器和存储磁盘 TEKTON-TASKS-OPERATOR tekton-tasks-operator 部署示例管道,显示 OpenShift Pipelines 用于虚拟机的情况。它还部署额外的 OpenShift Pipeline 任务,允许用户从模板创建虚拟机、复制和修改模板,以及创建数据卷。 表 表 2.6. tekton-tasks-operator components OpenShift Container Platform deployment/virt-api 用作所有与虚拟化相关的流的入口点的 HTTP API 服 务器。 deployment/virt-controller 观察创建新虚拟机实例对象并创建对应的 pod。当 pod 调度到某个节点上时,virt-controller 会使用节 点名称更新虚拟机。 第 第 2 章 章 OPENSHIFT VIRTUALIZATION 架 架构 构 13 daemonset/virt-handler0 码力 | 393 页 | 4.53 MB | 1 年前3OpenShift Container Platform 4.10 虚拟化
于运行和管理虚拟机工作负载以及容器工作负载。 OpenShift Virtualization 通过 Kubernetes 自定义资源添加新对象至 OpenShift Container Platform 集群 中,以启用虚拟化任务。这些任务包括: 创建和管理 Linux 和 Windows 虚拟机 通过各种控制台和 CLI 工具连接至虚拟机 导入和克隆现有虚拟机 管理虚拟机上附加的网络接口控制器和存储磁盘 在节点间实时迁移虚拟机 单节点集群没有针对高可用性操作配置,这会导致 OpenShift Virtualization 行为 有显著变化。 现在,为所有 OpenShift Virtualization control plane 组件定义了资源请求和优先级类。 3.3.3. 网络 现在,您可以使用一个 NodeNetworkConfigurationPolicy 清单同时配置多个支持的节点。 现在,附加到 SR-IOV 网络接口的虚拟机不默认支持实时迁移。 spec.volumes.containerDisk.path 字段 的值设置为绝对路径。然后您可以更新 OpenShift Virtualization。 如果单个节点包含超过 50 个镜像,pod 调度可能会在节点间进行平衡。这是因为节点上的镜像 列表默认简写为 50。(BZ#1984442) 作为临时解决方案,您可以通过编辑 KubeletConfig 对象,将 nodeStatusMaxImages0 码力 | 307 页 | 3.45 MB | 1 年前3
共 195 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20