Learn CNCF Sandbox Orchestration & Management / Scheduling & Orchestration

Technology Guide

kube-rs

License: Apache-2.0

kube-rs Logo

Field Guide

Complete Guide

kube-rs is the Rust client for Kubernetes and the ecosystem around it. It is the Rust equivalent of client-go: an async API client, typed resource bindings, a watch/informer cache layer, and a controller-runtime-style reconciliation framework for writing operators in Rust.

The crate set is split into kube (the umbrella), kube-client (HTTP/gRPC client over hyper and tower), kube-core (types and API mechanics), kube-derive (a procedural macro that generates CRD structs with OpenAPI schemas from Rust types), and kube-runtime (watcher streams, reflectors, and a Controller that maps to the Go controller-runtime pattern). CRDs are defined as ordinary Rust structs annotated with #[derive(CustomResource, JsonSchema)], and kube::CustomResourceExt::crd() emits the YAML CRD definition at compile time. It targets stable Rust, builds on tokio, and interoperates with tower middleware for tracing, metrics, and retries.

It is the foundation for most Rust-based Kubernetes controllers in production — Krustlet, Linkerd’s policy controller, Stackable, Materialize’s operators, and many of the controllers inside Fermyon. If you want to write an operator in Rust instead of Go, kube-rs is effectively the only serious choice.

CNCF Project

Cloud Native Computing Foundation

Accepted: 2021-11-16

No articles found for kube-rs yet. Check back soon!