kubernetes: Port collision between kube-proxy and node-problem-detector (standalone mode)

Is this a BUG REPORT or FEATURE REQUEST?:

/kind bug

What happened: Since k8s v1.7, kube-proxy starts listening on 0.0.0.0:10256 to serve default /healthz traffic from L4 external/internal loadbalancer (https://github.com/kubernetes/kubernetes/pull/44968).

When node-problem-detector runs in standalone mode, it is a real daemon on node. By default, it will bind 127.0.0.1:10256 for the use of node problem detector server (https://github.com/kubernetes/node-problem-detector/blob/v0.4/cmd/options/options.go#L66-L67).

This breaks kube-proxy’s default healthz server:

E0719 22:13:54.263011       5 healthcheck.go:302] Failed to start healthz on 0.0.0.0:10256: listen tcp 0.0.0.0:10256: bind: address already in use

What you expected to happen: kube-proxy and node-problem-detector should use different ports.

How to reproduce it (as minimally and precisely as possible): Create a 1.7 cluster with node-problem-detector enabled with standalone mode.

Anything else we need to know?: /assign /sig network cc @ajitak @Random-Liu @nicksardo

Environment:

  • Kubernetes version (use kubectl version):
  • Cloud provider or hardware configuration**:
  • OS (e.g. from /etc/os-release):
  • Kernel (e.g. uname -a):
  • Install tools:
  • Others:

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 16 (6 by maintainers)

Commits related to this issue

Most upvoted comments

I am suffering from the same problem Kubernetes 1.10.3 on AWS using kops