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.