kubernetes之Deployment

1.什么是Deployment?

Deployment(简写为deploy)是kubernetes控制器的又一种实现,构建于ReplicasSet控制器之上,可以为Pod和ReplicaSet提供声明式更新。相比较而言,Pod和ReplicaSet很少用来直接使用,而是借助于控制器来使用。Deployment Controller核心功能也是保证Pod资源的正常使用,大部分功能调用ReplicaSet来实现。

1.2我们只需要描述Deployment中目标Pod期望状态,而Deployment控制器以控制更改为实际状态,使其变成期望状态。我们不需要直接使用Pod和ReplicaSet来实现,Deployment控制器在ReplicaSet的基础上增加了部分特性:

1.事件和状态查看: 可以通过特定的命令查看Deployment对象的更新进度和状态;

2.版本记录: 将Deployment对象的历史更新操作都进行保存,以便于后续执行回滚操作使用;

3.多种更新方案: Recreate重建,可以实现单批次更新所有的Pod。RollingUpdate可以实现多批次替换Pod至新版本。

2.Deployment的构成部分

Deployment是标准的k8s资源,Deployment构建于ReplicaSet之上,spec字段嵌套了包含了replicaset控制器支持的selector、replicas、template、minReadySeconds

2.1Selector: 标签选择器,匹配并关联Pod,并对其受控制的Pod进行管理;

2.2Replicas: 期望的Pod的副本数,期望在集群所运行的Pod对象的数量;

2.3template: Pod的模板;实际上定义了Pod的内容,相当于把一个Pod的描述信息以模板的方式嵌套在ReplicaSet;

3.Deployment的资源规范

apiVersion: apps/v1   # API群组及版本;
kind: Deployment      # 资源类型;
metadata:             # Pod元数据;
   name:              # 资源名称,在作用域中要唯一;
   namespace: <string>         # 名称空间,Deployment隶属名称空间级别;
spec:             
  minReadySeconds: <integer>   # Pod就绪后多少秒内任一容器无Crash方可为就绪;
  replicas: <integer>          # 期望的Pod副本数,默认为1;
  selector: <Object>           # 标签选择器,必须匹配template字段中Pod模板中的标签;
  template: <Object>           # Pod模板对象;
  
  revisionHistoryLimit: <integer>  # 滚动更新历史记录数量,默认为10;
  strategy:
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值