Skip to content

Files

Latest commit

 

History

History
 
 

docs

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Overview

Kubernetes provides a set of default controllers for workload management, like StatefulSet, Deployment, DaemonSet for instances. While at the same time, managed applications express more and more diverse requirements for workload upgrade and deployment, which in many cases, cannot be satisfied by the default workload controllers.

Kruise attempts to fill such gap by offering a set of controllers as the supplement to manage new workloads in Kubernetes. The target use cases are representative, originally collected from the users of Alibaba cloud container services and the developers of the in-house large scale on-line/off-line container applications. Most of the use cases can be easily applied to other similar cloud user scenarios.

Currently, Kruise supports the following workloads.

Workloads

  • CloneSet: CloneSet is a workload that mainly focuses on managing stateless applications. It provides a rich set of features for more efficient, deterministic and controlled management, such as in-place update, specified Pod deletion, configurable priority/scatter based update, preUpdate/postUpdate hooks, etc. This post provides more details about why CloneSet is useful.
  • Advanced StatefulSet: An enhanced version of default StatefulSet with extra functionalities such as in-place update, pause and maxUnavailable.
  • SidecarSet: A controller that injects sidecar containers into the Pod spec based on the Pod selectors. The controller is also responsible for upgrading the sidecar containers.
  • UnitedDeployment: This controller manages application Pods spread in multiple fault domains by using multiple workloads.
  • BroadcastJob: A job that runs Pods to completion across all the nodes in the cluster.
  • Advanced DaemonSet: An enhanced version of default DaemonSet with extra functionalities such as partition, node selector, pause and surging.

Benefits

  • In addition to serving new workloads, Kruise also offers extensions to default controllers for new capabilities. Kruise owners will be responsible to port any change to the default controller from upstream if it has an enhanced version inside (e.g., Advanced StatefulSet).

  • Kruise provides controllers for representative cloud native applications with full Kubernetes API compatibility. Ideally, it can be the first option to consider when one wants to extend upstream Kubernetes for workload management.

  • Kruise plans to offer more Kubernetes automation solutions in the areas of scaling, QoS and operators, etc. Stay tuned!

Tutorials

Several Tutorials are provided to demonstrate how to use the controllers