Skip to content

Commit

Permalink
docs(node filtering): add neighbourhood incoming checks metric and dr…
Browse files Browse the repository at this point in the history
…awing

Signed-off-by: Clément Nussbaumer <[email protected]>
  • Loading branch information
clementnuss committed Apr 5, 2024
1 parent 2efa0d8 commit f8b17eb
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,10 @@ To combat this, a node filtering feature was implemented, which works as follows
- it computes its own node name checksum, and queries the next 10 (per default)
nodes in the sorted checksums list

Here's an example with 6 nodes, where each node queries the next 3 nodes:

![node filtering drawing](./doc/node_filtering.png)

Thanks to this, every node is making queries to the same 10 nodes, unless one
of those nodes disappears, in which case kubenurse will pick the next node in
the sorted checksums list. This comes with several advantages:
Expand All @@ -242,6 +246,14 @@ Per default, the neighbourhood filtering is set to 10 nodes, which means that
on cluster with more than 10 nodes, each kubenurse will query 10 nodes, as
described above.

##### Neighbourhood incoming checks metric

It is possible to check that each node receives the proper number of
neighbourhood queries with the `kubenurse_neighbourhood_incoming_checks`
metric. If you have the neighbourhood limit set to e.g. 10, then this
metric should be equal to 10 on all nodes, with some variations during a
rollout restart.

To bypass the node filtering feature, you simply need to set the
`KUBENURSE_NEIGHBOUR_LIMIT` environment variable to 0.

Expand Down
Binary file added doc/node_filtering.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit f8b17eb

Please sign in to comment.