Enabling Active HealthCheck causes ClusterLoadAssignment
to be empty.
#5792
Labels
t:bug
Something isn't working
ClusterLoadAssignment
to be empty.
#5792
Describe the bug
Hi,
I'm trying to enable active health checks on a specific Mapping, which uses a KubernetesEndpointResolver. Upon configuring the healthcheck we can see that in some ambassador pods, all upstream hosts for the cluster associated to the mapping seem to disappear, and it stays missing until something else changes in the cluster (a pod scale up for instance). This causes these Ambassador pods to return 503 errors, as no upstream targets are found.
Here's the configuration I'm trying to add to the Mapping:
This issue only affects some Emissary pods. When comparing pods that experience the issue with those that work correctly, the Envoy config dump (with EDS info) reveals that the list of hosts is empty for the faulty pods:
Bad:
Good:
I haven't been able to pinpoint why some pods have an empty ClusterLoadAssignment, but it seems like a race condition, possibly in the service that populates the assignment via EDS. The issue occurs randomly in different pods if i keep removing and adding back the healthcheck config.
To Reproduce
Steps to reproduce the behavior:
KubernetesEndpointResolver
and service pointing to an k8s service. Ex:service-a.default
cluster are not registered on the ClusterLoadAssignment (http://localhost:8001/config_dump?resource=&mask=&name_regex=&include_eds=on)Expected behavior
Configuring the healthcheck should not wipe the instances of the cluster associated to the mapping resource.
Versions (please complete the following information):
The text was updated successfully, but these errors were encountered: