Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LFX: Add Volcano project for Term 01 - 2025 March - May #1335

Merged
merged 2 commits into from
Feb 5, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions programs/lfx-mentorship/2025/01-Mar-May/project_ideas.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,63 @@ In this project you will implement support for `limitk` and `limit_ratio`. See [

The project is interesting because you will learn how query engines are implemented, about distributed query execution.

- Description: In the last year Prometheus has tackled and solved many UX problems that OTel users had when sending OTLP data to Prometheus. One challenge that remains unsolved is how do users expect to use OTLP Resource Attributes in Prometheus. This project is about conducting a UX research that explores the main problems users are facing today with the current state of Resource Attributes and Prometheus and coming up with ideas how to solve them.
- Expected Outcome:
- Preliminary artifacts (e.g., research plan) shared as project progresses.
- Research report, summarizing the findings.
- A spoken presentation including research method and results.
- Stretch goal: apply to present the project at KubeCon.
- Recommended Skills:
- Interest or currently working in UX Research and Design.
- Familiarity with databases and querying.
- Being comfortable to talk with End-Users in English.
- Mentor(s):
- Arthur Sens (@ArthurSens, [email protected])
- Amy Super (@amy-super, [email protected])
- Andrej Kiripolsky (@AndrejKiri, [email protected])
* Upstream Issue: https://github.com/prometheus/prometheus/issues/15909

- Expected Outcome: `limitk`, `limit_ratio` are supported in the Thanos PromQL engine (local & distributed modes), tests are written for them
- Recommended Skills: Go programming language experience
- Mentor(s): #
- Giedrius Statkevičius (@GiedriusS, [email protected])
- Saswata Mukherjee (@saswatamcode, [email protected])
- Upstream Issue (URL): https://github.com/thanos-io/promql-engine/issues/515

### Volcano

#### Volcano supports queue-level scheduling policies

- Description: Volcano supports unified scheduling of online and offline workloads, provides a wealth of scheduling plugins and algorithms, and can distinguish different tenants through queue distinction. The current scheduling policy is a global configuration, and all jobs in the queue use the same scheduling policy, but in actual scenarios, different tenants may need to use different scheduling policies due to different usage scenarios. Therefore, volcano needs to support setting and using different scheduling policies at the queue level instead of using a globally unified scheduling policy.
- Expected Outcome:
- A new field is added to the queue CRD, and users can set scheduling policies at the queue level.
- Volcano scheduler implements different scheduling policies based on the queue in which the job is located.
- Recommended Skills: Kubernetes, GO, Volcano
- Mentor(s):
- Xuzheng Chang(@Monokaix, [email protected])
- Zicong Chen(@JesseStutler, [email protected])
- Upstream Issue: https://github.com/volcano-sh/volcano/issues/3992

#### Coordinate descheduler and Volcano to support resource defragmentation

- Description: Volcano community has provided Volcano descheduler to support descheduling. Currently, load-aware rescheduling is supported. Resource fragmentation is a problem that users are more concerned about. Volcano needs to provide a resource defragmentation strategy based on the existing descheduler, and needs to ensure that the evicted pods can be rescheduled successfully, which requires the cooperation of the rescheduler and the scheduler to solve resource fragmentation and maximize resource utilization.
- Expected Outcome:
- Implementing a resource defragmentation strategy based on Volcano descheduler.
- The Volcano descheduler works in conjunction with the Volcano scheduler to ensure that evicted pods can be re-scheduled successfully.
- Recommended Skills: Kubernetes, GO, Volcano
- Mentor(s):
- Xuzheng Chang(@Monokaix, [email protected])
- Zicong Chen(@JesseStutler, [email protected])
- Upstream Issue: https://github.com/volcano-sh/volcano/issues/3948

#### Volcano dashboard feature enhancements

- Description: Volcano dashboard is a volcano resource front-end display tool. Currently, it only supports viewing resources, and the resources displayed are limited. It needs to support viewing more resources, and supports operations such as creation and deletion.
- Expected Outcome:
- Supports viewing resources other than volcano related resources.
- Supports add, delete, modify and query resources such as queues and volcano jobs.
- Recommended Skills: Kubernetes, React, Node, JS
- Mentor(s):
- Xuzheng Chang(@Monokaix, [email protected])
- Zicong Chen(@JesseStutler, [email protected])
- Upstream Issue: https://github.com/volcano-sh/dashboard/issues/11