Enable endpoint-mode dnsrr for traefik itself #52

Open
opened 2025-04-22 07:37:42 +00:00 by decentral1se · 6 comments
Owner

#50 (comment)

/cc @mirsal

AFAIU we need to repeat the change from the previous PR but then for the traefik service?

https://git.coopcloud.tech/coop-cloud/traefik/pulls/50#issuecomment-23915 /cc @mirsal AFAIU we need to repeat the change from the previous PR but then for the `traefik` service?
Owner

nope, not while ports are exposed using the ingress routing mesh (which is useless in single-server deployments btw).
it can be done in compose.host.yml though

nope, not while ports are exposed using the ingress routing mesh (which is useless in single-server deployments btw). it can be done in `compose.host.yml` though
Author
Owner

Argh, sorry, I'm just not sure what change to make altho I've read everything in #50 5 times 😅

If you have time for a PR, then I'll get on a review again?

Argh, sorry, I'm just not sure what change to make altho I've read everything in #50 5 times 😅 If you have time for a PR, then I'll get on a review again?
Author
Owner

@p4u1 do you have any understanding of how to resolve this? i would like to see if there are any performance gains we can win back from this change.... the saga begins with #52 (comment)

@p4u1 do you have any understanding of how to resolve this? i would like to see if there are any performance gains we can win back from this change.... the saga begins with https://git.coopcloud.tech/coop-cloud/traefik/issues/52#issue-4599
Owner

I didn't read everything but from my understanding it makes sense to change:

  • enable host mode by default (we need an option to disable it)
  • set endpoint-mode to dnsrr (we need an option to set the current value)

This will be a breaking change though and we should test it for a while

@Apfelwurm what do you think?

I didn't read everything but from my understanding it makes sense to change: - enable host mode by default (we need an option to disable it) - set endpoint-mode to dnsrr (we need an option to set the current value) This will be a breaking change though and we should test it for a while @Apfelwurm what do you think?
Owner

i would like to see if there are any performance gains we can win back from this change...

Bypassing the ingress routing mesh (which is actually implemented as a hidden haproxy container) will shave a few milliseconds of latency off every ingress request, but more important than performance, host mode port publishing for traefik would give us IPv6 ingress

> i would like to see if there are any performance gains we can win back from this change... Bypassing the ingress routing mesh (which is actually implemented as a hidden haproxy container) will shave a few milliseconds of latency off every ingress request, but more important than performance, host mode port publishing for traefik would give us IPv6 ingress
Owner

@Apfelwurm what do you think?

After reading in the topic again again (thanks @mirsal for #50 (comment) , never read one single message that told me more about docker internals that i did not know before! Swarm is pretty new to me :D Strong one, cleared up so much in my head about stuff i recently saw that i could not explain till now!) my take on this would be similar to your propsal @p4u1:

  • move the overwrites of compose.host.yml to our default compose.yml and empty it out, so the upgrade deploy does not break when people have it enabled in their envs (or is this maybe already handled in abra? :D)
  • add dnsrr mode to traefik in compose.yml
  • add a compose.no-host.yml that overwrites endpoint-mode to vip and the mode of the ports 80/443 to ingress
  • Major release :D

Since this might be really bad for the one person that most likeley has any special setup, that breaks by this change in default behaviour, maybe we ask again in matrix (this might be something for the non tech channel, even though its deeply tech), if someone is running multiple traefik instances on one server or at least announce that we plan this breaking change?

> @Apfelwurm what do you think? After reading in the topic again again (thanks @mirsal for https://git.coopcloud.tech/coop-cloud/traefik/pulls/50#issuecomment-21766 , never read one single message that told me more about docker internals that i did not know before! Swarm is pretty new to me :D Strong one, cleared up so much in my head about stuff i recently saw that i could not explain till now!) my take on this would be similar to your propsal @p4u1: - move the overwrites of `compose.host.yml` to our default `compose.yml` and empty it out, so the upgrade deploy does not break when people have it enabled in their envs (or is this maybe already handled in abra? :D) - add `dnsrr` `mode` to traefik in `compose.yml` - add a `compose.no-host.yml` that overwrites `endpoint-mode` to `vip` and the `mode` of the `port`s 80/443 to `ingress` - Major release :D Since this might be really bad for the one person that most likeley has any special setup, that breaks by this change in default behaviour, maybe we ask again in matrix (this might be something for the non tech channel, even though its deeply tech), if someone is running multiple traefik instances on one server or at least announce that we plan this breaking change?
Sign in to join this conversation.
No Label
4 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: coop-cloud/traefik#52
No description provided.