Skip to main content
Version: v0.27 Stable

What is allocatable in vCluster virtual scheduler

Limited vCluster Tenancy Configuration Support

This feature is only available when using the following worker node types:

  • Host Nodes
  • What are allocatable resources on a node?​

    Allocatable on a Kubernetes node represents the compute resources available for pods. The scheduler prevents over-subscribing resources beyond the allocatable value. It supports three primary resource types:

    • CPU
    • Memory
    • Ephemeral storage

    What is vCluster virtual scheduler?​

    By default, vCluster uses the host cluster scheduler to determine pod placement. This approach offers two key benefits:

    • Saves computing resources.
    • Allows pods to run on any node.

    However, the host cluster scheduler has limitations detailed in the virtual scheduler documentation. The virtual scheduler provides an alternative by:

    • Making independent pod allocation decisions.
    • Allowing taints and labels on virtual cluster nodes.
    • Preventing modifications to the host cluster nodes.

    The challenge with allocatable values​

    When using the vCluster virtual scheduler, you'll notice a significant difference between node allocatable values in the host cluster and vCluster context.

    Consider this scenario:

    • Kubernetes cluster with three nodes
    • vCluster assigned to use only two nodes
    • Focus on CPU allocation for simplicity

    Host cluster perspective​

    In the host Kubernetes cluster context, the first node shows 62.5 allocatable CPUs. This value is calculated by:

    • Total node CPUs: 64
    • Minus kubeReserved and systemReserved values

    vCluster perspective​

    In the vCluster context, the same node shows an allocatable value of 30.5 or lower.

    Why the allocatable values differ​

    The vCluster scheduler uses the allocatable value to prevent over-subscribing resources.

    • Must reflect resources available specifically to vCluster
    • Cannot use the entire host cluster's allocatable value
    • Node details show only what vCluster knows and controls

    Using the full allocatable value of the host cluster would cause the vCluster scheduler to over-subscribe the node.

    How vCluster manages allocatable values​

    The vCluster syncer implements a dynamic update mechanism:

    • Regularly reads node information from the host cluster.
    • Updates node information in the vCluster.
    • Ensures allocatable values change as pods start and stop in the host context.