Skip to content

Introspect current service discovery #2165

@grampelberg

Description

@grampelberg

What problem are you trying to solve?

There is a set of problems (see #1595 for example) where the visible state of a workload in k8s differs from what appears to be happening on the linkerd side. It can be particularly frustrating to debug this set of problems because of where all the information lives.

How should the problem be solved?

Introduce a new CLI command:

$ linkerd -n emojivoto endpoints web
IP         PORT  POD                   VERSION WEIGHT IDENTITY
10.0.0.1   8080  web-6c6f6dbf44-9qjst  41519   10     web.deployment
10.0.0.2   8080  web-6c6f6dbf44-abcde  41519   10     web.deployment
10.0.0.3   8080  web-6c6f6dbf44-12345  41519   10     web.deployment

During an update, the versions would change during the rollout.

Some other nice additions:

  • Show the parents (replicaset, deployment) and their versions.
  • Show both endpoints in k8s and endpoints from discovery. For any disagreements, show the source as a new column.

Any alternatives you've considered?

$ linkerd check
endpoints
----------
√ is in sync with the kubernetes api

It'd be nice to have both, but the detailed visibility is more important.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions