Kubernetes Pod调度策略详解:亲和性、污点与拓扑分布约束

K8S学习指南(45)-k8s调度之拓扑分布TopologySpreadConstraints TopologySpreadConstraints是K8s中一种用于调整Pod在集群中分布的机制。它允许我们定义一组规则,指导调度器确保Pod在各个拓扑域(Topology Domain)中得到均匀分布。拓扑域可以是节点、机架、区域等,这有助于提高应用程序的可用性和鲁棒性。将同一应用程序的Pod分散在不同节点、机架或区域,以防止单一点故障引起的影响。在集群中均匀分布Pod,以确保各个节点的资源利用率相对平衡,提高整体性能。 阅读详情

Kubernetes Pod调度策略详解:亲和性、污点与拓扑分布约束

一、从"默认调度"到"精准编排"的进阶路径

Kubernetes默认调度器基于资源请求的简单匹配,在单集群单可用区场景下足够使用。然而当业务要求多可用区容灾、GPU节点专用、前端服务与后端服务反亲和部署时,默认调度器的行为无法满足生产级需求。本文从nodeAffinity、podAffinity/podAntiAffinity出发,深入Taints与Tolerations的组合使用,最后解析topologySpreadConstraints在多可用区部署中的核心作用,覆盖调度优先级与抢占机制。

核心命题:Pod调度不是随机分配,而是受多维约束驱动的精准编排。

二、底层机制与原理深度剖析

2.1 调度器的约束评估流程

flowchart TD
    A[新Pod进入调度队列] --> B[过滤阶段 Filter]
    B --> C{节点是否满足硬约束?}
    C -->|不满足| D[节点被排除]
    C -->|满足| E[评分阶段 Score]
    
    B --> B1[PodFitResources: 资源充足性]
    B --> B2[PodFitTaints: 污点容忍性]
    B --> B3[nodeAffinity: 节点亲和性硬约束]
    B --> B4[podAntiAffinity: Pod反亲和硬约束]
    
    E --> E1[节点亲和性权重评分]
    E --> E2[podAffinity偏好评分]
    E --> E3[拓扑分布均衡评分]
    E --> E4[资源均衡评分]
    
    E --> F[选择最高分节点]
    F --> G[绑定Pod到节点]
    G --> H[绑定失败?]
    H -->|是| I[触发抢占 Preemption]
    I --> J[驱逐低优先级Pod]
    J --> F
    
    style D fill:#f66,stroke:#333
    style I fill:#fc9,stroke:#333

调度器的两阶段机制:

  • Filter阶段:硬约束过滤,不符合条件的节点直接排除,不参与后续评分
  • Score阶段:软约束评分,对通过过滤的节点按权重计算得分,选择最高分节点

关键理解:硬约束(requiredDuringScheduling)是"必须满足"的条件,软约束(preferredDuringScheduling)是"尽量满足"的偏好。二者在同一规则中可共存,但硬约束的优先级绝对高于软约束。

2.2 三类亲和性策略对比

策略类型作用对象硬约束转移语义典型场景
nodeAffinity节点标签required/preferredPod→NodeGPU节点专用、SSD节点偏好
podAffinity已调度Pod标签required/preferredPod→Pod(同域)前端与缓存同节点部署
podAntiAffinity已调度Pod标签required/preferredPod→Pod(异域)同服务Pod分散到不同节点

podAntiAffinity的硬约束是最危险的配置:若集群节点数少于反亲和规则的topologyKey域数,Pod将无法调度。例如3节点集群配置了topologyKey: kubernetes.io/hostname的硬约束反亲和,第4个同标签Pod将永远处于Pending状态。

2.3 Taints与Tolerations的组合机制

污点(Taint)标记节点排斥Pod,容忍(Toleration)声明Pod可以容忍特定污点。二者是反向匹配逻辑:

节点Taint: key=value:Effect
PodToleration: key=value:Operator:Effect

三种Effect的语义差异:

  • NoSchedule:仅影响新Pod调度,已调度Pod不受影响
  • PreferNoSchedule:软约束版本,调度器尽量避开但非强制
  • NoExecute:影响调度+驱逐已运行Pod(最严格的排斥)

NoExecute的驱逐行为可配合tolerationSeconds实现优雅退避:Pod在污点生效后等待指定秒数再被驱逐,适用于节点维护场景的渐进式迁移。

2.4 topologySpreadConstraints详解

flowchart LR
    subgraph 可用区A
        N1[Node1: Pod=3]
        N2[Node2: Pod=2]
    end
    subgraph 可用区B
        N3[Node3: Pod=1]
        N4[Node4: Pod=0]
    end
    
    A[新Pod调度] --> B{拓扑分布检查}
    B -->|maxSkew=2| C[当前skew=3-1=2, 允许]
    B -->|maxSkew=1| D[当前skew=2, 超限→必须调度到B区]
    
    style D fill:#6f6,stroke:#333
    style C fill:#fc9,stroke:#333

topologySpreadConstraints的核心参数:

  • maxSkew:允许的最大分布偏差(域间Pod数量差的最大值)
  • topologyKey:域的划分键(如topology.kubernetes.io/zone划分可用区)
  • whenUnsatisfiable:DoNotSchedule硬约束或ScheduleAnyway软约束
  • labelSelector:匹配需要均衡分布的Pod集合

当whenUnsatisfiable: DoNotSchedule与maxSkew: 1组合使用时,调度器强制每个可用区的Pod数量差不超过1,实现严格的多可用区均衡部署。

三、生产级代码实现与最佳实践

3.1 多维度调度约束的完整Deployment配置

# 生产级Pod调度约束配置示例
# 场景: 高可用微服务部署,要求多可用区均衡+节点GPU亲和+污点容忍
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ai-inference-service
  namespace: production
spec:
  replicas: 6
  selector:
    matchLabels:
      app: ai-inference
      tier: backend
  template:
    metadata:
      labels:
        app: ai-inference
        tier: backend
    spec:
      # 优先级与抢占配置:高优先级确保关键服务不被驱逐
      priorityClassName: high-priority
      
      # 节点亲和性:硬约束要求GPU节点,软约束偏好SSD节点
      affinity:
        nodeAffinity:
          # 硬约束:必须调度到GPU节点
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: node-type
                    operator: In
                    values:
                      - gpu-a100
                      - gpu-h100
          # 软约束:优先调度到SSD存储节点
          preferredDuringSchedulingIgnoredDuringExecution:
            - weight: 50
              preference:
                matchExpressions:
                  - key: storage-type
                    operator: In
                    values:
                      - ssd-nvme
        
        # Pod反亲和性:同服务Pod分散到不同节点,避免单节点故障影响多实例
        podAntiAffinity:
          # 硬约束:同一节点不允许调度2个同标签Pod
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: app
                    operator: In
                    values:
                      - ai-inference
              topologyKey: kubernetes.io/hostname
          # 软约束:同可用区内尽量分散
          preferredDuringSchedulingIgnoredDuringExecution:
            - weight: 100
              labelSelector:
                matchExpressions:
                  - key: app
                    operator: In
                    values:
                      - ai-inference
              topologyKey: topology.kubernetes.io/zone
      
      # 污点容忍:允许调度到维护中或专用的GPU节点
      tolerations:
        # 容忍GPU专用污点
        - key: dedicated
          operator: Equal
          value: gpu-node
          effect: NoSchedule
        # 容忍节点维护污点,等待300秒后驱逐
        - key: node-maintenance
          operator: Exists
          effect: NoExecute
          tolerationSeconds: 300
      
      # 拓扑分布约束:强制多可用区均衡部署
      topologySpreadConstraints:
        - maxSkew: 1
          topologyKey: topology.kubernetes.io/zone
          whenUnsatisfiable: DoNotSchedule
          labelSelector:
            matchLabels:
              app: ai-inference
          # 最小可用域数:至少2个可用区有Pod
          minDomains: 2
      
      containers:
        - name: inference
          image: ai-inference:v2.3.0
          resources:
            requests:
              cpu: "4"
              memory: "16Gi"
              nvidia.com/gpu: "1"
            limits:
              cpu: "8"
              memory: "32Gi"
              nvidia.com/gpu: "1"

3.2 调度优先级与抢占配置

# 高优先级PriorityClass定义
# 用于关键AI推理服务,抢占低优先级Pod时优先保障
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: high-priority
description: "关键AI推理服务优先级,可抢占batch与dev类型Pod"
value: 1000000        # 优先级数值,越大优先级越高
globalDefault: false   # 不作为全局默认优先级
preemptionPolicy: PreemptLowerPriority  # 允许抢占低优先级Pod
---
# 低优先级PriorityClass:批处理任务,可被高优先级Pod抢占
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: batch-priority
description: "批处理任务优先级,可被高优先级服务抢占"
value: 10000
globalDefault: true    # 全局默认优先级
preemptionPolicy: PreemptLowerPriority

3.3 调度约束验证的自动化检查脚本

#!/bin/bash
# Pod调度约束验证脚本
# 检查当前集群的调度约束是否可能导致Pod无法调度
# 输出: 节点资源余量、污点分布、亲和性冲突检测

set -euo pipefail

echo "===== 1. 节点资源余量检查 ====="
# 列出每个节点的CPU/Memory可分配余量
kubectl get nodes -o custom-columns=\
'NAME:.metadata.name,CPU_ALLOC:.status.allocatable.cpu,\
MEM_ALLOC:.status.allocatable.memory,GPU:.status.allocatable.nvidia\.com/gpu'

echo ""
echo "===== 2. 污点分布检查 ====="
# 列出所有节点的污点,确认GPU节点污点是否正确设置
kubectl get nodes -o json | jq -r '.items[] | 
  "\(.metadata.name): \(.spec.taints // "无污点")"'

echo ""
echo "===== 3. Pod反亲和性冲突检测 ====="
# 检查是否存在因硬约束反亲和导致Pending的Pod
pending_pods=$(kubectl get pods --all-namespaces \
  --field-selector status.phase=Pending -o name)

if [ -n "$pending_pods" ]; then
    echo "发现Pending Pod,检查调度失败原因:"
    for pod in $pending_pods; do
        echo "--- $pod ---"
        kubectl describe $pod | grep -A 10 "Events:" || true
        kubectl describe $pod | grep -i "Insufficient\|nodeAffinity\|taint" || true
    done
else
    echo "无Pending Pod,调度约束配置正常"
fi

echo ""
echo "===== 4. 拓扑分布均衡度检查 ====="
# 检查指定标签Pod在可用区的分布情况
app_label="app=ai-inference"
echo "Pod分布(按可用区):"
kubectl get pods -l $app_label -o json | jq -r '
  .items | group_by(.spec.nodeName) | 
  .[] | "\(.[0].spec.nodeName): \(length) pods"
'

四、边界分析与架构权衡

4.1 硬约束反亲和的"死锁"边界

当硬约束podAntiAffinity的topologyKey设为kubernetes.io/hostname时,集群节点数决定了同标签Pod的最大可调度数量。3节点集群最多调度3个同标签Pod,第4个必然Pending。解决方案有两种:

  • 改用软约束反亲和(preferredDuringScheduling),超出节点数时降级为同节点部署
  • 预估集群规模,确保节点数≥replicas(在扩缩容场景下需同步调整)

4.2 topologySpreadConstraints与podAntiAffinity的冲突

二者看似都在做"分散部署",但语义不同:

  • podAntiAffinity禁止同域共存(二元判定:允许/禁止)
  • topologySpreadConstraints控制域间均衡(数值判定:偏差是否在maxSkew内)

当同时配置时,调度器先执行AntiAffinity的硬约束过滤,再在通过过滤的节点上执行topologySpread的均衡评分。若AntiAffinity已将可用节点限制到2个,而topologySpread要求3个域均衡,后者将无法生效。

4.3 抢占的副作用边界

抢占不是"安全操作"——被驱逐的Pod需要优雅终止(terminationGracePeriodSeconds),期间占用资源不释放。若多个高优先级Pod同时触发抢占,可能出现"抢占链":A抢占B→B抢占C→C无法找到新节点→整体调度效率下降。生产环境中建议:

  • 控制高优先级PriorityClass的数量(不超过3个层级)
  • 为被抢占Pod设置合理的优雅终止时间(30-60s)
  • 监控抢占事件频率,超过阈值时告警

五、总结

Kubernetes的Pod调度策略从亲和性、污点到拓扑分布约束,构成了一个多维约束求解系统。每个约束维度都有硬/软两种强度,硬约束是"不可违反的底线",软约束是"尽力满足的偏好"。生产级配置的关键在于理解约束间的交互逻辑——AntiAffinity的硬约束可能限制topologySpread的生效范围,污点的NoExecute可能触发与优先级抢占的冲突。调度策略的配置不是叠加越多越好,而是在满足业务需求的前提下尽量简化约束维度,减少调度器的求解空间,从而提升调度效率与集群稳定性。

Kuboard更改服务运行节点:从nodeSelector到污点容忍,一次讲透 在Kubernetes集群运维中,控制Pod运行在哪些节点上,是保障服务性能与高可用的关键基础能力。节点调度并非直接“拖拽”Pod,而是通过声明调度规则,让调度器依据标签、亲和性、污点与容忍度等条件自动决策。nodeSelector提供最简单的标签精确匹配,节点亲和性支持更复杂的逻辑表达,而污点与容忍度则实现了专用节点的隔离与准入控制。这些机制在生产环境中常用于硬件差异化分配、数据库独占节点、大促流量打散等场景。理解这些基础概念后,即便不熟悉命令行,也能借助Kuboard的可视化界面或YAML视图,轻松修改 阅读详情

相关推荐

k8s中Pod和Node的故事(1):过滤、打分、亲和性和拓扑分布

亲和性与反亲和性是 Kubernetes 调度系统的 “

甘信的博客 1120

云原生Kubernetes:pod亲和性与反亲和性

批量删除之前的pod myapp10-myapp14,并创建pod myapp10-myapp14done。

cronaldo91的博客 2329

【云原生技术】在 Kubernetes 中,调度策略详细介绍

1. 调度策略的主要组成部分a. Affinity(亲和性)b. Taints and Tolerations(污点和容忍)c. Node Selector(节点选择器)d. Topology Spread Constraints(拓扑分布约束)2. 调度策略配置示例3. 其他调度相关配置a. 资源请求和限制b. 预留策略4. 调度器的工作流程5. 小结在 Kubernetes 中,调度策略负责将 Pods 放置到集群中的合适节点上。

weixin_46453070的博客 2189

Kubernetes基础(二十八)-K8S调度之拓扑分布TopologySpreadConstraints

TopologySpreadConstraints是K8s中一种用于调整Pod在集群中分布的机制。它允许用户定义一组规则,指导调度器确保Pod在各个拓扑域(Topology Domain)中得到均匀分布。拓扑域可以是节点、机架、区域等,这有助于提高应用程序的可用性和鲁棒性。将同一应用程序的Pod分散在不同节点、机架或区域,以防止单一点故障引起的影响。在集群中均匀分布Pod,以确保各个节点的资源利用率相对平衡,提高整体性能。

sre救赎之路 2928

逆向解析喜马拉雅新版xm-sign算法:从dws.1.6.8.js到签名生成

本文详细解析了喜马拉雅新版xm-sign算法的逆向破解方法。通过定位核心JS文件dws.1.6.8.js,构建本地Node.js模拟执行环境,并解密关键参数cid与appKey,最终实现签名算法的本地化稳定生成,为数据采集提供可靠解决方案。

weixin_29250403的博客 207

Avalonia使用CefNet 实现web-browsers(基于CentOS8 Arm64架构)

Avalonia使用CefNet 实现web-browsers(基于CentOS8 Arm64架构)

confused_kitten的博客 3795

实战:k8s之拓扑分布约束-2022.2.19

目录 文章目录目录实验环境实验软件1、Pod 拓扑分布约束2、使用规范3、单个拓扑约束4、多个拓扑约束5、与NodeSelector /NodeAffinity一起使用6、集群默认约束7、课后习题???? 实战演示:用拓扑分布约束来扩展daemonset功能(测试成功)关于我最后 实验环境 实验环境: 1、win10,vmwrokstation虚机; 2、k8s集群:3台centos7.6 1810虚机,1个master节点,2个node节点 k8s version:v1.22.2 contai

weixin_39246554的博客 1973

【Mac+CLion+STM32+JLink】从零到一:在macOS上构建高效STM32开发与调试工作流

本文详细介绍了在macOS上使用CLion、STM32CubeMX和JLink搭建高效STM32开发与调试工作流的完整指南。从环境准备、CLion深度配置到STM32CubeMX工程实战,再到JLink烧录避坑和串口调试技巧,帮助开发者快速掌握Mac平台下的嵌入式开发全流程。

weixin_28278377的博客 244

Kubernetes Pod 反亲和:不要把同一模型的副本都放在一个节点 — 方向2

Pod 反亲和的本质是将故障域分散到不同的物理节点。对于推理服务,节点级反亲和应用是最核心的配置。落地方案:第一步,使用强制同模型副本分布在不同节点。第二步,叠加保持整体分布均衡。第三步,当节点数不足时,降级为,并配套资源不足的告警。基础设施不需要漂亮话,需要的是在一台 GPU 节点宕机后,其他副本还能接住所有推理请求。

m0_50889382的博客 4002

肖特基二极管选型参数,结构原理,工艺与注意问题总结

肖特基二极管(Schottky Diode)是一种特殊的二极管,也被称为肖特基势垒二极管。它是利用金属与半导体接触形成的金属-半导体结原理制成的。与传统的PN结二极管相比,肖特基二极管具有更低的正向压降、更高的开关速度、更高的反向恢复时间以及更好的温度稳定性等特点。本文对肖特基二极管的工作原理,结构特点,工艺流程,选型参数及设计注意事项进行总结。

fydar的博客 800

STM32 IIC温湿度传感器(STH45)实验

精度 ΔRH = ±1.0 %RH, ΔT = ±0.1 °C• 平均电流:0.4 μA,空闲电流:80 nA• I2C FM、CRC 校验和、乘法。I2C 地址。• 专利保护选项 [1]、PTFE 膜和可拆卸保护盖• 工作范围:0 …100 %相对湿度,−40…125 摄氏度• 在冷凝环境中功能齐全• 动力加热器,真正的NIST可追溯性• JEDEC JESD47 认证 • 符合 ISO 17025 : 2017 的传感器专用校准证书,3 点温度校准。

baidu_34971492的博客 3048

二十、Kubernetes基础-15-kubeadm-ha-kubernetes-deployment-guide-05-calico-worker

本文详细介绍了 Calico 高可用网络配置与 Worker 节点管理,相比普通部署的核心优势。

m0_74823507的博客 302

使用MATLAB实现PAC2002轮胎模型的TIR文件解析和模型计算详解

PAC2002轮胎模型是由荷兰TNO公司开发的一种半经验的轮胎模型,用于描述轮胎在不同工况下的力学特性。该模型基于一系列物理和经验参数,通过复杂的数学表达式来模拟轮胎的力学行为,包括纵向力、侧向力、回正力矩等。

qq_38334677的博客 2424

K8s的Pod调度策略详解及实战(Detailed Explanation and Practical Application of Pod Scheduling Strategy for K8s)

在Kubernetes (K8s) 中,Pod调度策略是确保你的应用能够在合适的节点上运行的关键因素。Kubernetes 提供了多种调度策略和配置选项,以适应不同的应用需求和资源限制。本章主要详细介绍Pod的几种常用调度策略,并根据实战操作来加深原理理解,在生产环境也经常使用。

Linux运维老纪的博客 1622

GitLab CI/CD .gitlab-ci.yml 关键词(十一):发布版本 release

本篇文章介绍使用GitLab CI/CD 发布一个版本,对外发布。并填写一些发布的信息。

知无涯 4710

openharmony之启动恢复子系统详解

需求: 添加一个名为my_service的自定义服务步骤1: 创建服务配置],],"env": [步骤2: 添加到主配置],"jobs": ["cmds": [步骤3: 验证配置# ✅ 检查配置格式 jq . /system/etc/init/my_service.cfg # 🔄 重新加载配置 begetctl reload # 📊 验证服务状态 begetctl dump_service my_serviceOpenHarmony init进程的完整生命周期。🔄 三阶段启动模型⚙️ 配置体系。

m0_67505153的博客 590

K8s 的5 种 Pod 调度策略

调度器通过 Kubernetes 的监测(Watch)机制来发现集群中新创建且尚未被调度到节点上的 Pod。调度的主要任务是将Pod分配到集群中的合适的节点上。调度器根据Pod的需求(如CPU、内存、存储等)和节点的资源状况(如可用CPU、内存、节点标签等)来决定Pod部署在哪个节点上。:简单的节点标签匹配调度。亲和性与反亲和性:更灵活的调度控制,基于节点和 Pod 之间的关系进行调度。nodeName:直接指定节点进行调度。Pod 拓扑分布约束:确保 Pod 在集群中的均衡分布,增强高可用性。

qq_21305943的专栏 816

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Kubernetes的Pod调度策略详解及实战操作

调度器通过 Kubernetes 的监测(Watch)机制来发现集群中新创建且尚未被调度到节点上的 Pod。调度的主要任务是将Pod分配到集群中的合适的节点上。调度器根据Pod的需求(如CPU、内存、存储等)和节点的资源状况(如可用CPU、内存、节点标签等)来决定Pod部署在哪个节点上。调度已经在前面文章讲解过了,就不详细展开了。下面就详细介绍一下具体的调度策略:简单的节点标签匹配调度。亲和性与反亲和性:更灵活的调度控制,基于节点和 Pod 之间的关系进行调度。nodeName:直接指定节点进行调度。

qq_21305943的专栏 973

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

k8s中pod的调度策略之pod的亲和性调度与反亲和性调度 一文搞懂 k8s中创建的pod如何调度?

接上文写的Node亲和性调度https://blog.csdn.net/soso678/article/details/144777397。

soso678的博客 2059

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

K8s集群中的Pod调度约束亲和性与反亲和性

Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上。其主要考虑的问题如下:●公平:如何保证每个节点都能被分配资源●资源高效利用:集群所有资源最大化被使用●效率:调度的性能要好,能够尽快地对大批量的 pod 完成调度工作●灵活:允许用户根据自己的需求控制调度的逻辑。

wys_jj的博客 1031

K8s Pod 调度策略与亲和性:从随机分配到精细化编排

K8s 调度策略从粗到细分为污点/容忍、节点亲和、Pod 亲和/反亲和、拓扑分布约束四个层次。落地路线上,建议先用污点/容忍隔离专用节点,再用节点亲和实现就近调度,然后用 Pod 反亲和保证高可用,最后用拓扑分布约束实现精确均衡。关键原则:调度策略是声明式意图,不是命令式指令,给调度器留出灵活空间,避免过度约束导致无法调度。

dicky_zhang3的博客 4729

K8S之运用亲和性设置Pod的调度约束

使用一组亲和性调度规则,指定pod的调度约束。

weixin_40364776的博客 2202

Kubernetes - 节点亲和性与 Pod 亲和性的配置与差异

fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;是否是否是否是否是否需要控制 Pod 部署在哪类节点?使用节点亲和性需要控制 Pod 和其他 Pod 的分布关系?使用 Pod 亲和性/反亲和性不需要特殊调度是否必须?是否必须同节点?preferred + 权重是否要避免扎堆?不配置🎯终极建议90% 的场景。

千淘万漉虽辛苦,吹尽狂沙始到金 6402

Kubernetes:如何实现跨集群节点均匀调度分布Pod(Pod拓扑分布约束)

分享一些 k8s 跨集群节点均匀调度分布Pod 的笔记博文内容涉及:pod 调度 && 拓扑分布约束 简单介绍跨节点均匀分布 pod Demo && 相关配置字段说明多个拓扑分布约束 Demo有冲突拓扑分布约束 Demo理解不足小伙伴帮忙指正纵我不往,子宁不来?——《郑风·子衿》在 k8s 中 通过组件来实现 pod 的调度,所谓调度,即把需要创建的 pod 放到 合适的 node 上,大概流程为,通过对应的调度算法和调度策略。

山河已无恙 2508

【云原生】Kubernetes----POD调度策略

在Kubernetes集群中,Pod是最小的可部署单元,它封装了应用程序及其依赖的运行环境。然而,Pod并不会自行选择在哪个节点上运行,而是由Kubernetes的调度器(kube-scheduler)来负责。本文将深入探讨Kubernetes中的Pod调度机制,包括其工作原理、调度决策的因素以及如何定义Pod的调度策略

hy199707的博客 2431

终极指南:KubeSphere节点亲和性调度与Pod拓扑分布优化

KubeSphere作为面向Kubernetes多云、数据中心和边缘管理的容器平台,提供了强大的调度策略配置能力。本文将详细介绍如何通过节点亲和性、Pod反亲和性及拓扑分布约束实现Pod的精准调度,帮助用户优化集群资源利用率和服务可用性。 ## 一、KubeSphere调度策略核心组件解析 KubeSphere的调度系统构建在Kubernetes原生调度能力之上,通过扩展控制器和自定义资源实现

gitblog_00862的博客 659
上一篇: JVM GC日志分析实战:从GC频率异常定位到内存分配优化
下一篇: AI辅助API文档生成:从Swagger注解到智能化接口说明
Dicky张
博客等级 码龄7年 1万+粉丝 1405原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值