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>
| Argument | Description |
|---|---|
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>
| Argument | Description |
|---|---|
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>
| Argument | Description |
|---|---|
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]
| Argument | Description |
|---|---|
cluster_name (required) | Cluster to add the node pool to |
nodepool_name (required) | Name for the new node pool |
| Option | Short | Default | Description |
|---|---|---|---|
--flavor | -f | b2-15 | Node flavor / VM size |
--min | 3 | Minimum number of nodes | |
--desired | 3 | Desired number of nodes | |
--max | 10 | Maximum number of nodes | |
--roles | Comma-separated role names | ||
--variant | default | Variant for the pool | |
--xpu | cpu | Compute 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]
| Argument | Description |
|---|---|
cluster_name (required) | Cluster name |
nodepool_name (required) | Node pool name |
| Option | Default | Description |
|---|---|---|
--min | 0 | Minimum nodes |
--desired | 0 | Desired nodes |
--max | 10 | Maximum 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