Skip to content

Maximum set Service IDs being increased #38727

@hox

Description

@hox

I am running some large clusters with 65,535+ service IDs across all services and ports. New services will not get added to Cilium's LB map due to a hard limit set here: https://github.com/cilium/cilium/blob/main/pkg/service/const.go#L12

The error shown in agent logs:

level=error msg="Error while inserting service in LB map" error="Unable to allocate service ID 0 for {{xxx.xxx.xxx.xxx {TCP 20261} 0} 0}: no service ID available" k8sNamespace==****** k8sSvcName=****** subsys=k8s-watcher.

Ideally, the limit for the service IDs should be increased past the uint16 maximum, and the code is switched to use uint32 types to increase the limits on how many ports you can have across a cluster.

This would allow for larger clusters being able to support 16,777,215 service IDs, instead of only 65,535.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/datapathImpacts bpf/ or low-level forwarding details, including map management and monitor messages.area/loadbalancingImpacts load-balancing and Kubernetes service implementationskind/cfpCilium Feature Proposalkind/featureThis introduces new functionality.sig/scalabilityImpacts how well Cilium handles a high rate of events or churn.staleThe stale bot thinks this issue is old. Add "pinned" label to prevent this from becoming stale.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions