Skip to content

CLI reference

kuberina <COMMAND>

Declared name: kuberina. Description: Maritime stowage-inspired K8s scheduling optimizer.

Generate an optimised scheduling blueprint.

kuberina plan --infra <PATH> --workloads <PATH> [--pareto <PERCENT>]
FlagTypeRequiredDescription
--infrapathyesCluster topology YAML — node capacity, taints, labels
--workloadspathyesWorkload manifests YAML — pods and their resource requirements
--paretofloatnoScale node capacity by this percentage while solving, e.g. 80

plan is currently the only subcommand.

The blueprint is printed to the console and written to kuberina_solution.yaml in the working directory.

When --pareto is supplied, solving happens against the scaled capacities, but the printed blueprint reports against the true net capacities — so the numbers you read are real, not the derated ones.

The Make targets wrap cargo run, which needs -- to separate cargo’s own arguments from the program’s:

Terminal window
cd solver
cargo run --release -- plan --infra testdata/homelab_infra.yaml \
--workloads testdata/homelab_workloads.yaml

The genetic algorithm’s parameters are selected from the problem size rather than configured by flag. The tiers are:

PodsPopulationMax generationsNotes
Under 100128Quick convergence
100–500256500Standard GA, early stop after 100
Over 5001,0241,000Datacenter-scale; early stop after 200

At datacenter scale the solver announces the switch on stderr:

Datacenter-scale detected (2714 pods) — cranking GA to maximum

Large-tier tuning also sets tournament size 5, mutation rate 0.03, crossover rate 0.85, and a fixed random seed of 42 — so runs are reproducible.

A plan invocation runs the three-phase hybrid pipeline described in the paper, preceded by a daemonset pre-deduction pass:

PhaseStepPurpose
0Daemonset pre-deductionSubtract per-node daemonset overhead from capacity before packing
1Vector Packing FFDFirst-Fit Decreasing warm start, giving the GA a sane initial population
2Genetic AlgorithmEvolutionary optimisation with gang-aware repair
3CSP forward checkingConstraint enforcement, guaranteeing a feasible result
  • Make targets — the wrappers around these invocations.
  • The paper — the mathematics behind each phase.