Deployment是Kubernetes 1.2引入的概念,主要是为了解决Pod编排问题,可以将Deployment视为RC的一次升级。
Deployment相对于RC的最大升级是可以随时知道当前Pod的部署进度。
通过Deployment我们可以:
创建Deployment对象生成对应的Replica Set并完成Pod副本的创建过程
检查Deployment状态查看部署动作是否完成
更新Deployment以创建新的Pod(比如镜像升级)
如果当前Deployment不稳定,回滚到一个早先的Deployment版本
挂起或者恢复一个Deployment
Deployment的定义与Replica Set定义类似
apiVersion: extension/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
ReplicaSet定义
apiVersion: v1
kind: ReplicaSet
metadata:
name: nginx-repset
定义Deployment
创建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: 80
创建Deployment对象
kubectl create -f tomcat-deployment.yaml
查看Deployment信息
kubectl get deployments
也可以查看Replica Set
kubectl get rs
查看Pod
kubectl get pods