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:          # 名称空间,Deployment隶属名称空间级别;
spec:             
  minReadySeconds:    # Pod就绪后多少秒内任一容器无Crash方可为就绪;
  replicas:           # 期望的Pod副本数,默认为1;
  selector:            # 标签选择器,必须匹配template字段中Pod模板中的标签;
  template:            # Pod模板对象;
  
  revisionHistoryLimit:   # 滚动更新历史记录数量,默认为10;
  strategy: 
  

                            
                        
                    
                    
                    

你可能感兴趣的:(计算机,程序员,JAVA,kubernetes,docker,容器)