Kubernetes如何统一编排调度容器应用,K8s集群搭建详细步骤有哪些

这个循环每秒都在执行,即便某个Pod意外崩溃,控制器也会在秒级内重新创建,保证集群状态始终向期望状态收敛。

Pod:调度的最小单元

Kubernetes并不直接调度容器,而是以Pod为最小单位,一个Pod里可以有一个或多个容器,它们共享网络命名空间和存储卷,这种设计意味着调度器只需要决策”这个Pod放哪台节点”,而不必关心内部容器的具体细节。

【尚硅谷】Kubernetes(k8s)入门到实战教程丨全新升级完整版
加载中
【尚硅谷】Kubernetes(k8s)入门到实战教程丨全新升级完整版
88.2万82701.2万
原视频地址

直观理解:Pod是一套房,容器是住在这个套房里的租户,租房时你先选房子位置,租户本身跟着房子走。

Kubernetes调度器工作流程:从调度算法到节点亲和性配置

调度器(kube-scheduler)是整个编排系统的”交通指挥”,它的职责是为每个待调度的Pod寻找一台合适的节点(Node),这个过程分两步:过滤和打分。

过滤阶段:筛掉不合格的节点

调度器首先根据一系列硬性条件剔除不满足要求的节点,常见条件包括:

  • 资源是否足够(CPU、内存、GPU等)
  • 端口是否冲突
  • 是否满足nodeSelector指定的标签
  • 是否容忍节点上的污点
  • 卷是否能在该节点挂载(如云盘绑定地域)

一个Pod声明需要2核CPU、4GB内存,而某节点只剩1核可用,这个节点会直接出局。

打分阶段:在合格者中选出最优解

通过过滤后的节点进入打分环节,Kubernetes内置了多种评分策略,

  • 资源余量:剩余资源多的节点得分高,这有助于负载均衡
  • Pod分布:尽量将同一应用的Pod分散到不同节点,避免单点故障
  • 亲和性偏好:如果配置了软性节点亲和性,匹配的节点会额外加分

最终得分最高的节点被选中,整个过程通常在毫秒级完成。

实操:配置节点亲和性

如果你想让某个应用优先部署到SSD节点的机器上,可以通过nodeAffinity实现:

spec:
  affinity:
    nodeAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
        - weight: 80
          preference:
            matchExpressions:
              - key: disk-type
                operator: In
                values:
                  - ssd

Kubernetes如何统一编排调度容器应用,K8s集群搭建详细步骤有哪些

配置提交后,调度器在打分阶段会给带disk-type=ssd标签的节点加80分,需要注意的是,亲和性属于”优先级”而非”必须”,如果没有匹配节点,Pod仍会被调度到其他机器上。

节点亲和性与反亲和性对比

功能 典型场景 配置方式
节点亲和性 将Pod调度到特定机型或地域 nodeAffinity
Pod间亲和性 让两个服务靠近部署,减少网络延迟 podAffinity
Pod间反亲和性 将同一应用副本分散到不同节点,提升容灾能力 podAntiAffinity

生产环境中,反亲和性的使用频率往往高于亲和性,行业共识认为,同应用多副本部署在同一节点,相当于把鸡蛋放在同一个篮子里,节点故障会直接导致整个应用中招。

Kubernetes生产环境落地:集群节点管理、资源配额与高可用

Kubernetes的编排能力远不止”把Pod放到节点上”这一步,在真实生产环境中,我们同样关注资源配额、滚动更新、自动扩缩容这些运行时行为。

用资源配额保障集群稳定性

如果没有限制,一个异常应用可能耗尽整个集群的内存,Kubernetes通过ResourceQuota和LimitRange提供两层保护:

  • ResourceQuota:以命名空间为单位,限制该空间下所有Pod的资源总和
  • LimitRange:为单个Pod设置默认的request和limit

对于多团队共享集群的场景,资源配额必不可少,搭建Kubernetes集群后,建议在创建命名空间时同步下发配额配置,避免后期出现”一个团队吃垮整个集群”的事故。

高可用部署:从单点到多副本

Kubernetes用Deployment管理无状态应用,滚动更新策略默认

Kubernetes如何统一编排调度容器应用,K8s集群搭建详细步骤有哪些

maxUnavailable=25%、maxSurge=25%,这意味着升级过程中,同时最多有25%的副本不可用,同时最多额外创建25%的临时副本。

默认策略并不适合所有场景,跑在Kubernetes里的数据库或消息队列,通常需要配置PodDisruptionBudget(PDB),确保主动驱逐(如节点维护)时副本数量不低于指定阈值。

apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: mysql-pdb
spec:
  minAvailable: 2
  selector:
    matchLabels:
      app: mysql

这段配置告诉Kubernetes:无论什么原因,保证至少2个MySQL副本在运行,否则不允许驱逐Pod。

自动扩缩容:应对流量高峰

HorizontalPodAutoscaler(HPA)让集群能根据CPU、内存或自定义指标自动调整副本数,它和调度器协同工作:HPA负责”决定改到几个副本”,调度器负责”把新副本放到哪里”。

配置一个基于CPU的HPA:

kubectl autoscale deployment web-server --cpu-percent=70 --min=3 --max=20

当CPU使用率超过70%时,系统会自动扩容,最高20个副本;低于阈值一段时间后自动缩容回最小值3个。

多集群场景下的编排调度策略

单一Kubernetes集群有规模上限,数千节点的规模对etcd的压力、网络插件的复杂度都会陡增,近年来越来越多的企业采用多集群架构,编排调度也随之延伸到集群维度。

多集群调度的核心诉求

  • 隔离环境:开发、测试、生产各用独立集群,互不干扰
  • 跨地域部署:将应用部署到离用户最近的区域,降低访问延迟
  • 容灾切换:某一云可用区整体故障时,流量自动切换到其他集群

常见方案是Karmada或Kubernetes Federation,它们在Kubernetes之上再加一层控制面,负责将应用分发到不同成员集群,并维护每个集群的状态。

比如用Karmada将同一个Deployment下发到两个可用区:

kubectl create -f - &

Kubernetes如何统一编排调度容器应用,K8s集群搭建详细步骤有哪些

lt;<EOF apiVersion: apps/v1 kind: Deployment metadata: name: app-demo labels: app: demo spec: replicas: 4 selector: matchLabels: app: demo template: metadata: labels: app: demo spec: containers: - name: nginx image: nginx:1.25 EOF

配合PropagationPolicy,可以指定”这个Deployment在两个集群各分配2个副本,分别位于北京和上海可用区”,任何一边的故障,都不会影响另一边正常服务。

把编排调度玩明白的关键点

Kubernetes的统一编排调度是一套完整的闭环系统:API Server接收意图,etcd存储状态,控制器纠正偏差,调度器智能分配,Kubelet执行落地,五个组件各司其职,配合Pod、Deployment、HPA、PDB这些资源对象,形成了从部署到运维、从日常管理到故障自愈的完整能力体系。

生产环境落地的关键不只是会用kubectl命令,更要理解每一步背后的选择逻辑:为什么Pod要这样调度、资源配额怎么设、反亲和性要不要加,把这些问题想清楚,Kubernetes才能真正成为省心的编排系统,而不是另一个需要日夜维护的负担。

Kubernetes编排调度常见问题解答

Kubernetes调度器能保证最优调度结果吗?

不能,Kubernetes调度器在过滤和打分阶段使用的是启发式算法,寻找的是”足够好”的节点而非”绝对最优”的节点,集群规模越大,这种近似最优解的差距越明显,如果业务对调度结果有极致的性能要求,可以通过自定义调度器扩展Kubelet的调度策略,或使用拓扑感知调度(Topology Aware Scheduling)来优化流量走向。

为什么集群中有节点处于NotReady状态,但应用没有中断?

这正是Kubernetes编排能力的体现,当节点失联超过默认容忍时间(约40秒)后,节点上的Pod会被标记为Unknown,若Pod由Deployment管理,控制器会在其他健康节点上重新创建副本,实际影响取决于Pod的副本数和反亲和性策略的配置,要想避免单点故障,建议使用topologySpreadConstraints将副本均匀打散到不同可用区。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/641265.html

赞 (0)
容器镜像到底是什么,部署一致性如何保证?
上一篇 2026年9月11日 03:22
K8s里Pod作为调度基础单元是什么,Pod调度策略有哪些?
下一篇 2026年9月11日 03:22

相关推荐

  • CDN如何绑定域名?cdn绑定域名需要配置什么

    CDN绑定域名的核心逻辑是将你的业务域名CNAME记录指向CDN服务商提供的加速节点域名,通过DNS解析将流量引导至全球分布的边缘服务器,从而实现静态资源加速和动态请求优化,很多站长在初次接触内容分发网络时,常被“绑定”这个动作迷惑,以为需要修改服务器底层配置,这主要是一个DNS层面的配置工作,只要正确配置解析……

    2026年5月29日
    3800
  • ui bootstrap cdn地址,bootstrap cdn 最新稳定版

    使用UI Bootstrap CDN是2026年构建响应式Web界面最高效、兼容性最佳的技术方案,它能显著降低首屏加载时间并简化CSS/JS依赖管理,无需本地部署即可实现企业级UI组件库的快速集成,在2026年的前端开发生态中,静态资源加速与模块化构建已成为标配,尽管React、Vue等框架盛行,但Bootst……

    2026年6月2日
    3800
  • 12306 cdn哪里获取,12306 cdn配置方法

    12306官方并未直接提供面向公众的CDN下载服务,其CDN节点由铁路总公司委托给阿里云、腾讯云等主流云服务商部署,普通用户无法直接获取CDN源站数据,仅能通过官方APP或网站间接享受加速服务,12306 CDN架构解析与获取误区官方CDN部署现状在2026年的网络环境下,12306系统的高并发处理能力依赖于分……

    2026年5月28日
    5600
  • 服务器学生优惠只能买一次吗?学生云服务器限购规则

    服务器学生优惠本质上属于云厂商的新客身份补贴,基于实名认证与学籍绑定的唯一性,同一身份规则上只能购买一次,为何学生优惠只能享一次?底层逻辑拆解商业防御:阻断灰产与资源倒卖云厂商推出学生机的核心诉求是培育未来开发者生态,而非成为廉价算力池,若允许无限次复购,将引发严重的“薅羊毛”行为:资源倒卖:黑产团队利用批量虚……

    2026年4月28日
    5100
  • 国内海外CDN怎么选?2026最新CDN加速套餐价格对比

    国内与海外CDN的核心区别在于节点分布、合规要求及访问延迟,选择时需依据目标用户所在地及业务数据合规性进行决策,通常国内业务首选国内CDN,出海业务则需搭配海外CDN以优化体验,分发网络(CDN)早已不是简单的加速工具,而是现代互联网架构中不可或缺的“神经末梢”,在2026年的今天,随着全球数字化进程的深入,企……

    2026年6月10日
    5500
  • 服务器存储的书籍在哪找?海量电子书资源库怎么搜

    2026年企业服务器存储的书籍最优解,是采用分布式对象存储融合冷热分层架构,兼顾海量小文件极速检索与长期低成本归档,服务器存储的书籍:核心痛点与架构演进传统存储为何“书到用时方恨少”?传统NAS或SAN架构在应对海量书籍存储时,常陷入“性能与成本不可兼得”的泥沼,书籍数字化文件多为扫描版PDF、ePUB及多媒体……

    2026年4月29日
    4200
  • 京瓷p8060cdn打印机,京瓷p8060cdn打印速度慢怎么解决

    京瓷P8060CDN并非传统意义上的“全能家用机”,而是专为2026年高并发企业办公场景设计的A3彩色激光复合机,其核心优势在于极致的单页打印成本控制在0.03元以内及首张输出时间低于5秒,适合日均打印量超过500页的中大型企业或图文广告店,若家庭用户或小微初创团队追求极致性价比,建议考虑京瓷P5021cd等A……

    2026年5月17日
    12600
  • CDN返回403报错怎么解决?CDN403错误排查方法

    CDN 403报错的核心原因是源站拒绝了CDN节点的请求,通常由源站安全策略、权限配置错误或节点IP未白名单化引起,需优先检查源站Nginx/Apache日志及CDN回源配置,当你发现网站通过CDN加速后突然无法访问,浏览器或客户端返回403 Forbidden错误,而直接访问源站IP却正常时,这种“断崖式”的……

    2026年6月24日
    3910
  • 阿里云cdn缓存刷新怎么操作?阿里云cdn缓存刷新技巧

    2026 年阿里云 CDN 缓存刷新需遵循“秒级生效、按量计费”原则,针对高频动态内容建议采用“目录级刷新 + 预热”组合策略,单次操作成本低至 0.01 元/GB,且需严格匹配《网络安全法》与工信部备案规范,在 2026 年的数字生态中,内容时效性已成为决定转化率的核心变量,面对突发热点或紧急纠错,传统的等待……

    2026年5月11日
    5500
  • CDN流媒体缓存是什么?如何降低CDN流媒体缓存成本

    CDN流媒体缓存通过边缘节点就近分发内容,显著降低延迟并提升播放流畅度,是解决视频卡顿和带宽成本过高的核心方案,为什么你的视频总是卡顿?CDN缓存的底层逻辑想象一下,如果所有用户都要去北京的中心仓库取货,路途遥远且拥堵,体验自然糟糕,CDN(内容分发网络)就像是在全国各个城市都设立了前置仓库,当用户请求视频时……

    2026年6月17日
    3700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注