1.4.6
引入的目的是为了更好的解决POD的编排问题。可以看作是一次RC的升级,两者相似度超过90%
最大的升级是我们可以随时知道当前POD“部署”的进度,实际上是有雨一个POD的创建、调度、绑定节点及在目标NODE上启动对应的容器这一完整过程需要一定的时间。
Deployment的典型使用场景有以下就几个
*创建一个Deployment对象来生成对应的replica set并完成pod副本的创建过程
*更新deployment以创建新的POD(比如镜像的升级)
*如果当前Deployment不稳定,则回滚到一个早先的deployment版本
*暂停deployment以便于一次性修改多个podTemplateSpec的配置项,之后在恢复deployment,进行新的发布
*扩展Deployment以应对高负载
*查看Deployment的状态,以此做为发布是否成功的指标
*清理不再需要的旧版本ReplicaSets
[root@localhost conf]# kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
frontend 1 1 1 0 1m
[root@localhost conf]#
DESIRED:pod副本数量的期望值
CURRENT:当前replica的值
UP-TO-DATE:最新版本POD的副本数量
AVAILABLE:当前集群中可用的POD副本数量
POD的管理对象,除了RC和Deployment,还包括ReplicaSet、DamonSet、StatefulSet、Job等,分别用于不同的场景中。第二章详细介绍。
[root@localhost conf]# cat tomcat-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: frontend
spec:
replicas: 1
selector:
matchLabels:
tier: frontend
matchExpressions:
- {key: tier, operator: In, values: [frontend]}
template:
metadata:
labels:
app: app-demo
tier: frontend
spec:
containers:
- name: tomcat-demo
image: tomcat
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
[root@localhost conf]#