当前位置: 首页 > news >正文

K8S扩缩容及滚动更新和回滚

目录:

    • 1、滚动更新
      • 1、定义Deployment配置
      • 2、应用更新
    • 2、版本回滚
      • 1. 使用kubectl rollout undo命令
    • 3、更新暂停与恢复
      • 1、暂停更新
      • 2、更新镜像(例如,使用kubectl set image命令)
      • 3、恢复更新
    • 4、弹性扩缩容
      • 1、扩容命令
      • 2、缩容命令
      • 3、自动扩缩容

1、滚动更新

在Kubernetes中,滚动更新(Rolling Update)是一种常用的部署策略,它允许你逐步将应用的旧版本替换为新版本,而不是一次性替换所有实例。这有助于减少服务中断的风险,并允许你在更新期间监控应用的健康状况。

1、定义Deployment配置

首先,你需要有一个Deployment配置文件(通常是YAML格式),其中定义了你的应用镜像和所需的副本数。例如:

apiVersion: apps/v1
kind: Deployment
metadata:name: myapp-deployment
spec:replicas: 3strategy:type: RollingUpdaterollingUpdate:maxSurge: 1       # 最大额外可以存在的副本数,可以为数字或百分比maxUnavailable: 1 # 最大不可用副本数,可以为数字或百分比selector:matchLabels:app: myapptemplate:metadata:labels:app: myappspec:containers:- name: myapp-containerimage: myapp:v1

2、应用更新

使用kubectl命令行工具来更新你的Deployment。例如,如果你想将镜像版本从myapp:v1更新到myapp:v2,你可以使用以下命令:

kubectl set image deployment/myapp-deployment myapp-container=myapp:v2 --record

或者,你也可以通过修改原始的YAML文件,然后使用kubectl apply命令:

spec:containers:- name: myapp-containerimage: myapp:v2

然后应用这个更改:

kubectl apply -f deployment.yaml

2、版本回滚

1. 使用kubectl rollout undo命令

这是最直接的方法来触发回滚。你可以通过指定回滚到上一个版本或者指定一个特定的历史版本。

回滚到上一个版本:

kubectl rollout undo deployment <deployment-name>

回滚到特定的历史版本:

首先,你可以使用kubectl rollout history命令查看所有的发布历史:

kubectl rollout history deployment <deployment-name>

然后,根据显示的版本号回滚到特定版本:

kubectl rollout undo deployment <deployment-name> --to-revision=<revision-number>

3、更新暂停与恢复

假设你有一个名为my-app的Deployment,并且你希望在更新镜像之前先暂停更新:

1、暂停更新

kubectl rollout pause deployment/my-app

2、更新镜像(例如,使用kubectl set image命令)

kubectl set image deployment/my-app my-app-container=new-image:tag

3、恢复更新

kubectl rollout resume deployment/my-app

4、弹性扩缩容

1、扩容命令

kubectl scale deployment <deployment-name> --replicas=5

2、缩容命令

kubectl scale deployment <deployment-name> --replicas=3

两者修改replicas的副本数即可。

3、自动扩缩容

如果使用的是自动缩放(Horizontal Pod Autoscaler, HPA),则 Kubernetes 会根据设置的指标自动调整 Pod 的数量,而不是手动设置副本数。你可以通过设置 HPA 来实现自动扩容和缩容。例如:

kubectl autoscale deployment <deployment-name> --cpu-percent=50 --min=1 --max=10

这将基于 CPU 使用率自动调整副本数,最小为1,最大为10。

http://www.xdnf.cn/news/358651.html

相关文章:

  • EasyPoi相关文档与使用工具类
  • MySQL 8.0 OCP 英文题库解析(二)
  • JAVA包装类
  • YOLOv8目标检测性能优化:损失函数改进的深度剖析
  • SPDK NVMe of RDMA 部署
  • DNS DDoS攻击:网络世界中的“洪水猛兽”
  • Spring框架(1)
  • 双端口ram与真双端口ram的区别
  • COASWT区域海-气-浪耦合模式
  • SEMI E94-0200 PROVISIONAL SPECIFICATION FOR CONTROL JOB MANAGEMENT(控制作业管理暂行规范)
  • 从零打造企业级Android木马:数据窃取与远程控制实战
  • 从概念表达到安全验证:智能驾驶功能迎来系统性规范
  • golang -- 如何获取变量类型
  • uniapp-商城-47-后台 分类数据的生成(通过数据)
  • Eclipse SWT 1 等比缩放
  • 菜鸟之路Day30一一MySQL之DMLDQL
  • 常见降维算法分析
  • C++进阶--红黑树的实现
  • .NET高频技术点(持续更新中)
  • 适老化洗浴辅具产业:在技术迭代与需求升级中重塑银发经济新生态
  • Vue——Axios
  • 通信协议选型篇:如何根据项目需求选择合适的通信协议?
  • 线段树:数据结构中的超级英雄
  • kafka学习笔记(四、生产者、消费者(客户端)深入研究(三)——事务详解及代码实例)
  • 一、对linux驱动文件编写时结构认识与记录
  • A* (AStar) 寻路
  • 读取传感器发来的1Byte数据:分低位先行和高位先行的处理方法
  • 【iptables】--命令基本使用
  • Web 架构之数据读写分离
  • 配置Java Selenium Web自动化测试环境