Out of the box, Plural performs a lot of optimizations behind the scenes with our built-in autoscaler that schedules workloads efficiently across your infrastructure. However, there are some efforts you can make to monitor and optimize this cost.
The Plural Console offers scaling recommendations for certain apps, some of which can be immediately applied from the Console.
To do this, select your desired application from the Application Overview tab and then click on the
Components tab in the sidebar on the left. Then click on the specific component you want to get recommendations for and you will see a
Scaling button in the top right.
When you click on the
Scaling button, if you see
Apply in the bottom right, you can immediately enforce the recommendations given by Plural.
The Plural autoscaler does a good job of scheduling new Pods and resources onto nodes that can handle the extra workload, but cannot delete Pods, as it could lead to potentially destructive scenarios. Because of this, you may end up with imbalanced nodes that are overworked or underworked.
To address this, you'll need the Plural Console installed. Head to the
Nodes tab in the sidebar on the left of the Console. Here, you'll see the utilization of resources for all of your nodes. You are looking for nodes that are overworked or underworked, which can be observed by seeing if cpu and/or memory is in the red (overworked) or close to zero and green (underworked).
To delete these nodes, hit the red trash can symbol to the right of the problematic node and it will deprovision, letting the autoscaler schedule the Pods it was running on a different node.
As with any operations that involve taking down resources, you will likely encounter a small amount of downtime as your resources get rescheduled.
If you deploy a lot of applications and resources, you may start seeing cost go up faster than expected due to the fixed cost of installing Kubernetes and its services on every node. This fixed Kubernetes tax per node varies based on your cloud provider. Essentially, if a small node is used, it will be a higher percentage of your usage than a large node, making the cost differences more evident at large scale with small node sizes.
To control this, it is recommended that you increase your node sizes to accommodate more resources and applications per node, reducing the amount of times you're paying the fixed cost for running Kubernetes. Learn how to modify your node types here.