Kubernetes Orchestrator Affinity Constraints and IP Persistence
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current orchestration platforms like KUBERNETES face challenges in efficiently deploying and managing multi-role applications, particularly in handling complex user requirements and virtualized storage volumes, which limits their ability to implement affinity and anti-affinity constraints and maintain IP addresses during pod replacements.
Innovation Solution
The proposed solution extends the functionality of KUBERNETES by using an orchestrator that coordinates with storage and networking plugins to create and manage containers and storage volumes, enabling multiple network interfaces, affinity and anti-affinity constraints, and maintaining IP addresses through a scheduling agent and CSI/CNI plugins, while also allowing for NUMA-aware CPU allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If KUBERNETES orchestration platform is used to deploy multi-role applications, then application deployment capability is provided, but ability to handle complex user requirements and implement affinity/anti-affinity constraints is limited
Solution Approach 1:
The patent segments the orchestration functionality by introducing separate affinity and anti-affinity constraint management modules that work alongside the existing KUBERNETES scheduler. This allows complex user requirements to be handled through modular constraint applications rather than requiring complete orchestration platform redesign, thus improving adaptability while managing complexity.
Solution Approach 2:
The patent introduces affinity and anti-affinity constraint specifications as intermediary layers between user requirements and the KUBERNETES scheduling mechanism. These constraints act as mediators that translate complex user requirements into scheduler-understandable parameters, enabling enhanced versatility without directly complicating the core orchestration platform.
2Reliability
If pod replacement is performed in KUBERNETES, then application continuity is maintained, but IP address is lost
Solution Approach 1:
The patent implements preliminary action by capturing and storing the IP address information of the original pod before it is terminated during replacement. This pre-capture of IP address data allows the system to subsequently assign the same IP address to the replacement pod, thereby maintaining IP address continuity and preventing information loss while ensuring application reliability.
3Productivity
If virtualized storage volumes are managed through KUBERNETES, then storage orchestration is provided, but efficient resource allocation and NUMA-aware CPU allocation are limited
Solution Approach 1:
The patent applies local quality by introducing NUMA-aware CPU allocation that assigns CPUs based on their specific NUMA node characteristics and proximity to storage resources. This localized CPU assignment optimizes resource allocation efficiency by ensuring that compute resources are allocated according to their physical location and performance characteristics, rather than using a uniform allocation approach.
Solution Approach 2:
The patent changes the scheduling parameters by incorporating NUMA topology awareness into the CPU allocation process. This parameter change allows the scheduler to consider NUMA node identifiers and proximity metrics when allocating CPUs to pods with storage requirements, thereby improving resource allocation efficiency while managing the added complexity through parameter-based control.
4Adaptability or versatility
If multiple network interfaces are implemented for pods, then network communication flexibility is improved, but networking plugin complexity increases
Solution Approach 1:
The patent implements universality by designing the networking plugin architecture to handle multiple network interface types through a unified interface. This multi-functional approach allows the same plugin infrastructure to support various network interface configurations and types, improving network communication flexibility without proportionally increasing plugin complexity through specialized code for each interface type.
Data Source
AI summary
A KUBERNETES installation processes a script and invokes a scheduling agent in response to encountering an instruction to create a pod. The scheduling agent is an agent of an orchestrator and performs tasks such as identifying a selected node, creating multiple interface objects with multiple IP addresses, and creating storage volumes in coordination with the orchestrator. Upon creation, the pod may call a CNI that is an agent of the orchestrator in order to configure the pod to use the multiple interface objects. The pod may call a CSI that is an agent of the orchestrator in order to bind a storage volume to the pod. The scheduling agent may coordinate with the orchestrator to implement affinity and anti-affinity rules for placement of pods and storage volumes. The script may also be transformed by the orchestrator in order to insert instructions implementing affinity and ant-affinity rules.


