Vultr DocsLatest Content

Associated Doc

How to Troubleshoot VKE Vultr Load Balancer Health Check Issues?

Updated on 20 November, 2025

Guide for diagnosing and resolving health check failures in Vultr Kubernetes Engine load balancers


When you create a Kubernetes Service of type LoadBalancer in Vultr Kubernetes Engine (VKE), the Vultr Cloud Controller Manager provisions a Vultr Load Balancer. The Load Balancer performs Health Checks against backend Pods, and traffic is only routed to Nodes that pass. If Health Checks are failing, consider the following points:

  • Make sure the Pods selected by the Service are running. If readiness probes are failing or labels do not match the Service selector, the Vultr Load Balancer will not see any healthy backends.
  • Verify that the Service exposes the correct port and that the Pods are actually listening on the corresponding targetPort. A mismatch between the Service definition and the container port is a common cause of Health Check failures.
  • Confirm that the Health Check protocol matches your workload. Use HTTP or HTTPS only if your application serves valid responses on those protocols. For TCP-based applications, the protocol must be set to tcp, otherwise the checks will always fail.
  • If you are using HTTP or HTTPS checks, ensure the configured health check path responds with a 200–299 status code. Any other response code, redirect, or empty response is considered unhealthy.
  • Review the Service annotations that control Health Check behavior. Incorrect values for protocol, path, or port will prevent the Vultr Load Balancer from validating your Nodes.
  • Check that no firewalls or Kubernetes NetworkPolicies block connections from the Vultr Load Balancer to your Nodes. The Vultr Load Balancer must be able to reach each node on the Health Check port.
  • Consider whether the Health Check thresholds and timeouts are too strict for your application. If the application has a long startup time or sometimes responds slowly, the Vultr Load Balancer may mark it unhealthy before it can return a valid response.
  • If you set externalTrafficPolicy: Local on the Service, traffic is only sent to nodes that host healthy Pods. Nodes without Pods for that Service will show as failing health checks until Pods are scheduled there.

For more information about configuring Vultr Load balancer with Vultr Kubernetes Engine and managing Health Checks, refer to How to Use a Vultr Load Balancer with VKE and How to Use Health Checks on a Vultr Load Balancer.