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

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

Pod:调度的最小单元

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

【尚硅谷】Kubernetes(k8s)入门到实战教程丨全新升级完整版
加载中
【尚硅谷】Kubernetes(k8s)入门到实战教程丨全新升级完整版
尚硅谷
88.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通过ResourceQuotaLimitRange提供两层保护:

  • 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推送是加速内容分发的核心手段,其本质是将源站最新资源主动同步至全球边缘节点,相比传统被动缓存,它能将内容更新延迟从分钟级压缩至秒级,显著提升首屏加载速度与用户体验,在2026年的数字生态中,随着Web3.0架构的深化与AI生成内容(AIGC)的爆发式增长,静态资源与动态数据的混合分发成为常态,传统的“请求……

    2026年7月11日
    15600
  • 千问大模型区别值得关注吗?千问大模型有什么区别

    千问大模型与其他主流大模型之间的区别,不仅值得技术开发者关注,更值得每一位寻求效率变革的企业决策者深思,我的核心结论非常明确:千问大模型区别值得关注吗?我的分析在这里指向一个事实——其差异化优势在于极致的中文语境理解能力、超长文本处理性能以及开放生态带来的落地成本优势, 这种区别并非简单的参数堆砌,而是直接决定……

    2026年3月2日
    16600
  • 星火讯飞大模型头部公司对比,这些差距明显,讯飞星火和百度文心哪个更强大?

    在星火讯飞大模型头部公司对比,这些差距明显的格局中,核心结论已趋于清晰:科大讯飞在垂直行业深度与硬件端侧部署上构建了护城河,而竞争对手在通用基座广度与生态开放速度上占据优势,真正的差距不在于单一模型的参数量,而在于场景落地转化率、数据闭环能力以及多模态协同的实时性,基座能力:通用性与专业性的博弈大模型的竞争本质……

    云计算 2026年4月19日
    5200
  • 垂类大模型难点有哪些?垂类大模型训练难点解析

    垂类大模型开发的成败,核心在于能否突破“通用能力与垂直场景的矛盾”,并在数据壁垒、算力成本与幻觉抑制之间找到最优解,当前,垂类大模型已走过盲目参数堆砌阶段,行业竞争的焦点已从“谁有模型”转向“谁有高质量数据与深度场景落地能力”,企业若想在这一轮技术洗牌中胜出,必须直面数据稀缺、知识遗忘、幻觉控制及评测标准缺失四……

    2026年3月22日
    12900
  • 360网站cdn加速怎么用,360网站cdn加速

    2026年选择360网站CDN加速,核心结论是:对于主要面向国内用户、且对SEO合规性及安全防护有极高要求的中小企业及内容型网站,360 CDN凭借“安全+加速”一体化架构及百度收录友好特性,仍是性价比极高的首选方案,但在纯高并发交易场景下需对比阿里云或腾讯云, 360 CDN加速的核心优势解析在2026年的数……

    2026年7月7日
    11800
  • 服务器安全保密吗?企业数据存储真的可靠吗

    服务器本身并非绝对安全保密,其保密性取决于架构设计、防护深度与运维管理的叠加效应,2026年零信任架构与全链路加密已成为保障服务器安全保密的基准底线,服务器安全保密的核心威胁与底层逻辑2026年攻防视角下的风险重构服务器的保密性并非静态属性,而是动态对抗的结果,根据国家计算机网络应急技术处理协调中心(CNCER……

    2026年4月27日
    6000
  • cdn是真实吗,CDN加速是真的吗

    CDN(内容分发网络)不仅是真实存在的核心技术基础设施,更是2026年互联网高并发、低延迟场景下保障业务稳定与用户体验的绝对刚需,而非营销概念或虚拟服务,CDN的技术本质与2026年行业现状从边缘计算到智能调度在2026年的数字生态中,CDN早已超越了传统的“缓存加速”范畴,根据中国信通院发布的《2026年中国……

    2026年6月3日
    4000
  • 腾讯cdn效果怎么样,腾讯cdn加速服务

    腾讯CDN在2026年的核心优势在于其依托微信生态与腾讯云底层架构实现的“云边端”一体化加速,在动静分离场景下可提供99.99%的服务可用性,综合性价比优于传统单一线路服务商,特别适合高并发、低延迟要求的互联网应用及跨境电商业务,腾讯CDN技术架构与核心性能解析底层网络资源与节点覆盖腾讯CDN并非简单的节点堆砌……

    2026年6月15日
    7000
  • 联通cdn招聘是真的吗?联通cdn招聘最新岗位

    2026年中国联通CDN招聘核心聚焦于具备云原生架构设计能力、边缘计算实战经验及AI运维技能的高端技术人才,主要岗位涵盖研发工程师、解决方案架构师及网络安全专家,薪资水平在一线城市普遍高于行业平均水平30%以上,随着2026年数字经济进入深水区,中国联通作为国家信息基础设施的主力军,其CDN(内容分发网络)业务……

    2026年6月9日
    4100
  • 503错误cdn,cdn返回503错误怎么解决

    CDN返回503错误通常意味着源站服务器过载、配置错误或CDN节点与源站之间的连接被拒绝,而非CDN服务本身宕机,解决核心在于排查源站负载与防火墙策略,在2026年的Web架构中,内容分发网络(CDN)已成为网站稳定的基石,但“503 Service Unavailable”依然是运维人员最头疼的故障之一,许多……

    云计算 2026年6月7日
    7000

发表回复

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