Fine-tuning

    • KUMA_STORE_POSTGRES_CONNECTION_TIMEOUT : connection timeout to the Postgres database (default: 5s)

    The default value will work well in those cases where both kuma-cp and Postgres database are deployed in the same datacenter / cloud region.

    However, if you’re pursuing a more distributed topology, e.g. by hosting kuma-cp on premise and using Postgres as a service in the cloud, the default value might no longer be enough.

    KUMA_STORE_POSTGRES_MAX_OPEN_CONNECTIONS

    The more dataplanes join your meshes, the more connections to Postgres database Kuma might need to fetch configurations and update statuses.

    However, if your Postgres database (e.g., as a service in the cloud) only permits a small number of concurrent connections, you will have to adjust Kuma configuration respectively.

    Snapshot Generation

    This is advanced topic describing Kuma implementation internals

    The main task of the control plane is to provide config for dataplanes. When a dataplane connects to the control plane, the CP starts a new goroutine. This goroutine runs the reconciliation process with given interval (1s by default). During this process, all dataplanes and policies are fetched for matching. When matching is done, the Envoy config (including policies and available endpoints of services) for given dataplane is generated and sent only if there is an actual change.

    • : interval for re-genarting configuration for Dataplanes connected to the Control Plane (default: 1s)

    For systems with high traffic, keeping old endpoints for such a long time (5s) may not be acceptable. To solve this, you can use passive or active health checks provided by Kuma.

    Additionally, to avoid overloading the underlying storage there is a cache that shares fetch results between concurrent reconciliation processes for multiple dataplanes.

    • KUMA_STORE_CACHE_EXPIRATION_TIME : expiration time for elements in cache (1s by defualt).

    You can also change the expiration time, but it should not exceed KUMA_XDS_SERVER_DATAPLANE_CONFIGURATION_REFRESH_INTERVAL, otherwise CP will be wasting time building Envoy config with the same data.