All documents

Dedicated – FPT Kubernetes Engine

    AutoScale
    AutoScale
    Updated on 14 Mar 2024

    The Autoscale feature is enabled by default when users create a Kubernetes Cluster with D-FKE.

    D-FKE's Autoscale feature is built based on Kubernetes' cluster-autoscaler tool. The system will automatically adjust the number of worker nodes in the cluster when the following conditions are met:

    • Pods are in pending state due to lack of resources.

    • Node in the cluster uses less than 50% of resources (CPU & RAM) for a period of time (default is 15 minutes) and Pods on that node can be moved to other nodes

    Reference: https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler

    To use the cluster-autoscaler feature, users can use it combine with HPA (HorizontalPodAutoscaler).

    • Scale-up: HPA automatically creates additional Pods when resource usage exceeds a predefined threshold. When new Pods are created, if Worker Nodes have insufficient resources for that Pod request, cluster-autoscaler will automatically create more Worker Nodes to meet the number of newly created Pods.

    • Scale-down: HPA automatically reduces the number of Pods when resource usage is less than a set threshold. At that time, Nodes will reduce resource usage and are automatically reduced by cluster-autoscaler.

    Reference: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale- walkthrough/

    Basic Use-cases:

    • To have the number of worker nodes fixed: user can set the value of Min nodes = Max nodes

    • To block Cluster Autoscaler from scaling down fixed node: Cluster Autoscaler would not scale down node that has following annotation: "cluster-autoscaler.kubernetes.io/scale-down-disabled": "true"

      Use this command to add annotation:

      kubectl annotate node cluster-autoscaler.kubernetes.io/scale-down-disabled=true