-
-
Notifications
You must be signed in to change notification settings - Fork 179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: Add support for dualstack loadbalancers #202
base: main
Are you sure you want to change the base?
Conversation
Hello, thanks for your pull request. I'm a little confused on how your change goes along with the previous merged PR 'Add dualstack service support #187'. I'm sorry, but I don't have a k3s cluster to test. But what combinations of LoadBalancers are needed and how does the result look like? Maybe you could post your service description from kubernetes so I do understand the difference better? I just want to make sure that I do understand it so I might be able to add some form of documentation on how to configure LoadBalancers for this chart. |
I hope the following explanation will help with this. My setup consists of a single Ubuntu VM running a default k3s installation in dual stack mode. The IP addresses are currentThis minimal configuration shows the problem in action. For k3s The dual stack feature implemented by #187 creates separate services for each IP version. pihole.yaml dualStack:
enabled: true
serviceDns:
mixedService: false
type: LoadBalancer
serviceDhcp:
type: LoadBalancer
With only a single node each port (like 53/udp) can only be bound to one load balancer.
The DNS resolution is not working as indicated by the reported status. Click to expand!
pull requestUsing the dual load balancer feature from this PR, we create a single LB per port. For backwards compatibility the config value is disabled by default. pihole.yaml dualStack:
enabled: true
loadBalancer: true
serviceDns:
mixedService: false
type: LoadBalancer
serviceDhcp:
type: LoadBalancer
All load balancers are running and are bound to the correct IP addresses. DNS resolution works as expected. Click to expand!
|
Add config value `dualStack.loadBalancer` to toggle dualstack support for loadbalancers (LB need to support this feature).
12a545d
to
bb340e6
Compare
What loadbalancer implementation are you using, is it the default k3s one? For MetalLB my former PR is working because with MetalLB it is possible to mount multiple LBs to one port. Since the last release of MetalLB they also support true dualstack LBs. Apart from this I think that your implementation isn't actually working because the Additional information for MetalLB:
|
I use the default integrated loadbalancer of k3s.
It does work for me. The soon to be deprecated |
FYI I've opened #214 to support the dualstack LB services and remove the |
Hey @DerRockWolf @AlexanderLieret should we combine this PR and #202 and do one breaking change which adds this feature and documents the change for everyone that want's to upgrade? How could we achieve this? |
While trying to deploy this helm chart in k3s on a dualstack setup, I noticed an error.
The integrated loadbalancer requires a single loadbalancer service per port and does not work with the split service. The external ip does stay
<pending>
because it does not have a free port.This PR fixes this issue by adding a config option to create dualstack loadbalancer services.
A minimal working example on k3s is: