A Kubernetes automation suite for workload management
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).
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 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.
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.
Please provide your information on Wanted: who is using openkruise to help improving the project.