#List one or more deployments
#dumps all the deployment yaml code on the screen
kubectl get deployments <deployment_name> -o yaml
#Display the detailed state of one or more deployments
kubectl describe deployment <deployment_name>
#Edit and update the definition of one or more deployment on the server
kubectl edit deployment <deployment_name>
#Create one a new deployment
kubectl create deployment --image=<img_name> <deployment_name>
kubectl delete deployment <deployment_name>
kubectl scale deployment <deployment_name> --replicas=[X]
kubectl autoscale deployment <deployment_name> --min=10 --max=15 --cpu-percent=80
#See the rollout status of a deployment
kubectl rollout status deployment <deployment_name>
#see rollout history of all deployments
kubectl rollout history deployment
#See the overview of recent changes
kubectl rollout history deployment <deployment_name>
kubectl rollout history deployment <deployment_name> --reversion=2
#bring down the new replicaset and bring up the old ones
kubectl rollout undo deployment <deployment_name>
kubectl rollout undo deployment <deployment_name> --to-revision=1
kubectl rollout pause deployment <my_deployment>
kubectl rollout resume deployment <my_deployment>
#expose a deployment as a kubernetes service (type can be NodePort/ClusterIP for on-promise cluster)
kubectl expose deployment <deployment_name> --type=NodePort --targetport=80 --name=<myapp-service>
#Add label to a deployment
kubectl lable deployments <deployment_name> state=LA
kubectl get deployments --show-labels