Skip to content

Karpenter IBM Cloud Provider

Automatic Node Provisioning for Kubernetes on IBM Cloud VPC

Release License

Overview

The Karpenter IBM Cloud Provider enables automatic node provisioning and scaling for Kubernetes clusters running on IBM Cloud VPC infrastructure. It implements the Karpenter provisioning APIs to provide just-in-time compute resources based on application demands.

Key Features

Automatic Node Provisioning

  • Just-in-Time Compute: Provisions nodes automatically when pods are unschedulable
  • Intelligent Instance Selection: Chooses optimal instance types based on workload requirements
  • Multi-Zone Support: Distributes nodes across availability zones for high availability

Zero-Configuration Bootstrap

  • Automatic Cluster Discovery: Detects cluster configuration without manual setup
  • Dynamic Bootstrap Scripts: Generates appropriate initialization scripts
  • Multiple Bootstrap Modes: Supports VPC, IKS, and automatic mode selection

Cost Optimization

  • Node Consolidation: Automatically removes underutilized nodes
  • Right-Sizing: Selects appropriate instance types to minimize costs

Architecture

The Karpenter IBM Cloud Provider consists of several key components:

graph TB
    subgraph "Kubernetes Cluster"
        K[Karpenter Controller]
        NP[NodePool]
        NC[NodeClaim]
        INC[IBMNodeClass]
        P[Pending Pods]
    end

    subgraph "IBM Cloud"
        VPC[VPC Infrastructure]
        IKS[IKS Service]
        VSI[Virtual Server Instances]
    end

    P -->|Triggers| K
    K -->|Creates| NC
    K -->|Reads| NP
    K -->|Reads| INC
    NC -->|Provisions| VSI
    VSI -->|Joins| K
    INC -.->|Config| VPC
    INC -.->|Config| IKS

Deployment Options

VPC Self-Managed Clusters

  • Full control over Kubernetes configuration
  • Dynamic instance type selection
  • Custom bootstrap configurations
  • Ideal for specialized workloads

IBM Kubernetes Service (IKS)

  • Seamless integration with managed service
  • Worker pool expansion

Community

License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.