Cost Analyzer Persistent Volume
As of v1.67, the persistent volume attached to Kubecost's primary pod (cost-analyzer) contains ETL cache data as well as product configuration data. While it's technically optional (because all configurations can be set via ConfigMap), it dramatically reduces the load against your Prometheus/Thanos installations on pod restart/redeploy. For this reason, it's strongly encouraged on larger clusters.
If you are creating a new installation of Kubecost:
We recommend that you back Kubecost with at least a 32GB disk. This is the default as of 1.72.0.
If you are upgrading an existing version of Kubecost:
- If your provisioner supports volume expansion, we will automatically resize you to a 32GB disk when upgrading to 1.72.0.
- If your provisioner does not support volume expansion:
- If all your configs are supplied via values.yaml in Helm or via ConfigMap and have not been added from the front end, you can safely delete the PV and upgrade.
- We suggest you delete the old PV, then run Kubecost with a 32GB disk. This is the default in 1.72.0
- If you cannot safely delete the PV storing your configs and configure them on a new PV:
- If you are not on a regional cluster, provision a second PV by setting
persistentVolume.dbPVEnabled=true
- If you are on a regional cluster, provision a second PV using a topology-aware storage class (more info). You can set this disk’s storage class by setting
persistentVolume.dbStorageClass=your-topology-aware-storage-class-name
If you're using just one PV and still see issues with Kubecost being rescheduled on zones outside of your disk, consider using a topology-aware storage class. You can set the Kubecost disk’s storage class by setting
persistentVolume.storageClass
to your topology-aware storage class name.