You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
EndpointSlice sync does not translate kubernetes.io/service-name for custom-managed EndpointSlices #4142
With vCluster 0.33.1, some EndpointSlices synced from the virtual cluster to the host cluster keep the virtual Service name in the kubernetes.io/service-name label instead of using the translated host-side Service name.
This causes the synced EndpointSlice to no longer be associated with its corresponding host-side Service.
The issue was initially detected with MariaDB Operator *-secondary Services.
For example, inside the virtual cluster the Service is:
Notice that other references, including the EndpointSlice name and Pod targetRefs, are translated correctly. Only the kubernetes.io/service-name label remains the virtual Service name.
Because of this:
kubectl -n example get endpointslice \
-l kubernetes.io/service-name=example-db-secondary-x-example-prod-x-vcluster
returns no EndpointSlices.
Impact
The host cluster uses Cilium with kube-proxy replacement.
Because Cilium cannot associate the EndpointSlice with the translated host Service, the ClusterIP is not installed in the Cilium service/LB maps.
For example:
cilium-dbg service list | grep 10.15.108.114
returned nothing on freshly started Cilium agents.
Direct connectivity to both endpoint Pod IPs worked, so the backend networking itself was healthy.
This suggests the problem may specifically affect EndpointSlices created by an external/custom controller rather than EndpointSlices generated by Kubernetes' normal Service EndpointSlice controller.
Activity