Skip to main content

Release Announcement v0.12.1

We are pleased to announce that the Apache YuniKorn (Incubating) community has voted to release 0.12.1. Apache YuniKorn (Incubating) is a standalone resource scheduler, designed for managing, and scheduling Big Data workloads on container orchestration frameworks like Kubernetes for on-prem and on-cloud use cases.

Overview

The Apache YuniKorn (Incubating) community has fixed 150 JIRAs in this release. Note that we decided to skip the 0.12.0 release and go directly to 0.12.1 due to a technical issue with the Go Modules system, where a marked tag cannot be updated to point to a later commit after the fact.

Release manager: Chaoran Yu

Release date: 2021-12-26

Highlights

Supported Kubernetes Versions

In this release, the supported Kubernetes versions have been updated to 1.19.x, 1.20.x and 1.21.x. (The last release supported 1.17.x, 1.18.x and 1.19.x.). The YuniKorn support matrix primarily supports 3 major Kubernetes versions.

Node Sorting Improvements

YuniKorn used to sort all nodes on demand for the scheduling of each container, which results in a slow performance when the number of nodes increases. Using an optimized data structure (B-tree), this release achieved a considerable improvement to the node sorting performance.

Gang Scheduling Enhancements

Improved test coverage. Added support for node affinity. Fixed a critical bug when handling placeholders during the removal of a node.

Logging & Observability Improvements

  • Enhanced logging in various components by adding logs, adjusting the severity level of existing logs and removing unneeded logs.
  • Added support for getting a full state dump of the scheduler periodically or on demand through a REST endpoint to facilitate troubleshooting.
  • Improved the health check of the scheduler to report issues with problematic allocations.

Scheduler Interface Revamp

Simplified the scheduler interface that the core and shim use to talk to each other. A bulky message is broken down so that each message contains a smaller payload and is only for a specific purpose. Most messages are now made bi-directional between the core and the shim.

Kubernetes Dependency Upgrade

The version of Kubernetes that the K8shim depends on has been upgraded from 1.16 to 1.20. This paves the way for supporting future versions of Kubernetes. As a result of this work, the predicate logic has been rewritten using the Scheduling Framework.

Latest Performance Benchmarking Results

We are excited to publish the performance evaluation results of the latest code base using Kubemark. YuniKorn achieved up to 4x throughput improvement over the default scheduler.

Community

The Apache YuniKorn community is pleased to welcome new committers Craig Condit, Chenya Zhang, Chaoran Yu and Chia-Ping Tsai, as well as new mentors Luciano Resende and Wei-Chiu Chuang. We would love to see more committers joining the community and help to shape the project. In the past few months, we continue to have bi-weekly community meetings in 2 different time zones, ad-hoc meetings, offline channel discussions. The community will continue to be open.