Cloud Native ComputingDevelopersDevOpsNewsOpen Source

OpenKruise Project Joins The CNCF Incubator

0

The CNCF Technical Oversight Committee (TOC) has voted to accept OpenKruise as a CNCF incubating project. OpenKruise is an extended component suite for Kubernetes focused on application automations like deployment, upgrade, ops, and availability protection. Most features provided by OpenKruise are built primarily based on CRD extensions and can work in pure Kubernetes clusters without any other dependencies.

The project provides advanced workloads, Sidecar container management, multiple domain management, enhanced operations, and application availability protection.

Advanced workloads support the basic features similar to the upstream Workloads in Kubernetes, and more advanced abilities such as in-place updates, configurable scale/upgrade strategies, and parallel operations. Sidecar container management defines, injects and even upgrades sidecar containers with no effect on application containers.

Multiple domain management empowers workloads to support multi-domain and elastic deployment so that users can define the rules about how their applications should be deployed over different kinds of nodes. Enhanced operations, such as restarting containers in place, pre-downloading images on specific nodes, controlling containers starting priority in a Pod and distributing resources over multiple namespaces.

Application availability protection can prevent unexpected Kubernetes resource deletion during cascading deletion and prevent application disruption or SLA degradation in voluntary disruption scenarios.

OpenKruise has planned a full roadmap and is actively adding new features and functionality. The community plans to add:

  • A new CRD named PodMarker to mark pods by number, labels, nodes, probes, etc.
  • Decoupled liveness probe, which supports restart containers on failure with limited rate.
  • For Job applications, terminate sidecar containers after the main container exited.
  • Generic container exit priority capability to ensure that multiple containers in a Pod can exit in a specific order.