OpenKruise

A Kubernetes automation suite for workload management

Introduction

OpenKruise is a suite that provides workload automations in Kubernetes. It complements the popular upstream workload controllers by supporting new capabilities based on real production requirements. There are two major categories that OpenKruise focuses on: workload management and controller management. The kruise repo collects all supported workload controllers. They are built primarily based on Kubernetes CRD extensions. The platform repo provides a framework to manage multiple controllers in the aspects of upgrading, sharding, tooling, monitoring etc (to be released).

Highlights (many more in Github)

Inplace Update

It is a new methodology to update container image. Unlike the Pod recreation based container image update methodology used in Deployment and StatefulSet, inplace update only restarts the specific container with the new image and the Pod will not be recreated. It leads to much faster update process and much less side effects on other sub-systems such as scheduler, CNI or CSI.

Sidecar Container Management

Sidecar containers are defined in a new Custom Resource (CR). Kruise controller will inject them into all matching Pods during Pod creation. Besides that, the sidecar container images can also be inplace updated through updating the container Spec in the CR. The ability of separating main container management and sidecar container management greatly eases the developer collaborations.

Multi-Domain Deployment

UnitedDeployment is a new Custom Resource Definition (CRD) used to achieve high availability in a cluster that consists of multiple domains. It manages multiple homogeneous workloads, and each workload is dedicated to a single domain. Pod distribution across domains is determined by the replica number of each workload. A domain, identified by a node label, can be an availability zone (AZ) or a group of homogeneous nodes.

Why OpenKruise

  • Kubernetes native

    • Leverage CRDs for extension
    • Support Stateful/Stateless/Job workloads and various operators
  • Production grade

    • Used in production managing tens of thousands Pods
    • Support large scale clusters with thousands of nodes
  • Easy to use

    • Easy install/uninstall
    • Selective controller installation
  • Rich set of management strategies

    • Selective Pod upgrade/deletion
    • Upgrade sequence management
    • Graceful Pod offline during upgrade

Who is using OpenKruise

Please provide your information on Wanted: who is using openkruise to help improving the project.