Networking and ports
This page is the operator's network contract: every connection that exists at runtime, who initiates it, on which port, and with what encryption and authentication. It is written for platform and security engineers designing NetworkPolicies or reviewing the deployment's network exposure. For the application developer's view of connecting, see Connecting to your cluster.
The connection matrix
| # | Connection | Port | TLS | Authentication |
|---|---|---|---|---|
| 1 | Application clients → Valkey pods | TCP 6379 | If the cluster has spec.tls | ACL user credentials; see ACLs |
| 2 | Valkey pod ↔ Valkey pod (cluster bus) | TCP 16379 | Forced on for TLS clusters (tls-cluster yes) | Cluster bus protocol |
| 3 | Valkey pod → its primary (replication) | TCP 6379 | Forced on for TLS clusters (tls-replication yes) | The _momento_repl system user |
| 4 | Operator → Valkey pods | TCP 6379 | If the cluster has spec.tls | The _momento_operator system user |
| 5 | Operator → Kubernetes API server | Cluster-specific | Yes | The operator's ServiceAccount |
| 6 | Operator and Valkey pods → cluster DNS | UDP/TCP 53 | — | — |
| 7 | kubelet → Valkey pods (TLS clusters only) | TCP 6379 | TCP probe, no handshake | None; see the probe note below |
Details behind each row:
- Client port 6379 in both modes. A plaintext cluster listens on
port 6379. A TLS cluster closes the plaintext listener (port 0) and serves TLS on the same number (tls-port 6379). There is never a mode with both, and the port number your clients use does not change when TLS is enabled. - Cluster bus 16379. Node-to-node gossip and failure detection use the cluster bus; the operator declares 16379 (Valkey's convention of client port plus 10000) as the named
valkey-busport on every pod and on the Service. Application clients never use it. - The operator connects to pods directly, never through the Service: by pod IP on plaintext clusters, and by per-pod DNS name on TLS clusters so the certificate hostname verifies. It authenticates as
_momento_operatorand presents no client certificate; the cluster runstls-auth-clients no, so the server never requires client certificates (no mutual TLS is enforced). The security model lists both system users' exact grants. - Probes. Plaintext clusters use an exec liveness probe (
valkey-cli PINGinside the container), which generates no network traffic. TLS clusters use a TCP socket probe on 6379, so the kubelet on each Kubernetes node opens connections to local Valkey pods.