← Back to recent posts
MLOps

A Minimal MLOps Path on Kubernetes

You do not need a full Kubeflow farm to serve a model. Train wherever the GPUs are cheapest. Serve as a container with probes, a pinned image, and a version in Git.

The smallest path

  1. Package inference as a container. One process. A /healthz that actually loads the model.
  2. Pin the image digest. The model file is either baked in or mounted from object storage with a version prefix.
  3. Deploy with Helm/Argo like any other API. GPU node pool if you need it; CPU is fine for small models.
  4. Log request id, model version, and latency. That is your first “ML observability.”

What to skip until you hurt

  • A feature store for a single model with a static schema.
  • Canary on day one if you cannot even rollback the Deployment.
  • A training operator in-cluster because a notebook in CI already works.

Treat the model like config: changing it is a Git commit. If a scientist can swap weights without a review, you do not have MLOps. You have a shared disk.