如何配置Kubernetes部署副本数量

梦伟吖_9276

梦伟吖_9276

2026-10-14

415人浏览

原创

replicas是deployment中必须置于spec顶层的期望副本数字段,决定服务容错性与资源利用率;错误放置将被忽略,仅启动1个pod;支持kubectl scale动态调整,但不支持回滚。

如何配置kubernetes部署副本数量

副本数不是随便填的数字,它直接决定服务是否扛得住故障、扩缩容是否平滑、资源是否浪费。设为 1 就等于单点运行,设得太高又可能压垮节点或触发调度失败。

replicas 字段必须写在 Deployment spec 顶层

很多人把 replicas 错放在 template 或容器配置里,Kubernetes 会静默忽略——Pod 看似跑起来了,但实际只启动 1 个,且无法通过 kubectl scale 调整。

正确位置只有这一处:

spec:
  replicas: 3  # ✅ 必须在这里
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers: [...]  # ❌ replicas 不允许出现在这里
  • replicas 是 Deployment 的期望状态字段,由控制器持续比对并补足
  • 值可以是任意正整数,但 0 是合法值(用于临时下线)
  • 若用 kubectl apply -f 更新 YAML,修改 replicas 后会触发滚动扩缩(取决于 strategy.type)

用 kubectl scale 动态调整副本数最常用

线上突发流量、压测扩容、维护缩容,基本都走这条命令。它绕过 YAML 文件,直改 API Server 中的 spec.replicas,生效快、无侵入。

Kubernetes Network Policy Generator
Kubernetes Network Policy Generator

使用加权评分卡在12项标准上评估和比较隐私解决方案供应商。适用于选择隐私管理软件、比较数据保护方案等场景。

下载

常见写法:

$ kubectl scale deployment/my-app --replicas=5
$ kubectl scale deploy nginx-deploy --replicas=2
  • 支持缩容到 0:kubectl scale deploy/my-app --replicas=0
  • 可批量操作:kubectl scale deploy -l environment=prod --replicas=4
  • 不支持回滚:改完就生效,没“撤销”按钮,误操作只能再 scale 回去
  • 注意命名空间:默认在 default,跨 ns 需加 -n my-ns

滚动更新时 replicas 变化受 strategy 控制

单纯改 replicas 不会触发滚动更新;但如果你同时改了镜像或环境变量再 apply,Kubernetes 就要按 strategy.rollingUpdate 规则来替换 Pod。这时 replicas 实际控制的是“最终目标副本数”,而中间过程由 maxSurge 和 maxUnavailable 约束。

  • maxSurge: 25% 表示最多额外创建 25% 的 Pod(向上取整),比如从 4→5,允许多起 1 个
  • maxUnavailable: 25% 表示更新过程中最多容忍 25% 的 Pod 不可用,比如 4 个副本,最多停 1 个
  • 如果设 maxUnavailable: 0,更新期间所有旧 Pod 必须保持就绪,新 Pod 全部 ready 后才删旧 Pod——适合强一致性场景

副本数设置要考虑节点资源与亲和性

写死 replicas: 10 很危险。如果集群只剩 2 个空闲节点,每个最多调度 4 个该应用 Pod,那第 9 个 Pod 就会卡在 Pending 状态,永远起不来。

  • 先查节点资源:kubectl describe nodes | grep -A 10 "Allocatable:"
  • 看已有 Pod 分布:kubectl get pods -o wide,避免全挤在同一台节点
  • 配合 topologySpreadConstraints 强制打散,比盲目堆副本更可靠
  • 长期建议接入 HPA:kubectl autoscale deploy/my-app --cpu-percent=70 --min=2 --max=10

真正难的不是写几行 YAML 或敲几个命令,而是把 replicas 当成一个需要持续观测和反馈的指标——它连着监控、连着容量规划、连着故障恢复 SLA。设完就不管,等于把高可用交给了运气。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

2025.12.22

116

5

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

2026.06.29

188

19

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

2026.10.10

100

15

Kratos框架HTTP与gRPC服务开发教程
Kratos框架HTTP与gRPC服务开发教程

本专题围绕Kratos框架双协议服务开发,涵盖HTTP路由与处理器编写、参数获取、gRPC服务实现与客户端调用、metadata上下文传递、encoding编解码注册、统一响应封装、超时控制与流式响应实现方法。

2026.10.10

40

15

Kratos框架Protobuf接口定义与代码生成合集
Kratos框架Protobuf接口定义与代码生成合集

本专题讲解Kratos框架接口定义体系,涵盖proto编写规范、proto add/client/server生成命令、http注解路由、validate校验、OpenAPI文档生成、跨服务proto复用与兼容性设计。

2026.10.10

20

15

C++虚函数怎么定义和调用
C++虚函数怎么定义和调用

C++虚函数是实现运行时多态的重要机制。本专题从virtual关键字的基本用法入手,介绍基类与派生类之间的函数重写、基类指针调用派生类方法,以及动态绑定的执行过程,帮助初学者掌握虚函数的核心语法。

2026.10.10

40

26

C++类与对象的封装方法教程
C++类与对象的封装方法教程

C++封装是面向对象编程的核心特性之一,通过类将数据与操作数据的函数组织在一起,并利用访问权限控制外部访问。本专题介绍类的定义、成员变量、成员函数以及public、private和protected的使用方法,帮助初学者掌握封装的基本原理。

2026.10.10

40

32

C++构造函数定义与调用方法
C++构造函数定义与调用方法

C++构造函数用于初始化类对象,是面向对象编程的重要基础。本专题从构造函数的定义、声明和调用入手,介绍默认构造函数、带参数构造函数、拷贝构造函数及成员初始化列表,帮助初学者掌握对象创建与初始化的基本方法。

2026.10.10

40

16

Kratos框架零基础入门教程
Kratos框架零基础入门教程

本专题整理Kratos框架入门内容,涵盖Go环境准备、kratos CLI安装升级、new命令创建项目、目录结构分层说明、服务启动与双协议端口、依赖下载报错排查,帮助开发者快速跑通第一个Kratos框架微服务应用。

2026.10.10

40

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kubernetes官方教程手册
Kubernetes官方教程手册

共0课时 | 0人学习

Kubernetes官方中文文档
Kubernetes官方中文文档

共0课时 | 0人学习