Skip to content

Health-check load balancer backends and drop unhealthy ones from the Maglev table #704

Open

Description

@privateip

Summary

datum-cloud/enhancements#884 requires the load balancer to spread traffic across active, healthy endpoints. Today a NetworkRule's backend list is static. When a backend dies, it keeps its slot in the Maglev table and every flow hashed to it fails until someone edits the rule.

The constraint: every gateway node must build the same Maglev table, or a flow that moves between nodes lands on a different backend. Health can't be decided locally on each node. The healthy set has to be shared state that every node reads.

Acceptance criteria

  • A short design doc covers: who probes (each gateway node, one per region, or the backend's own node), what the probe is (TCP connect, UDP), where the result lives (rule status or a new CR), and how flapping is damped
  • Unhealthy backends are removed from the input to the Maglev table on every gateway node, and restored when they recover
  • Per-backend health appears in status for Public API for network load balancer #696 to expose
  • A lab test kills a backend and confirms new flows avoid it without operator action

Phase 2 of #698.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Fields

    Priority

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions