Skip to main content

TCP Load Balancer

TCP Load Balancer Collector​

To collect information about the ability to connect to the specified TCP load balancer address, you can use the tcpLoadBalancer collector. This collector listens on a host port on 0.0.0.0 and then attempts to connect through a TCP load balancer. A successful connection requires sending and receiving a random token through the load balancer to the test server.

Parameters​

In addition to the shared collector properties, the tcpLoadBalancer collector accepts the following parameters:

port (Required)​

The port number to use.

address (Required)​

The address to check the connection to.

timeout (Optional)​

Specifies the total timeout.

Example Collector Definition​

apiVersion: troubleshoot.sh/v1beta2
kind: SupportBundle
metadata:
name: loadbalancer
spec:
hostCollectors:
- tcpLoadBalancer:
collectorName: kubernetes-api-lb
port: 6443
address: 10.128.0.29:6443
timeout: 10s

Included Resources​

The results of the tcpLoadBalancer collector are stored in the host-collectors/tcpLoadBalancer directory of the support bundle.

[collector-name].json​

If the collectorName field is unset, it will be named tcpLoadBalancer.json.

Example of the resulting file:

address-in-use

TCP Load Balancer Analyzer​

The tcpLoadBalancer analyzer supports multiple outcomes:

  • invalid-address: The load balancer address is not valid.
  • connection-refused: Connection to the load balancer address was refused.
  • connection-timeout: Timed out connecting to the load balancer address.
  • address-in-use: Specified port is unavailable.
  • connected: Successfully connected to the load balancer address.
  • bind-permission-denied: Failed to bind to the address:port.
  • error: Unexpected error connecting to the load balancer address.

Example Analyzer Definition​

apiVersion: troubleshoot.sh/v1beta2
kind: SupportBundle
metadata:
name: loadbalancer
spec:
hostCollectors:
- tcpLoadBalancer:
collectorName: kubernetes-api-lb
port: 6443
address: 10.128.0.29:6443
timeout: 10s
hostAnalyzers:
- tcpLoadBalancer:
checkName: "Kubernetes API Server Load Balancer"
collectorName: kubernetes-api-lb
outcomes:
- fail:
when: "invalid-address"
message: The load balancer address is not valid
- warn:
when: "connection-refused"
message: Connection to via load balancer was refused
- warn:
when: "connection-timeout"
message: Timed out connecting to load balancer. Check your firewall.
- warn:
when: "error"
message: Unexpected port status
- warn:
when: "address-in-use"
message: Port 6444 is unavailable
- pass:
when: "connected"
message: Successfully connected to load balancer
- warn:
message: Unexpected port status