在K8S中,deploy升级过程包括什么?

在Kubernetes (K8S) 中,Deployment的升级过程主要包括以下几个步骤:

  1. 更新Deployment配置

    • 当需要对应用程序进行升级时,通常会更新Deployment的YAML配置文件,可以更改的内容包括但不限于:
      • 容器镜像版本(从v1.0升级到v2.0)
      • 应用配置(环境变量、命令参数等)
      • 资源请求与限制
      • 更新策略和其他元数据
  2. 选择升级策略

    • 默认情况下,Deployment使用滚动升级(Rolling Update)策略。
    • 滚动升级会在保持整体服务可用的前提下逐步替换旧Pod,即首先创建新的Pod实例运行新版本应用,然后删除旧版本Pod实例。
    • 另一种策略是Recreate策略,它会先删除所有现有的Pod,然后再创建全部新的Pod。
  3. 实施滚动升级

    • 在滚动升级过程中:
      • Deployment控制器根据新的Pod模板创建一个新的ReplicaSet。
      • 新的ReplicaSet开始创建并启动指定数量的新Pod,同时确保任何时候集群中至少有一部分旧Pod仍在提供服务(可以通过设置.spec.strategy.rollingUpdate.maxUnavailable来控制最大不可用Pod数量)。
      • 当新Pod变为Ready状态且通过就绪探针验证后,才会继续替换下一个旧Pod。
      • 这个过程会持续进行,直到所有旧Pod都被新Pod替换完毕。
  4. 监控和确认升级

    • 在升级过程中,可以通过kubectl或Kubernetes Dashboard监控Deployment的状态以及Pod的健康状况。
    • 确认所有新Pod都成功启动并且应用程序正常响应后,升级过程完成。
  5. 回滚机制

    • 如果在升级过程中发现问题,可以立即执行回滚操作回到上一个已知稳定版本。
    • Kubernetes自动维护着每个Deployment的历史记录,允许用户轻松地基于修订历史(revision history)回滚到之前任何一个版本。

综上所述,整个升级流程旨在实现最小的服务中断和最大程度的可恢复性。

相关推荐
明月_清风2 小时前
K8s 从入门到上手:核心概念+常用工具全解析
后端·kubernetes
塔克拉玛攻城狮6 小时前
详解cni插件cilium篇一:它为什么这么快?它还有哪些高级功能?
kubernetes·cilium
阿里云云原生7 小时前
HiClaw 发布 v1.1.0,提供 Kubernetes 集群部署实现,支持 Hermes Worker 运行时
kubernetes
Cat_Rocky9 小时前
kubernetes ingress粗浅学习
学习·容器·kubernetes
PH = 710 小时前
K8S集群部署Dashboard
云原生·容器·kubernetes
陈陈CHENCHEN13 小时前
【Kubernetes】Ubuntu 24.04 二进制方式部署 K8s
云原生·容器·kubernetes
成为你的宁宁14 小时前
【K8s Service 基础知识、五大类型应用机制及Endpoint 深度解析】
云原生·容器·kubernetes
老卢聊运维14 小时前
K8s 资源一直 Terminating?kubectl 强制删除完整实操手册
云原生·容器·kubernetes
眷蓝天14 小时前
Kubernetes Ingress 资源对象
云原生·容器·kubernetes
Nice_Fold14 小时前
Kubernetes Ingress 七层负载均衡与Nginx实现
nginx·kubernetes·负载均衡