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 模板的哈希值。

相关推荐
一念一花一世界26 分钟前
Arbess从入门到实战(16) - 使用Arbess+Gitee实现K8s自动化部署
ci/cd·云原生·容器·kubernetes·tiklab
java_logo1 小时前
Docker 部署 MinerU 教程:打造你的本地 PDF 智能处理中心
linux·运维·人工智能·docker·ai·容器·aigc
技术杠精2 小时前
Docker Swarm之Java 应用部署与平滑更新
java·docker·容器
ajax_beijing3 小时前
修改k8s的镜像源为国内镜像源
云原生·容器·kubernetes
A-刘晨阳3 小时前
K8S 二进制集群搭建(一主两从)
linux·运维·云原生·容器·kubernetes
祁同伟.4 小时前
【OJ】二叉树的经典OJ题
数据结构·c++·算法·容器·stl
thinktik4 小时前
AWS EKS 计算资源自动扩缩之Karpenter[AWS 海外区]
后端·kubernetes·aws
爱宇阳14 小时前
离线环境下运行 Docker 容器编排指南
docker·容器·eureka
回忆是昨天里的海17 小时前
k8s集群-节点间通信之安装kube-flannel插件
java·docker·kubernetes
阿里云云原生17 小时前
阿里云加持,《泡姆泡姆》让全球玩家畅享零延迟冒险
云原生