lb/Validate Backend Service Port Configuration
Product: Load balancing
Step Type: AUTOMATED STEP
Description
None
Success Reason
The load balancer is performing health checks on the same port used for serving traffic. This is the standard configuration.
{port_mapping}
Uncertain Reason
The load balancer is conducting health checks on port {hc_port} for the backend service {bs_resource}. However, this health check port differs from the port used by the load balancer for serving traffic on some backend instance groups. The backend service is configured to use the “{serving_port_name}” port, which is then translated to a specific port number based on the “{serving_port_name}” port mapping within each backend instance group.
Affected backends:
{formatted_igs}
This configuration can be problematic unless the load balancer has been configured to use a different port for health checks purposefully.
Uncertain Remediation
-
Verify Intent: Confirm if the health check port
{hc_port}is meant to be different from the serving port defined by “{serving_port_name}” on the backends. -
Test Port on Backend VMs: Check if port
{hc_port}is listening on an instance from the affected groups. Run this command from your local machine/Cloud Shell:gcloud compute ssh [INSTANCE_NAME] --zone [ZONE] --project {project_id} --command="sudo ss -tlnp | grep ':{hc_port}'"- Output showing
LISTENindicates the port is open and your application is likely listening. - No output suggests the port is not in a listening state on that VM.
- Output showing
-
Adjust Configuration:
- If Mismatch is Unintentional: Align the load balancer’s health check port in the backend service
{bs_resource}to match the actual port number used by “{serving_port_name}” in the instance groups. - If Mismatch is Intentional: Ensure your application on the VMs is correctly configured to listen on port
{hc_port}. - If Port Not Listening: Troubleshoot your application on the VM to ensure it’s running and bound to port
{hc_port}. Check the VM’s local firewall as well.
- If Mismatch is Unintentional: Align the load balancer’s health check port in the backend service
If the health check port {hc_port} is meant to be different from the serving port (e.g., a dedicated management/health endpoint), confirm that your application is correctly configured to listen on the health check port.