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 32GiB disk. This is the default as of 1.72.0.
If you are upgrading an existing version of Kubecost
- If your provisioner does supports volume expansion, we will automatically resize you to a 32GB disk in upgrade 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 frontend, 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, we recommend that you provision a second PV by setting
persistentVolume.dbPVEnabled=true
- If you are on a regional cluster, we recommend that you 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 are not on a regional cluster, we recommend that you provision a second PV by setting
- If all your configs are supplied via values.yaml in helm or via configmap and have not been added from the frontend, you can safely delete the PV and upgrade.
If you're using just one PV and still seeing 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=your-topology-aware-storage-class-name
Edit this doc on Github