k8s deployment

deployment

假设 pod 一开始使用v1版本的镜像运行第一个版本的应用。然后开发了一个新版本的应用打包成镜像,并将其推送到镜像仓库,标记为v2,接下来想用这个新版本替换所有的 pod。由于 pod 在创建之后,不允许直接修改镜像, 只能通过删除原有 pod 并使用新的镜像创建新的 pod替换。

有两种办法更新所有 pod:

  1. 直接删除所有现有的 pod,然后创建新的 pod。
  2. 先创建新的 pod,等待运行成功之后,再删除旧的 pod。

第一种方法会造成服务在一定时间内的不可用。第二种方法需要同时支持两个版本同时提供对外服务。

滚动升级

执行滚动升级操作来逐步替代原有的 pod,而不是同时创建所有新的 pod 并一并删除所有旧的 pod。可以通过逐步对旧版本的 ReplicationController 进行缩容并对新版本的进行扩容, 来实现上述操作。在这个过程中,服务的 pod 选择器同时包含新旧两个版本的 pod, 因此它将请求切换到这两组 pod。

deployment 和 replicaset

Deployment 不能直接管理 pod,而是创建了 ReplicaSet 来管理 pod。ReplicaSet的名称中也包含了其 pod 模板的哈希值。

相关推荐
q***71017 小时前
从零到上线:Node.js 项目的完整部署流程(包含 Docker 和 CICD)
docker·容器·node.js
起风了___9 小时前
Jenkins + Kubernetes 多模块微服务一键流水线:从 Maven 打包到滚动发布完整脚本
kubernetes·jenkins
BD_Marathon9 小时前
【Zookeeper】zk_客户端API_创建节点
分布式·zookeeper·云原生
好奇的菜鸟10 小时前
在 WSL 中安装 Docker
运维·docker·容器
拾忆,想起12 小时前
Dubbo服务超时与重试策略配置指南:构建 resilient 微服务架构
服务器·网络·微服务·云原生·架构·dubbo
杭州杭州杭州12 小时前
实验3 微服务介绍以及开发环境搭建
微服务·云原生·架构
芥子沫13 小时前
日记应用推荐-Docker安装DailyNotes应用
docker·容器·日记
p***c94917 小时前
后端在微服务中的服务网关
微服务·云原生·架构
2501_9418814021 小时前
Kubernetes 容器集群资源调度与弹性扩容高可用架构在互联网业务实战经验总结
云原生·容器·kubernetes
究極の法則に通じた野犬21 小时前
k8s设计理念-k8s中哪些服务要部署成StatefulSet哪些部署成Deployment
云原生·容器·kubernetes