美文网首页
Deployment

Deployment

作者: 魔曦帝天 | 来源:发表于2019-12-11 16:11 被阅读0次

Kubernetes 项目中一个非常重要的功能:Pod的“水平扩展 / 收缩”(horizontal scaling out/in)。
Deployment 同样通过“控制器模式”,来操作 ReplicaSet 的个数和属性,进而实现水平扩展 / 收缩滚动更新这两个编排动作。

滚动更新

Deployment Controller 还会确保,在任何时间窗口内,只
指定比例的 Pod 处于离线状态。同时,它也会确保,在任何时间窗口内,只有指定比例的新 Pod 被创建出来。这两个比例的值都是可以配置的,默认都是 DESIRED 值的 25%。

Deployment 的控制器,实际上控制的是 ReplicaSet 的数目,以及每个 ReplicaSet的属性

Deployment 对应用进行版本控制的具体原理

设置错误的镜像版本

kubectl set image deployment/nginx-deployment nginx=nginx:1.91

查看ReplicaSet 的状态: 
kubectl get rs

Deployment 回滚到上一个版本  
kubectl rollout undo deployment [deployment-name]

查看每次 Deployment 变更对应的版本 
kubectl rollout history deployment [deployment-name]

看到每个版本对应的 Deployment 的API 对象的细节
kubectl rollout history deployment/[deployment-name] --revision=2

回滚指定版本
kubectl rollout undo deployment/[deployment-name] --to-revision=2

Deployment 的多次更新操作,最后只生成一个 ReplicaSe

kubectl rollout pause deployment/nginx-deployment
 # Deployment 进入“暂停”状态
kubectl rollout resume deploy/nginx-deployment
 # Deployment“恢复”

你就可以随意使用 kubectl edit 或者 kubectl set image 指令,修改这个
Deployment 的内容了
Deployment 正处于“暂停”状态,所以我们对 Deployment 的所有修改,都不会触
发新的“滚动更新”,也不会创建新的 ReplicaSet。
Deployment 修改操作都完成之后,只需要再执行一条 kubectl rollout resume
指令,就可以把这个 Deployment“恢复”回来

Deployment 回滚到上一个版本
Deployment 的控制器,其实就是让这个旧ReplicaSet(hash=1764197365)再次“扩展”成 3 个 Pod,而让新的ReplicaSet(hash=2156724341)重新“收缩”到 0 个 Pod。

Deployment、ReplicaSet 和 Pod 的关系
备注:Deployment 控制 ReplicaSet(版本),ReplicaSet 控制 Pod(副本数)。这个两层控制关系一定要牢记。

Deployment 实际上是一个两层控制器
首先,它通过ReplicaSet 的个数来描述应用的版本.然后,它再通过ReplicaSet 的属性(比如 replicas 的值),来保证 Pod 的副本数量

控制这些“历史”ReplicaSet 的数量
kubectl edit deployment nginx-deployment

image.png

相关文章

  • 03.kubernetes笔记 Pod控制器(二) Deploy

    目录Deployment简介Deployment 字段格式示例1: 创建Deployment控制器deployme...

  • k8s deployment更新、回滚、扩容

    更新deployment deployment查看更新记录 deployment回滚 查看详细版本信息 更新到某个...

  • 非常规瘦身

    BuildSettings下Deployment-> Deployment Postprocessing ->NO...

  • Deployment

    Deployment典型的使用场景如下: 使用Deployment创建对应的Pod副本 检查Deployment的...

  • k8s部署registry服务

    deployment定义如下registry_deployment.yaml: 执行kubectl apply -...

  • Flutter iOS 编译报错提示 The iOS deplo

    编译报错提示 The iOS deployment target 'IPHONEOS_DEPLOYMENT_TAR...

  • Deployment

    Kubernetes里第一个控制器模式的完整实现:Deployment。Deployment 看似简单,但实际上,...

  • Deployment

    Kubernetes 项目中一个非常重要的功能:Pod的“水平扩展 / 收缩”(horizontal scalin...

  • deployment

    deployment解决了rc的与svc的label升级关联问题,如果rc的pod的label或者svc的sele...

  • 蓝绿部署

    Blue-Green deployment和 Blue-Turquoise-Green deployment 经典...

网友评论

      本文标题:Deployment

      本文链接:https://www.haomeiwen.com/subject/xirogctx.html