Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

The fastest way to find a Kubernetes timeout is to test from the inside out: connect to the application Pod IP, then the Service ClusterIP, then the external load-balancer or ingress address. The first hop that fails identifies the layer to repair. Pod-IP success with Service-IP failure usually narrows the fault to Service configuration, EndpointSlices, NetworkPolicy, kube-proxy, or conntrack; same-node success with cross-node failure points to the CNI, routes, host firewalls, or cloud network controls.

Use the first failing hop as your diagnosis

A timeout means a connection did not complete before the client deadline. It does not, by itself, prove that kube-proxy is broken. Kubernetes traffic crosses several independently configured layers, so changing multiple components at once destroys the evidence you need.

Hop Example test What a failure usually means
Application Pod IP curl -v -m 5 http://<pod-ip>:<port> The application is not listening as expected, the Pod is unhealthy, the Pod network is broken, or policy blocks the client.
Service ClusterIP curl -v -m 5 http://<cluster-ip>:<port> Inspect the Service ports, EndpointSlices, policy, kube-proxy programming, and conntrack.
External load balancer or ingress curl -v -m 5 http://<external-address>:<port> Check health probes, firewalls or NSGs, user-defined routes, return-path symmetry, and ingress logs.

The verbose output reports whether the TCP connection succeeded before any HTTP exchange. A refused connection is different from a timeout: refusal normally means a reachable host actively rejected the port, while a timeout indicates dropped, misrouted, or unanswered traffic.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Step-by-step timeout runbook

1. Test a Pod directly from a diagnostic Pod

Run the test from a Pod in the same network context as the failing client. Use a temporary diagnostic image that contains the protocol client you need, and record the client namespace, node, IP family, and destination port.

#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter | 4Pack Type C Female to A Male Cable Converter for Apple Duo 17 16 15 14 Plus,iWatch Watch 12 11 10,iPad 9 8 Air,Airpods 5 4
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
  1. List the selected Pods and their addresses: kubectl get pods -n <namespace> -o wide --show-labels.
  2. From the diagnostic Pod, run curl -v -m 5 http://<pod-ip>:<port>, or use the equivalent test for HTTPS, gRPC, DNS, or another protocol.
  3. On the application Pod, verify that the process is listening on the expected port and on 0.0.0.0 (or the Pod address), not only on 127.0.0.1. Check readiness and container logs.

If the direct Pod-IP request fails, do not troubleshoot the Service yet. Fix the application listener, container port, Pod health, node-level networking, or policy first. A Service cannot make an unreachable backend responsive.

2. Validate the Service definition

Inspect both the summary and the full object:

kubectl get svc <name> -n <namespace>
kubectl describe svc <name> -n <namespace>

Compare every entry in spec.ports[] with the request you are making. Confirm the Service port, targetPort, protocol, and any named-port spelling. A numeric targetPort must match the container’s listening port; a named target must exactly match a container port name. TCP, UDP, and SCTP are distinct protocols. A typo can leave healthy Pods running while Service traffic goes nowhere.

Also verify that the client is using the correct ClusterIP and port, and that it is not accidentally calling a headless Service, an IPv6 address from an IPv4-only client, or a stale address copied from an earlier deployment.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Inspect EndpointSlices and readiness

EndpointSlices show which addresses Kubernetes has associated with the Service:

kubectl get endpointslices -n <namespace> -l kubernetes.io/service-name=<name>

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter | USB C Dongle with 90W Max Power Delivery, 3×5Gbps USB A Data Ports, for MacBook, Dell, and More (Charger Not Included)
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

If the ENDPOINTS column is <none>, check the Service selector against the Pods’ metadata.labels. Kubernetes documentation specifically advises this check when no endpoints are listed. A selector mismatch is the usual cause, but an endpoint can also disappear because its Pod is not Ready. Compare kubectl get pods -n <namespace> with the readiness probe status and inspect the EndpointSlice conditions.

When endpoints exist, verify that their addresses, ports, and address family are the ones you expect. An endpoint pointing to a terminating, wrong-port, or unreachable Pod explains a Service failure even though the Service object itself is present.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

4. Check NetworkPolicy in both directions

Policy is directional. Review ingress rules on the backend Pods and egress rules on the client Pod, including namespace and pod selectors, ports, protocols, and IP blocks. A policy that allows application traffic but denies the diagnostic namespace can make your test misleading.

Reproduce the request from a controlled diagnostic Pod while preserving the intended security policy. Temporarily broadening a rule can isolate policy as the cause, but restore the least-privilege rule immediately and record the exact source labels and destination ports that worked.

5. Verify kube-proxy on the client node

The default Service implementation on most clusters is kube-proxy. It watches Services and EndpointSlices, then programs the node’s forwarding mechanism so traffic sent to a ClusterIP is translated and delivered to an endpoint.

Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter | 85W Max PD, 2 USB 3.0 & 1 USBC Data Ports, SD/TF Card Reader, for Laptops/Mac and Other Type C Devices (Charger Not Included)
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
  1. Find the node running the client Pod: kubectl get pod <client> -n <namespace> -o wide.
  2. Check the kube-proxy DaemonSet and the instance on that node: kubectl -n kube-system get pods -l k8s-app=kube-proxy -o wide.
  3. Read logs for API-watch failures, permission errors, repeated sync failures, or messages showing that Service and EndpointSlice updates were not applied: kubectl -n kube-system logs <kube-proxy-pod>.
  4. Use the tooling supported by your distribution to inspect the generated rules for the affected ClusterIP and endpoint. In iptables mode this means the relevant NAT and forwarding chains; in IPVS or nftables mode use the corresponding supported inspection commands.

Compare a working node with the failing node. If the Service rules are absent only on one node, investigate kube-proxy health, node-local firewall changes, or a stale watch before changing the Service manifest.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

6. Look for conntrack exhaustion or invalid state

kube-proxy’s forwarding often relies on connection tracking. A full table, aggressive timeouts, or invalid return state can drop or reset otherwise valid flows. Inspect usage and drops on the affected node with the node distribution’s conntrack tools and metrics; common examples include conntrack -S and the kernel’s nf_conntrack_count and nf_conntrack_max values when those interfaces are available.

Do not raise limits blindly. Capacity changes consume memory and may hide a connection-leak or burst problem. Correlate counts, insertion failures, invalid-state counters, connection rates, and node memory with the workload. Apply timeout or capacity changes according to the node operating system and cluster distribution’s guidance, then retest the same path.

7. Separate same-node from cross-node traffic

Run the Pod-IP test with a client scheduled on the same node as the backend and with another client forced onto a different node. This comparison isolates the overlay or routed inter-node path.

  • If both tests fail, focus on the application, Pod network, policy, or node-local configuration.
  • If same-node succeeds but cross-node times out, inspect the CNI daemon logs and configuration, Pod CIDR routes, encapsulation or MTU settings, host firewall rules, cloud security groups or NSGs, and user-defined routes.
  • If only one node or availability zone fails, compare its route table, kernel forwarding settings, CNI state, and cloud network controls with a working node.

Kubernetes requires a CNI plugin to implement the network model. The exact repair is therefore plugin- and platform-specific; use that plugin’s documented route, overlay, encryption, MTU, and upgrade procedures rather than applying a generic kube-proxy fix.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray | Data transfer & Fast charging for MacBook, iPhone 17/16/15, iPad, Samsung Galaxy, Apple Watch
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

8. Handle a Pod calling its own Service

A Pod accessing its own Service VIP is a hairpin path. In the documented bridge-and-iptables scenario, kubelet’s valid hairpin-mode settings are hairpin-veth and promiscuous-bridge. Check the kubelet configuration and the CNI’s bridge behavior when a Pod can reach another endpoint but its own Service address hangs.

Test from a separate Pod as well. If only self-access fails, avoid changing application code until hairpin behavior, bridge settings, and Service rules have been verified.

9. Troubleshoot external addresses last

Once Pod-IP and ClusterIP requests work, test the load-balancer or ingress address. Check:

  • Load-balancer health-probe protocol, path, source ranges, and the node or Pod port it probes.
  • Cloud NSGs, security groups, host firewalls, and perimeter firewalls.
  • User-defined routes and return-path symmetry; asymmetric routing can make a successful request appear to time out.
  • Ingress-controller access and error logs.

If there is no ingress-controller log entry, traffic may not have reached the cluster. A healthy in-cluster path does not prove that the external listener, probe, or cloud route is correct.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How Service traffic is supposed to flow

A client sends to a virtual ClusterIP. kube-proxy programs the node so that the packet is matched, a backend endpoint is selected, and destination translation or forwarding delivers it to the Pod. The return path must be valid, and connection tracking must remember the translation. EndpointSlices provide the current backend set; readiness controls whether a Pod is eligible.

Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display | 85W Max PD, 1 Powered USB-C 5Gbps & 2 Powered USB-A 3.0 5Gbps Data Ports, for MacBook Pro, MacBook Air, Dell and More (Black)
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

This explains two common observations:

  • A Service can exist with no usable backends. The object may have a ClusterIP while a selector mismatch or failed readiness probe leaves EndpointSlices empty.
  • Pod-IP success plus ClusterIP failure means the application and at least one Pod route work. Concentrate on Service ports, selectors, policy, kube-proxy programming, and conntrack instead of restarting the application repeatedly.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

kube-proxy modes and what to inspect

Mode Where forwarding state lives Useful comparison
iptables Kernel iptables chains generated from Services and endpoints. Compare the affected ClusterIP’s NAT and forwarding rules on working and failing nodes.
IPVS Kernel IPVS virtual-service and destination state. Inspect whether the virtual service and real-server entries contain the expected endpoints.
nftables Kernel nftables ruleset used by the distribution’s kube-proxy implementation. Use the distribution-supported nftables inspection method and verify that updates are arriving.

Mode availability and inspection commands vary by Kubernetes release and distribution. Do not assume that an iptables command can diagnose an IPVS or nftables cluster. First identify the configured mode, then use its supported tooling. Changing modes is a design change, not a first-response repair for one timeout.

Symptom-to-cause decision table

Observed behavior Most likely layer Next check
Pod-IP request is refused Application listener or port mismatch Process bind address, container port, readiness, and logs.
Pod-IP request times out Pod network, policy, node firewall, or application that drops connections Repeat from same-node and cross-node clients; inspect policy and CNI.
Pod-IP works; ClusterIP times out Service definition, EndpointSlices, kube-proxy, conntrack, or policy Check ports and selectors, then node-local Service rules.
EndpointSlices show <none> Selector mismatch or no Ready Pods Compare labels and readiness conditions.
Same-node works; cross-node times out CNI, Pod CIDR route, MTU, host firewall, or cloud route Compare routes, CNI logs, and cloud controls between nodes.
ClusterIP works; external address times out Probe, load balancer, ingress, firewall, NSG, UDR, or asymmetric return path Check probe health and whether ingress receives a request.
Only a Pod calling its own Service fails Hairpin configuration Check kubelet hairpin-mode and bridge behavior.

IPv4, IPv6, and protocol details that change the diagnosis

Record the address family for every test. A dual-stack Service can publish IPv4 and IPv6 addresses, while a client, CNI, firewall, or external load balancer may support only one family. Test each family explicitly and inspect EndpointSlice address types before blaming kube-proxy.

Likewise, match the protocol end to end. A TCP curl cannot validate a UDP Service, and an HTTP success does not prove that a separate gRPC or TLS listener is reachable. Confirm the Service protocol, target port, container listener, and any ingress protocol translation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Fixes that avoid making the outage worse

  • Change one layer at a time and rerun the same five-second test after each change.
  • Save the original Service YAML, EndpointSlice output, kube-proxy logs, node identity, and policy before editing.
  • Do not delete and recreate a Service merely to refresh rules; that changes the ClusterIP and can break clients that cached it.
  • Do not disable NetworkPolicy, host firewalls, or cloud security controls globally as a first step. Use a narrowly scoped diagnostic rule or an isolated test namespace.
  • Do not tune conntrack limits without checking memory, connection rates, and invalid-state counters.
  • Do not replace the CNI or switch kube-proxy mode during an incident unless the platform’s recovery procedure requires it and you have a rollback plan.

Preventing future Service timeouts

Make configuration errors visible

  • Use admission or CI checks for Service selectors, named ports, protocol values, and container-port consistency.
  • Alert when a production Service has zero ready endpoints or when EndpointSlice counts drop unexpectedly.
  • Keep readiness probes aligned with the actual serving port and dependency requirements so unready Pods are removed quickly.

Monitor every network layer

  • Collect kube-proxy sync and API-watch errors, CNI health and route errors, node firewall drops, and conntrack utilization.
  • Track successful and failed requests separately for Pod IP, ClusterIP, and external addresses.
  • Test both same-node and cross-node connectivity after CNI, kernel, or cloud-route changes.

Document the platform-specific path

Record the cluster’s Kubernetes version, kube-proxy mode, CNI implementation, IP families, policy enforcement point, Pod CIDR layout, and cloud route controls. During an incident, this prevents engineers from running iptables commands on an IPVS or nftables node, or treating a cloud NSG failure as an application outage.

A compact incident checklist

  1. Capture the exact source Pod, node, destination name or IP, port, protocol, address family, and timeout.
  2. Test the Pod IP with curl -v -m 5 or the protocol-equivalent client.
  3. Validate Service ports, targetPort, protocol, and ClusterIP.
  4. Inspect EndpointSlices, selectors, endpoint addresses, and readiness.
  5. Review client egress and backend ingress policy.
  6. Check kube-proxy on the client node and inspect the mode-appropriate rules.
  7. Check conntrack capacity, drops, and invalid state.
  8. Compare same-node and cross-node Pod-IP tests; inspect CNI routes and firewalls if they differ.
  9. For self-Service failures, verify hairpin mode.
  10. Only after the internal path works, investigate load-balancer probes, ingress logs, NSGs, UDRs, and return routing.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.