C3 AI Documentation Home

Schedule C3 AI Applications or Nodes onto Dedicated Kubernetes Node Pools

The C3 Agentic AI Platform schedules C3 AI applications and nodes onto Kubernetes node pools based on hardware requirements such as CPU, memory, or GPU availability. To improve cost efficiency and workload stability, you can target C3 AI applications or nodes that require special hardware availability to a dedicated Kubernetes node pool.

To configure C3 AI applications or nodes to target a dedicated node pool, a cluster operator must create a Kubernetes node pool and set a label and taint to define a key-value pair. Then, a C3 AI cluster, environment, or app admin sets the node HardwareProfile and passes a field that references the key-value pair.

Set up a dedicated Kubernetes node pool

To schedule C3 AI applications or nodes onto a specialized Kubernetes node pool, a Kubernetes cluster operator must set up a dedicated Kubernetes node pool:

  1. Create a dedicated Kubernetes node pool.

    Follow your cloud provider documentation on how to create a new node pool.

  2. To control where pods run and ensure that certain workloads only occur on specific nodes, apply a taint to the dedicated node pool with the following settings:

    • Effect: NO_SCHEDULE
    • Key: c3ComputeKind
    • Value: Any identifier for your application or node. For example, c3NodepoolIdentifier

    See the Kubernetes documentation Taints and Tolerations to learn more about taints.

  3. Attach a label to the dedicated node pool to define a key-value pair with the following settings:

    • Key: c3ComputeKind
    • Value: The same value as the taint value. For example, c3NodepoolIdentifier

    The C3 AI cluster, environment, or app admin uses the value identifier to configure their node pools.

    See the Kubernetes documentation Labels and Selectors to learn more about labels.

Configure C3 AI applications or nodes to target the dedicated node pool

You must have the C3.ClusterAdmin, C3.EnvAdmin, or C3.AppAdmin role to configure C3 AI applications or nodes to target the dedicated node pool.

After a cluster operator sets up a dedicated node pool, pass the C3 AI node pool name and identifier value in the hardware profile. Here is an example command to set the HardwareProfile where the C3 AI node pool name is task and the identifier value is c3NodepoolIdentifier:

JavaScript
nodePool = app.nodePool(task)
nodepPoolConfig = nodePool.config()

hardwareProfile = HardwareProfile.builder().cpu(1).memoryMb(1000).diskGb(0).computeKind("c3NodepoolIdentifier").build();
nodepPoolConfig.setConfigValue("hardwareProfile",hardwareProfile)
nodePool.update()

Replace task with the name of your C3 AI node pool and replace c3NodepoolIdentifier with the value you set for the Kubernetes node pool taint and label.

This configuration creates a one-to-one mapping between the C3 Agentic AI Platform application or node, and the dedicated Kubernetes node pool.

Complete this configuration at for the applications, environment nodes, or cluster nodes you want to schedule on a dedicated node pool.

See also

Was this page helpful?