1. Ports
  2. Port 10257

What Runs Here

Port 10257 is reserved for kube-controller-manager, a critical component of Kubernetes control planes. 1 The kube-controller-manager is the part of your cluster that actually does the work: it watches for changes to your resources (Deployments, Services, StatefulSets, and dozens of others) and makes reality match what you asked for.

Port 10257 itself doesn't serve your applications. It serves the controller manager's internal endpoints—health checks, metrics, and debugging information. If you check what's listening on 10257, you're checking the heartbeat of your cluster's automation engine.

The Port Category

10257 falls in the registered port range (1024-49151), which means IANA tracks it officially. This isn't a well-known port like 443 (HTTPS) or 22 (SSH). It's part of a vast middle tier: hundreds of services fighting for space in the ephemeral range. Most registered ports are only used by the specific applications that reserved them.

Kubernetes and This Port

The kube-controller-manager listens on 10257 as a deliberate choice for isolation. 2 It only binds to localhost by default—it refuses connections from anywhere else. This is security through architecture: the controller manager doesn't need to advertise itself. Other components on the control plane can reach it. Nothing outside the control plane can.

The port serves:

  • Health checks/healthz probes to confirm the controller manager is alive
  • Metrics — Prometheus-compatible metrics showing what the controllers are doing
  • Debugging endpoints — Information about the state of various reconciliation loops

All of this requires authentication. This is a port that works hard and takes no calls.

How to Check What's Listening

On a Linux system, find what's using port 10257:

sudo netstat -tlnp | grep 10257
# or
sudo lsof -i :10257
# or on newer systems
ss -tlnp | grep 10257

If you run Kubernetes, you'll see something like:

LISTEN  0  4096  127.0.0.1:10257  0.0.0.0:*  PID/kube-controller

The 127.0.0.1 matters. If anything is listening on 0.0.0.0:10257, that's a configuration error. The controller manager should never be exposed to the network. 3

Why Unassigned Ports (Still) Matter

Port 10257 is assigned, but it reveals something true about unassigned ports: the space between 1024 and 49151 is a kind of reservation system. Companies and projects register ports not because they have to, but because they want stability. They're saying: "This is ours. Others shouldn't use it."

The IANA port registry is like a phone book. It doesn't enforce anything—any application can listen on any port. But if everyone who built anything registered, we'd have a shared language. We'd know what to expect when we see a port number.

Most applications don't bother. They just pick a number. That's why you see random services listening on random high ports. The registered range exists for the projects that cared enough to ask permission.

Security Note

If port 10257 is exposed to the network, your cluster's control plane is compromised. Even with authentication required, this port should never be world-accessible. 4 Firewall it. Restrict access to control plane nodes only. If you see metrics or health endpoints leaking on 10257 from the outside, that's an alert.

  • 10250 — kubelet (node agent, also localhost-only by default)
  • 10251 — kube-scheduler (similarly internal)
  • 6443 — Kubernetes API server (the port your kubectl actually talks to)
  • 2379-2380 — etcd (the cluster's memory, stored and protected)

Frequently Asked Questions

بۇ بەت پايدىلىق بولدىمۇ؟

😔
🤨
😃