Container Orchestration Rolling Update Version Mismatch
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In open-source container orchestration systems like Kubernetes, rolling updates can lead to service availability issues due to mismatched pod versions, especially when client and server pods are managed by different groups, requiring a system to maintain both previous and updated versions and dynamically route service requests to ensure high availability.
Innovation Solution
A method that registers topology for deployments, detects rolling updates, assumes ownership of previous version pods, and creates network routing rules to route service requests correctly between coexisting previous and updated version pods, ensuring seamless communication during updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If rolling update is implemented in container orchestration system, then service deployment flexibility is improved, but service availability deteriorates due to version mismatches between client and server pods
Solution Approach 1:
The system performs preliminary actions by detecting rolling updates before they complete and proactively assuming ownership of previous version pods. This early intervention allows the system to prepare network routing rules and maintain service endpoints before version mismatches occur, preventing service availability issues rather than reacting to them after they happen.
Solution Approach 2:
The system introduces an intermediary mechanism (network routing rules) that sits between service requests and pod versions. This intermediary dynamically routes traffic to appropriate pod versions based on the request type, allowing both old and new versions to coexist without direct interference, thus maintaining service availability during transitions.
2Reliability
If both previous and updated version pods are maintained during rolling update, then service continuity is improved, but system complexity increases due to version management
Solution Approach 1:
The system segments pod management by ownership, clearly separating pods into two categories: those owned by the deployment controller (new versions) and those assumed by the service controller (previous versions). This segmentation eliminates the complexity of unified version management by assigning clear responsibilities to different controllers based on pod version status.
Solution Approach 2:
The system implements dynamic ownership transfer based on deployment phase. During rolling updates, the service controller dynamically assumes ownership of previous version pods, and this ownership is automatically transferred back when updates complete. This dynamic approach simplifies version management by adapting controller responsibilities to the current deployment state rather than using static management rules.
3Measurement precision
If network routing rules are created for previous version pods, then request routing accuracy is improved, but network configuration complexity increases
Solution Approach 1:
The system applies local quality by creating specific network routing rules tailored to each service's needs rather than implementing a universal routing mechanism. Each service controller creates routing rules locally for its own previous version pods, allowing precise control over traffic routing while keeping the overall network configuration manageable through decentralized rule creation.
Data Source
AI summary
According to one embodiment, a method, computer system, and computer program product for container lifecycle management is provided. The embodiment may include registering a topology for a plurality of deployments in a container orchestration platform. The embodiment may include detecting a rolling update to a deployment of the plurality of deployments. The embodiment may include assuming ownership of at least one previous version pod of the deployment. The embodiment may include creating network routing rules for the at least one previous version pod. The embodiment may include routing network packets to the at least one previous version pod based on the created network routing rules.


