Skip to content

Distributor requires ingester configuration to access ring state #5800

Open
@jakubgs

Description

@jakubgs

Describe the bug
While trying to move away from a multi kvstore configuration as suggested by @friedrichg I discovered bizzare behavior. I was using both ETCD and Consul as secondary, mistakenly thinking this could allow me to easily switch to Consul in case of an ETCD outage, but apparently that is not so.

When I removed the configuration for multi kvstore and reduced it to just use ETCD my distributors could not notice any of the Ingesters in the ring. First they appeared as Enhealthy, and when the forget button was pressed they simply disappeared. This confused me quite a bit, but on a hunch I added an ingester configuration section in the config for my distributor nodes:

ingester:
  lifecycler:
    ring:
      ...

And after that the distributor started recognizing the ingesters that were using ETCD as their primary kv store.

This shows that the distributor service actually requires ingester configuration to interact with ingesters.
Considering the documentation for ingester_config states:

image

Which is clearly wrong, because it ALSO configures things for the distributor. Only though pure instinct did I discover this.

To Reproduce
Steps to reproduce the behavior:

  1. Start Cortex 1.16.0
  2. Configure distributor node using only the distributor config section to use kv store other than default.
  3. Notice that it continues to read ingester ring state from the ingester configuration.

Expected behavior
Sane one.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions