Skip to content

OpenKruise

A suite of Kubernetes controllers that extends the standard workloads and swaps a container image without recreating the Pod.

  • Category: Orchestration & Scheduling
  • CNCF maturity: Incubating
  • Language: Go
  • License: Apache License 2.0
  • Repository: openkruise/kruise
  • Documented at commit: 439d98db (master, tagged near v1.9.0, 2026-06-21)

What it is

OpenKruise is a set of Kubernetes controllers and CRDs that replace and extend the built-in workload controllers. CloneSet, Advanced StatefulSet, and Advanced DaemonSet are supersets of the upstream Deployment, StatefulSet, and DaemonSet. They add in-place container image updates, partition-based canary rollouts, per-Pod PVC templates, parallel update windows, and deletion-cost control.

Its signature feature is in-place update. When a workload change is limited to the container image field (and, since v1.8, to resource requests via the resize subresource), OpenKruise patches the running Pod instead of deleting and recreating it. The kubelet restarts the container without rescheduling, so the change skips the scheduler, CNI, and CSI, and avoids PVC rebinding. This matters at large scale where Pod churn is expensive.

The project runs as two deployment units: a central kruise-manager that hosts the controllers and the admission webhook, and a per-node kruise-daemon DaemonSet that pre-pulls images, reports runtime container metadata, recreates containers, and runs Pod probes (cmd/daemon/main.go:85). In-place update only works because all three parts cooperate: the controller, the mutating webhook, and the daemon.

When to use it

  • You run large fleets where recreating Pods on every image bump is too slow or too disruptive.
  • You need canary rollouts gated by partition or priority without bolting on a separate progressive-delivery tool.
  • You want sidecar injection and independent sidecar upgrades (SidecarSet) decoupled from the main container lifecycle.
  • You need workload primitives the upstream lacks: broadcast jobs, advanced cron jobs, image pre-pull jobs, resource distribution across namespaces.
  • It is not a progressive-delivery engine. If your goal is metric-analyzed canary or blue-green with traffic shifting, Argo Rollouts or Flagger sit at a different layer (and Argo Rollouts can drive a CloneSet).

In this deep-dive

Sources

  1. openkruise/kruise (GitHub)
  2. Source tree at v1.9.0, pinned 439d98db
  3. OpenKruise becomes a CNCF incubating project (CNCF blog)
  4. OpenKruise (CNCF projects page)
  5. OpenKruise: The Cloud-Native Platform for Alibaba's Double 11 (Alibaba Cloud)
  6. OpenKruise v1.0, reaching new peaks of application automation (CNCF)
  7. InPlace Update (OpenKruise docs)
  8. CloneSet (OpenKruise docs)
  9. SidecarSet (OpenKruise docs)
  10. Installation (OpenKruise docs)
  11. OpenKruise v1.7: SidecarSet Supports Native Kubernetes Sidecar Containers (Alibaba Cloud)
  12. GitHub REST API repos/openkruise/kruise
  13. Releases (v1.9.0, 2026-06-21)