Decoupling Configuration Data for Virtual Machine Workloads
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current Kubernetes systems are limited in managing configuration and secret information for applications executing outside of pod contexts, such as within virtual machines (VMs), lacking the ability to decouple and update this information without modifying the application code.
Innovation Solution
A virtualized computing system with a host cluster featuring a virtualization layer that supports execution of VMs, including pod VMs and native VMs, integrated with an orchestration control plane. This control plane manages the lifecycles of VMs and provides decoupled configuration and secret information to native VMs through management agents, enabling secure and portable application deployment.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If configuration and secret information are embedded in application code for VMs, then the application can access the information, but the application cannot be updated without modifying the code and the information is not securely managed
Solution Approach 1:
The patent extracts configuration and secret information from the application code itself and places it into external Kubernetes objects (ConfigMaps and Secrets). This allows the application to access the information through environment variables or mounted files without having the information embedded in the code, enabling secure management and updates without code modification.
Solution Approach 2:
The patent introduces Kubernetes ConfigMaps and Secrets as intermediary objects that store configuration and secret information. These intermediaries bridge the gap between the application and the information it needs, allowing the application to access the data without direct embedding in code, thus enabling secure management and live updates.
2Adaptability or versatility
If configuration and secret information are updated in the application code, then the application can use the updated information, but the application code must be recompiled and redeployed
Solution Approach 1:
The patent makes configuration and secret information dynamic by storing it in external Kubernetes objects that can be updated independently of the application lifecycle. When ConfigMaps or Secrets are updated, the changes are automatically reflected in the running application through environment variables or mounted files, enabling live updates without recompilation or redeployment.
Solution Approach 2:
The patent prepares configuration and secret information in advance as separate Kubernetes objects (ConfigMaps and Secrets) before the application needs them. This preliminary preparation allows the information to be updated independently and automatically applied to the application when needed, without requiring code changes or application restarts.
3Ease of manufacture
If configuration and secret information are stored externally to pods, then the information can be managed separately, but the mechanism must work for both pod and non-pod workloads
Solution Approach 1:
The patent creates a universal mechanism using Kubernetes ConfigMaps and Secrets that works for both pod-based and non-pod-based workloads. The same external storage mechanism and injection methods (environment variables, mounted files) are used regardless of whether the workload is a pod or a VM, providing ease of management and broad compatibility.
Solution Approach 2:
The patent segments the management of configuration and secret information from the workload execution context. By using external Kubernetes objects that are independent of pods, the system separates the information management layer from the workload layer, allowing the same mechanism to serve multiple workload types including pods and VMs.
Data Source
AI summary
An example virtualized computing system includes: a host cluster having a virtualization layer directly executing on hardware platforms of hosts, the virtualization layer supporting execution of virtual machines (VMs), the VMs including pod VMs and native VMs, the pod VMs including container engines supporting execution of containers in the pod VMs, the native VMs including applications executing on guest operating systems; an orchestration control plane integrated with the virtualization layer and including a master server and native VM controllers, the master server managing lifecycles of the pod VMs and the native VMs; and management agents, executing in the native VMs, configured to receive decoupled information from the master server through the native VM controllers and to provide the decoupled information for consumption by the applications executing in the native VMs, the decoupled information including at least one of configuration information and secret information.


