Skip to main content

clouder k8s

Manage Kubernetes clusters — create clusters, manage node pools, and configure kubeconfig.

Commands

clouder k8s create

Create a Kubernetes cluster.

clouder k8s create <name>
ArgumentDescription
name (required)Name for the Kubernetes cluster

Example:

clouder k8s create my-cluster

This provisions the necessary VMs and bootstraps a Kubernetes cluster using kubeadm. See the Kubeadm documentation for details on the bootstrap process.


clouder k8s ls

List Kubernetes clusters.

clouder k8s ls

Shows all clusters managed by Clouder in the current context.


clouder k8s kubeconfig

Download the kubeconfig for a Kubernetes cluster.

clouder k8s kubeconfig <name>
ArgumentDescription
name (required)Cluster name

Example:

clouder k8s kubeconfig my-cluster

Downloads the kubeconfig file and saves it locally.


clouder k8s use

Set a cluster's kubeconfig as the default kubectl context.

clouder k8s use <name>
ArgumentDescription
name (required)Cluster name

Example:

clouder k8s use my-cluster

# Verify
kubectl get nodes

clouder k8s create-nodepool

Create a node pool in a Kubernetes cluster.

clouder k8s create-nodepool <cluster_name> <nodepool_name> [OPTIONS]
ArgumentDescription
cluster_name (required)Cluster to add the node pool to
nodepool_name (required)Name for the new node pool
OptionShortDefaultDescription
--flavor-fb2-15Node flavor / VM size
--min3Minimum number of nodes
--desired3Desired number of nodes
--max10Maximum number of nodes
--rolesComma-separated role names
--variantdefaultVariant for the pool
--xpucpuCompute type: cpu, gpu-cuda, qpu

Examples:

# System node pool
clouder k8s create-nodepool my-cluster \
system --flavor Standard_D4s_v5 \
--min 1 --desired 2 --max 10 \
--roles system --xpu cpu

# GPU node pool for Jupyter
clouder k8s create-nodepool my-cluster \
jupyter-gpu --flavor Standard_NC6s_v3 \
--min 0 --desired 1 --max 5 \
--roles jupyter --variant medium --xpu gpu-cuda

# CPU node pool for Jupyter
clouder k8s create-nodepool my-cluster \
jupyter-cpu --flavor Standard_B4ms \
--min 0 --desired 3 --max 10 \
--roles jupyter --variant small --xpu cpu

clouder k8s update-nodepool

Update a node pool in a Kubernetes cluster (e.g., scale up or down).

clouder k8s update-nodepool <cluster_name> <nodepool_name> [OPTIONS]
ArgumentDescription
cluster_name (required)Cluster name
nodepool_name (required)Node pool name
OptionDefaultDescription
--min0Minimum nodes
--desired0Desired nodes
--max10Maximum nodes

Examples:

# Scale down to zero (cost saving)
clouder k8s update-nodepool my-cluster \
jupyter-gpu --min 0 --desired 0 --max 5

# Scale up
clouder k8s update-nodepool my-cluster \
system --min 2 --desired 4 --max 10

Example: Full Cluster Workflow

# 1. Create the cluster
clouder k8s create my-cluster

# 2. Get kubeconfig and set as default
clouder k8s kubeconfig my-cluster
clouder k8s use my-cluster

# 3. Create node pools
clouder k8s create-nodepool my-cluster \
system --flavor Standard_D4s_v5 \
--min 1 --desired 2 --max 10 \
--roles system --xpu cpu

clouder k8s create-nodepool my-cluster \
jupyter-gpu --flavor Standard_NC6s_v3 \
--min 0 --desired 1 --max 5 \
--roles jupyter --xpu gpu-cuda

# 4. Verify
kubectl get nodes

# 5. Scale GPU nodes to zero when idle
clouder k8s update-nodepool my-cluster \
jupyter-gpu --desired 0

# 6. List clusters
clouder k8s ls