Make kube-proxy ipset parameters 'hashSize' and 'maxElem' customizable #129389
Description
What would you like to be added?
Allow users to configure ipset parameters 'hashSize' and 'maxElem' in kube-proxy configuration. These parameters should be customizable via the kube-proxy config file or command line flags.
Why is this needed?
In our use case, we have multiple LAN devices that need to interact with services in the cluster via RTP media streams. Each service can have thousands of ports, and we assign an external IP for each LAN to access these services. This results in the required ipset size reaching "ports num" * "external IP num," which can exceed the default limit of 65536.When the ipset size reaches its limit, any new services added will not take effect.
By making these parameters configurable, users can adjust the size based on their specific needs, providing greater flexibility and adaptability. Additionally, when modifying maxElem
, users should also consider adjusting hashSize
to achieve optimal performance, allowing them to balance memory usage according to their current scenario.
This feature will enhance kube-proxy's scalability and performance in diverse environments.
There are also many users like us who need to expose a large number of ports:
#23864
#23864 (comment)