FE - Autoscaler#
In CCE, nodes of the same configuration are grouped together into a node pool. These node pools contain the underlying VMs that run your applications. To support applications that have different compute or storage demands. You can create multiples node pools with different configurations and use Kubernetes taint to control pod scheduling on this pool of nodes. In order to resize automatically the number of nodes in the pool to adapt it to applications needs, the cluster must be configured with node pools and the cluster nodes autoscaler must be installed. There are two types of node pools in Flexible Engine: mono-AZ nodes pools and multi-AZ nodes pools
Mono-AZ nodes pool#
Mono-AZ nodes pool always creates nodes on a specific availability zone. This configuration can be used in the context of a test zone or a zone containing non-critical applications because it is not fault tolerant.
Multi-AZ nodes pool#
Multi-AZ nodes pool can spawn nodes on multiple availability zones.
However, tests carried out on FE allow us to identify certain unwanted behaviors on multi-AZ nodes pools:
- It is not possible to homogenize the number of nodes by AZ: the nodes are created in a way which seems to be random (or according to the availability at FE)
- Since we do not control the positioning of the nodes on the AZ, we can end up with a multi AZ pool where all the nodes are on the same AZ
- Even if the pod in pending state has an affinity which forces it to go to a particular AZ, the nodes created by the autoscaler continue to be created randomly and therefore do not necessarily meet the needs of the pod which will therefore remain pending
- Even if the pod in pending state uses a persistent volume attached to a particular AZ, the nodes created by the autoscaler continue to be created randomly and therefore do not necessarily meet the needs of the pod which will therefore remain pending
In order to address all these issues, a workaround we found is to replace the multi-AZ node pool with three mono-AZ node pools each on a different AZ.
All the tests carried out and their results can be found in the tickets MVPKAAS-828 et MVPKAAS-830
Setups per environment type#
Development environments#
A mono AZ setup is the recommanded setup for development environments. This setup can be built with one mono az pool on AZ a.
Production environments#
A multi AZ setup is the recommanded setup for production environments.This setup can be built with 2 or 3 mono AZ pools, each one in a different AZ.