feature request: keepalived #142
Replies: 4 comments
|
Interested - I'll put it on the list. TM already has an agent on every node, which is the natural shape for this: each agent reads its own keepalived state, the Host shows the cluster. Before I commit to a design, please share more details so I can see what you really want day to day:
No promises on timing yet, but it fits the agent model well and I'd take your setup as the reference fixture when it lands. |
`keepalived.conf`
Here is And
Details
seems I have some more check on
|
|
Thanks for this, and for the detail in your follow-up. The configs, the notify and maintenance scripts, and the answers about your two clusters gave me enough to research this properly rather than guess, which I did. I'm going to hold off on it for now, and I'd rather give you the real reasons. There's no zero-configuration way to read keepalived state. No control socket, no status command, no metrics endpoint. Every mechanism (notify scripts, Stale state is actively dangerous here. A notify-written state file says Maintenance and FAULT are the same signal. With The maintenance toggle is the part that worries me most. It moves production traffic. Traefik Manager has no roles or permissions today, so every logged-in user has full access. Putting a failover control in the UI without an authorization model behind it is a bigger change to TM's security posture than the feature is worth, and doing it properly means building RBAC first. None of this is a criticism of the request. It's a good idea and your setup is a clean fit for the agent model, which is why I looked seriously at it. The problem is that the honest version costs an owned config contract, a liveness protocol, and an authorization model, and the first time something goes wrong in someone's failover they'll be looking at TM. One thing that might help you directly: if you're on keepalived 2.0.0 or newer, On prior art: I'll leave this open rather than closing it. If keepalived grows a proper read-only status interface, the calculus changes. In the meantime, if you want to link this around and it picks up interest from other people running Traefik behind a VIP, that's a genuine signal and I'll revisit. |
|
Thanks a lot for the time invested already! I will indeed look into the enhancements you proposed I believe keepalived was a mystery to myself for a long time and this old config merits a dust-off Also, thanks a lot for the long and clear explanation, you didn't owe me anything but it's really appreciated 👍 Keep up the good work ❤️ |
Uh oh!
There was an error while loading. Please reload this page.
What problem does this solve?
As you have the agent version I suspect I am probably not the only one to run traefik in failover on several instances and having looked long and hard I believe there's nothing foss better than keepalived that I went with.
For me it could make sense to have some stats and maybe actions to manage keepalived.
Proposed solution
I would like to know if you'r interested before going too much in the details but in short:
Currently my
getstate.shprints the keepalived status as followsAnd I found online a guide so I'm probably not the only one to use an empty file
maintenanceon the traefik folder, when it's present on a node it's keepalived consoders itself as faulty and leaves the other nodes as master. Removing themaintenancefile and keepalived comes back alive if traefik is up.Alternatives you've considered
Keepalived being very minimal the maintenance mode might be implemented differently by other users (i considered curl into traefik on a custom maintenance page that one might also be easily doable here as you already manipulate the API, it was harder for me at the time)
Also tracking it's status over time might be a full endeavor...
And no idea how to get the status of the "cluster" cleanly, I suspect it can only be done cleanly with one agent per node and a page that shows data of all agents.
I considered vibe coding this as a one-time use app for my own need but finding noone has a gui for keepalived as it's still widely used lets me think there's a slot for a formal solution, your intégration of a mobile app too is amazing so I wanted to ask at least and see how you feel.
Which area does this relate to?
Other
Additional context
Testing it might be a chore...
All reactions