Fly.ioAnnouncement
Introducing Fly Kubernetes
Summary
Fly.io introduces Fly Kubernetes (FKS), an implementation of Kubernetes that runs on its globally distributed container platform for users who want Kubernetes tooling and declarative orchestration. Fly.io says its earlier Nomad-based approach struggled with global scheduling at more than 200,000 applications and with placing workloads in users’ requested regions, so it moved state to individual workers and exposed the Fly Machines API, whose placement requests fail quickly rather than retry elsewhere. FKS combines K3s with Virtual Kubelet, mapping pod lifecycle operations to Fly Machines API calls while running K3s and Virtual Kubelet on one Fly Machine. A generated kubeconfig enables kubectl access, and Pods run on separate Fly Machines as the platform scales the cluster. The design provides declarative replica, autoscaling, and volume definitions plus automatic recovery for failed Machines, while retaining Fly Machines’ trade-off of failing when requested placement is unavailable.
Context
Fly.io says its Nomad-based global scheduler faced scaling challenges across more than 200,000 applications and could place workloads in nearby regions rather than the specific regions requested by users. The company also wanted to offer Kubernetes tooling to projects for which Kubernetes is a better fit.
Approach / What changed
Fly Kubernetes combines K3s with Virtual Kubelet on top of Fly.io. K3s and Virtual Kubelet run on a single Fly Machine, while Virtual Kubelet maps Kubernetes pod operations to the Fly Machines API and causes Pods to run on individual Fly Machines. A generated kubeconfig provides access through kubectl.
Takeaways
The Fly Machines API keeps application state local to workers and uses a market-style scheduler that bids on regional resources instead of maintaining a globally consistent scheduler state.
FKS maps Virtual Kubelet pod lifecycle operations, including CreatePod and UpdatePod, to Fly Machines API endpoints for creating and updating Machines.
Kubernetes deployments declare replica counts, autoscaling rules, and volumes, while Kubernetes automatically works to restore Machines to the declared state when they go down.
Source and freshness
- Source
- fly.io
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.