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

相关推荐
Linux运维老纪6 小时前
DNS缓存详解(DNS Cache Detailed Explanation)
计算机网络·缓存·云原生·容器·kubernetes·云计算·运维开发
JunLan~11 小时前
Docker 部署 GLPI(IT 资产管理软件系统)
运维·docker·容器
青草地溪水旁12 小时前
c++ list的front和pop_front的概念和使用案例
c++·容器·list
元气满满的热码式14 小时前
K8S部署DevOps自动化运维平台
运维·kubernetes·devops
LUCIAZZZ15 小时前
基于Docker以KRaft模式快速部署Kafka
java·运维·spring·docker·容器·kafka
IT艺术家-rookie19 小时前
k8s--部署k8s集群--控制平面节点
容器·kubernetes
康世行19 小时前
Windows环境下MaxKB大模型 Docker部署图文指南
windows·docker·容器
Elastic 中国社区官方博客20 小时前
使用 Ollama 和 Kibana 在本地为 RAG 测试 DeepSeek R1
大数据·数据库·人工智能·elasticsearch·ai·云原生·全文检索
Linux运维老纪1 天前
windows部署deepseek之方法(The Method of Deploying DeepSeek on Windows)
linux·人工智能·分布式·云原生·运维开发·devops
Elastic 中国社区官方博客2 天前
Elastic Cloud Serverless 获得主要合规认证
大数据·数据库·elasticsearch·搜索引擎·云原生·serverless·全文检索