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

相关推荐
阿里云云原生1 小时前
云栖实录丨云监控 2.0 让 Agent 看懂系统,也能看懂 Agent
云原生
东风微鸣4 小时前
如何发现 K8s 集群里的无用资源?
云原生·容器·kubernetes
恒拓高科WorkPlus4 小时前
私有化IM技术选型:商业平台、开源IM和IM PaaS怎么选?
云原生·开源·paas
flytalei4 小时前
从YAML到Nginx服务访问:动手理解 Kubernetes Pod、Deployment 与 Service
运维·nginx·kubernetes
木雷坞5 小时前
Docker Compose部署Docmost:数据库、附件持久化与首次协作
数据库·docker·容器
cg.family5 小时前
K8S:scale 与 delete pod 核心区别
运维·docker·容器
system_error_x5 小时前
服务器的替代方案:从物理机到云原生的全面对比
运维·服务器·云原生
wei_shuo6 小时前
极空间部署1Panel实战:应用商店装AList、Docker管理与远程访问
运维·docker·容器
朗尊软件技术团队6 小时前
电商系统Docker容器化部署实践:从Dockerfile镜像瘦身到K8s滚动上线
运维·docker·云原生·容器·kubernetes
壹玖玖肆8 小时前
Docker 部署 openGauss 7.0(aarch64)MySQL 兼容模式建库与数据恢复完整实践
mysql·docker·容器