Rolling Update Deployment¶
Rolling Update Deployment (often referred to as Ramped Rolling Update) is a deployment strategy where new application instances are incrementally released, replacing the old version gradually without a full system shutdown.^[400-devops-06-kubernetes-k8s-ithelp-day12-readme.md]
This process is analogous to water flowing to lower ground, allowing for a slow and peaceful release of the new version.^[400-devops-06-kubernetes-k8s-ithelp-day12-readme.md] Because the update happens incrementally, the service remains uninterrupted during the deployment process.^[400-devops-06-kubernetes-k8s-ithelp-day12-readme.md]
Configuration Parameters¶
To control the stability and speed of the deployment, Rolling Updates can be adjusted using specific parameters:^[400-devops-06-kubernetes-k8s-ithelp-day12-readme.md]
- Max Surge (最大峰值): The maximum number of extra pods (or percentage) that can be created above the desired replica count during the update.
- Max Unavailable (最大不可用數): The maximum number of pods (or percentage) that can be unavailable during the update process.
Advantages and Disadvantages¶
Advantages¶
- Service Continuity: The deployment process ensures the service does not experience downtime.^[400-devops-06-kubernetes-k8s-ithelp-day12-readme.md]
- Resource Efficiency: It consumes fewer resources compared to strategies like Blue/Green Deployment, as it does not require running the full capacity of two versions simultaneously.^[400-devops-06-kubernetes-k8s-ithelp-day12-readme.md]
- Ease of Setup: It is generally considered easy to configure.^[400-devops-06-kubernetes-k8s-ithelp-day12-readme.md]
Disadvantages¶
- Rollback Complexity: If an issue is detected late in the deployment process (e.g., after updating 80 out of 100 instances), the time required to roll back can be significant.^[400-devops-06-kubernetes-k8s-ithelp-day12-readme.md]
- Mixed Versions: During the update, both old and new versions run concurrently. This makes traffic control difficult and complicates debugging if errors occur, as it may be hard to distinguish which specific version caused the problem.^[400-devops-06-kubernetes-k8s-ithelp-day12-readme.md]
Related Concepts¶
Sources¶
^[400-devops-06-kubernetes-k8s-ithelp-day12-readme.md]