IP Address Sharing for Kubernetes Services
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods require load balancing plugins to create loadbalancer services, which are not applicable to bare metal clusters, and do not allow multiple services to share an IP address, especially when the number of services exceeds available IP addresses.
Innovation Solution
Assigning a combination of an IP address and port to multiple services, with routing rules to direct service requests to the appropriate pods, enabling IP address sharing and service creation without load balancing plugins, even in bare metal clusters.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If load balancing plugins are used to create loadbalancer services, then service requests can be routed to pods, but the method is not applicable to bare metal clusters and requires additional plugin components
Solution Approach 1:
The patent extracts the load balancing functionality from proprietary cloud provider plugins and implements it using standard Kubernetes networking components (IPTables, IPVS) that are universally available across different platforms including bare metal clusters. This extraction eliminates the dependency on cloud-specific plugins while preserving the load balancing capability.
Solution Approach 2:
The system enables Kubernetes clusters to self-configure load balancing services using built-in networking capabilities without requiring external plugin installations. The load balancer service automatically utilizes available IPTables or IPVS mechanisms on the underlying operating system, making the system self-sufficient across different deployment environments.
2Quantity of substance
If each service is assigned a unique IP address, then routing is simplified, but the number of available IP addresses is insufficient when the number of services exceeds available IP addresses
Solution Approach 1:
The patent extends the service identification space from two dimensions (IP address only) to three dimensions (IP address, port, and protocol). By utilizing the port number and protocol type as additional distinguishing dimensions, multiple services can share the same IP address while maintaining unique routing paths through different port-protocol combinations.
Solution Approach 2:
A single IP address is made multi-functional by allowing it to serve multiple services simultaneously through port multiplexing. The same IP address can handle requests for different services by directing traffic to appropriate ports based on the service type, thereby maximizing the utilization of limited IP address resources.
3Quantity of substance
If multiple services share an IP address using different ports, then IP address utilization improves, but routing rules become more complex to direct requests to appropriate services
Solution Approach 1:
The patent introduces a service abstraction layer that acts as an intermediary between incoming requests and the underlying IP address-port routing mechanism. This layer automatically translates service-level routing requirements into IPTables or IPVS rules, shielding users from the complexity of manual routing rule configuration while enabling efficient IP address sharing.
Solution Approach 2:
The system dynamically adjusts routing parameters (IPTables rules, IPVS virtual server configurations) based on service registration and deployment information. When services are added, modified, or removed, the routing rules are automatically updated to reflect current service states, maintaining routing efficiency without manual intervention.
Data Source
AI summary
In an example, a first Internet Protocol (IP) address is assigned to a first service. The first service includes a plurality of pods and is to operate on a first port. A first node on which the first IP address is to be configured is selected from among a plurality of nodes based on a number of IP addresses configured on each of the plurality of nodes. Further, the first IP address is configured on the first node. The first IP address is assigned to a second service as well. The second service comprises a plurality of pods and is to operate on a second port.


