What is OpenKruise

Welcome to OpenKruise!

OpenKruise is a full set of standard extensions for Kubernetes. It works well with original Kubernetes and provides more powerful and efficient features for managing applications Pods, sidecar containers, and even images on Node.

Key features

  • In-place update

    In-place update is a way to update container images without deleting and creating Pod. It is quite faster than re-create update used by original Deployment/StatefulSet and less side-effect on other containers.

  • Sidecar management

    Define sidecar containers in one CR and OpenKruise will inject them into all Pods matched. It’s just like istio, but you can manage your own sidecars.

  • Multiple fault domains deployment

    Define a global workload over multiple fault domains, and OpenKruise will spread a sub workload for each domain. You can manage replicas, template and update strategies for workloads in different fault domains.

  • Image pre-download

    Help users download images on any nodes they want.

  • Container recreate/restart

    Help users restart/recreate one or more containers in an existing Pod.

Controllers and Webhooks

  • CloneSet

    CloneSet is a workload that mainly focuses on managing stateless applications. It provides full features for more efficient, deterministic and controlled deployment, such as inplace update, specified pod deletion, configurable priority/scatter update, preUpdate/postUpdate hooks.

  • Advanced StatefulSet

    An enhanced version of default StatefulSet with extra functionalities such as inplace-update, pause and MaxUnavailable.

  • SidecarSet

    A controller that injects sidecar containers into the Pod spec based on selectors and also is able to upgrade 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.

  • AdvancedCronJob

    An extended CronJob controller, currently its template supports Job and BroadcastJob.

  • ImagePullJob

    Help users download images on any nodes they want.

  • ContainerRecreateRequest

    Provides a way to let users restart/recreate one or more containers in an existing Pod.

  • Deletion Protection

    Provides a safety policy which could help users protect Kubernetes resources and applications’ availability from the cascading deletion mechanism.

  • PodUnavailableBudget

    In voluntary disruption scenarios, PodUnavailableBudget can achieve the effect of preventing application disruption or SLA degradation, which greatly improves the high availability of application services.

  • WorkloadSpread

    Constrain the spread of stateless workload, which empowers single workload the abilities for multi-domain and elastic deployment.