Skip to content

CFP: add new scale-profile helm value #41964

@msune

Description

@msune

Cilium Feature Proposal

Context

Cilium default configuration is optimized for compatibility:

The default out of the box deployment of Cilium is focused on maximum compatibility rather than most optimal performance

Tuning Cilium for optimal performance and a reasonable resource consumption (memory, cpu etc.) is non-trivial, and depends on factors like cluster size, the number of flows (connections) and the characteristics of that traffic etc.

The tuning guide gives some high level recommendations on how to tweak individual Cilium parameters (e.g. eBPF map sizes).

Proposal

We propose to add a new helm parameter, e.g. scale-profile, which has a few pre-determined profiles that are optimized for a particular scale and traffic pattern. These would change the default helm values for individual parameters to a default value that is congruent with the rest of the values in the profile.

An example of a possible set of profiles for the sake of discussion (exact number of profiles, target sizes and flows etc. TBD):

Profile name Max cluster size Number of flows (connections) Max. Memory footprint per node (MB)
kind 3 5K X
small 10 50K Y
medium (default) 100 500K Z
large 1000 5M T
x-large 10K 50M R

Priority

Helm values for specific parameters should override scale-profile values. The order of priority should therefore be:

  • Specific helm value
  • scale-profile profile value
  • Default value (current default)

In absence of scale-profile value, the current defaults should be used. These defaults could also be the "default" profile (medium profile in the table above).

Setting scale-profile on a running cluster

There is no intention to support adding a scale-profile on a running clusters, but rolling it out via a controlled per-node config should be possible.

Relevant sigs

  • @cilium/sig-scalability
  • @cilium/sig-agent

Some thoughts on the possible implementation

N/A


cc @borkmann @julianwiedmann

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/cfpCilium Feature Proposalkind/featureThis introduces new functionality.kind/performanceThere is a performance impact of this.sig/scalabilityImpacts how well Cilium handles a high rate of events or churn.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions