Deployment
Basic CMD
# Create kubectl create deploy NAME --image=IMAGE --replica NUM # Scale (or use kubectl edit) kubectl scale deploy NAME --replicas NUM # Change image of deploy kubectl set image deployments/DP_NAME ContainerName=IMAGE k set image deployments/apache httpd=httpd:alpine
When using
kubectl create
cmd create the deployment, it will automatically add the samelabels
for both deployment and pods. So if you want to customize thelabel
, it's better to print out--dry-run=client -oyaml
the yaml file and have a check.
And if not clear the container name, can use following to find it
k get pod NAME -oyaml | grep -3 -i container
Rollout
k rollout history deployment/DP_NAME k rollout history deployment/DP_NAME --revision REV_NUM k rollout undo deployment/DP_NAME --to-revision REV_NUM k rollout status deployment DP_NAME
controlplane $ k rollout history deployment video-app deployment.apps/video-app REVISION CHANGE-CAUSE 1 <none> 2 <none> 3 <none> controlplane $ k rollout history deployment/video-app --revision 3 deployment.apps/video-app with revision #3 Pod Template: Labels: app=video-app pod-template-hash=69648db755 Containers: redis: Image: redis:7.0.13 Port: <none> Host Port: <none> Environment: <none> Mounts: <none> Volumes: <none> Node-Selectors: <none> Tolerations: <none> controlplane $ k rollout undo deployment/video-app --to-revision 3 deployment.apps/video-app skipped rollback (current template already matches revision 3)
Rolling Strategy
.spec.strategy.rollingUpdate.Unavailable
and .spec.strategy.rollingUpdate.maxSurge
- Max Unavailable
- unavailable during the update process.
- Max Surge
- specifies the maximum number of Pods that can be created over the desired number of Pods
strategy: type: RollingUpdate rollingUpdate: maxSurge: 30% maxUnavailable: 45%
.spec.strategy.type==Recreate
, and we can also destroy all existing pods first then create the new pods.
strategy: type: Recreate
Top comments (0)