1、Kubernetes(K8s) Deployment
Deployment为Pod和Replica Set提供声明式更新。
只需要在 Deployment 中描述想要的目标状态,Deployment controller 会将 Pod 和ReplicaSet 的实际状态改变到目标状态。可以定义一个全新的 Deployment 来创建 ReplicaSet 或者删除已有的 Deployment 并创建一个新的来替换。
注意:不应该手动管理由 Deployment 创建的 Replica Set,这不是Deployment controller 的职责。
2、Deployment常用操作
Deployment是一个定义及管理多副本应用(即多个副本 Pod)的新一代对象,与Replication Controller相比,它提供了更加完善的功能,使用起来更加简单方便。
1)配置文件
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: Tomcat-ReplicaSet spec: replicas: 3 template: metadata: lables: app: Tomcat-ReplicaSet tier: Backend spec: containers: - name: Tomcatimage: tomcat: 8.0 ports: - containerPort: 7474
2)更改Deployment
Updating:用户可以在Deployment完成之前更新正在进行的Deployment。在此过程中,Deployment,并创建新的Deployment。
Deleting:用户可以通过在Deployment完成之前删除它来暂停/取消Deployment。重新创建相同的Deployment将恢复它。
Rollback:可以回滚Deployment或正在进行的Deployment。用户可以使用DeploymentSpec.PodTemplateSpec = oldRC.PodTemplateSpec
创建或更新Deployment。
3)Deployment策略
Recreate:将杀死所有现有的RC,然后打开新的。这将导致快速Deployment,但它将导致停机时,旧的Pod下来,新的Pod没有出现。
Rolling Update:将逐渐淘汰旧的RC并带来新的RC。将导致缓慢的Deployment,但实际上并没有Deployment。在这个过程中,始终有很少旧的Pod和新Pod可用。
4)创建Deployment
$ kubectl create –f Deployment.yaml -–record
5)获取Deployment
$ kubectl get deployments
6)判断Deployment的状态
$ kubectl rollout status deployment/Deployment
7)更新Deployment
$ kubectl set image deployment/Deployment tomcat=tomcat:6.0
8)回滚到之前的Deployment
$ kubectl rollout undo deployment/Deployment –to-revision=2
相关文档:
Kubernetes(K8s) kubectl get 常用命令
Kubernetes(K8s) kubectl describe常用命令
Kubernetes(K8s) kubectl create常用命令
Kubernetes(K8s) kubectl replace常用命令
Kubernetes(K8s) kubectl patch常用命令
Kubernetes(K8s) kubectl edit 常用命令
Kubernetes(K8s) kubectl delete 常用命令