Skip to content

SYSTEM Cited by 1 source

Virtual Kubelet

Virtual Kubelet is an open-source, CNCF-sandbox project that implements the Kubernetes Kubelet API without being backed by a real worker node. From the control plane's point of view it looks like any other Kubelet eager to run Pods; under the hood, each Pod scheduled to it is forwarded — via a provider — to a cloud compute service (container runtime, serverless platform, edge-compute fabric, etc.).

Why it exists

A Virtual Kubelet acts as if it's a standard Kubelet running on a Node, eager to run your workloads. However, there's no Node backing it. It instead behaves like an API, receiving requests from Kubernetes and transforming them into requests to deploy on a cloud compute service.

Fly.io, FKS beta post

This is how a "nodeless" managed Kubernetes service is built: plug a Virtual-Kubelet provider into the API server and the cluster operator never has to pick a Node shape. See concepts/nodeless-kubernetes and patterns/virtual-kubelet-provider.

Known production providers

  • Azure AKS Virtual Nodes — runs Pods on Azure Container Instances (ACI).
  • AWS Fargate on EKS — similar shape: Pods backed by Firecracker micro-VMs on a Fargate control plane. (Historically implemented via Virtual Kubelet; now via EKS's own fabric but the architectural pattern is the same.)
  • Fly Kubernetes (FKS) — in-house Go provider alongside K3s; forwards Pod creates to the Fly Machines API.
  • Admiralty, Liqo, etc. — federation / multi-cluster providers.

Seen in

  • sources/2024-03-07-flyio-fly-kubernetes-does-more-now — canonical wiki reference for Virtual Kubelet as the architectural pivot under a managed Kubernetes service: "it plays a central role… it's magic, really." Fly runs a "small Golang program … alongside K3s" that creates Pods as Fly Machines via the Machines API.
Last updated · 200 distilled / 1,178 read