Skip to content

Conversation

@maomaodev
Copy link

  • Please check if the PR fulfills these requirements
  • The commit message follows our guidelines

The Volcano official website lacks information on the resources requirements for Volcano installation

See volcano-sh/volcano#4677 for more details.
@volcano-sh-bot volcano-sh-bot added kind/documentation Categorizes issue or PR as related to documentation. retest-not-required-docs-only labels Oct 29, 2025
@volcano-sh-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
To complete the pull request process, please assign william-wang
You can assign the PR to them by writing /assign @william-wang in a comment when ready.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@gemini-code-assist
Copy link

Summary of Changes

Hello @maomaodev, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the Volcano installation documentation by introducing detailed guidelines for configuring resource requirements. It addresses the critical need for users to understand how to properly size their Volcano deployments by providing specific recommendations for volcano-admission, volcano-controller, and volcano-scheduler components, considering various cluster scales, node counts, and pod counts. This update ensures that users can optimize resource allocation for stable and efficient operation of Volcano in their Kubernetes environments.

Highlights

  • Documentation Update: Added comprehensive documentation regarding resource requirements for Volcano installation, addressing a previous lack of information on the official website.
  • Volcano Pod Resource Customization: Included a section detailing how to customize resource requests and limits for general Volcano pods, complete with a YAML configuration example.
  • Volcano-Admission Resource Recommendations: Provided a table (Table 1) with recommended CPU and memory requests and limits for the volcano-admission component, scaled according to cluster size (50, 200, 1000+ nodes).
  • Volcano-Controller and Scheduler Resource Guidelines: Introduced detailed guidelines, calculation formulas, and a table (Table 2) for setting resource quotas for volcano-controller and volcano-scheduler based on the number of cluster nodes and pods. This includes recommendations for clusters under 100 nodes and scaling advice for larger clusters.
  • Multilingual Documentation: The resource requirement documentation has been added to both the English (content/en/docs/installation.md) and Chinese (content/zh/docs/installation.md) installation guides.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@volcano-sh-bot volcano-sh-bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Oct 29, 2025
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds valuable documentation on resource requirements for Volcano in both English and Chinese. My review focuses on improving clarity, consistency, and correcting formatting issues in the new documentation. Key suggestions include using more descriptive section titles, fixing a broken markdown table, standardizing memory unit notation, simplifying complex explanations, and ensuring consistent number formatting in tables.

Table 1 Recommended requested resources and resource limits for volcano-admission
| Cluster Scale | CPU Request (m) | CPU Limit (m) | Memory Request (Mi) | Memory Limit (Mi) |
| ------------------ | --------------- |---------------| ------------------- | ----------------- |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The markdown for the table separator is incorrect. The number of dashes in the separator for the third column does not align with the other columns, which may cause rendering issues in some markdown parsers.

Suggested change
| ------------------ | --------------- |---------------| ------------------- | ----------------- |
| ------------------ | --------------- | ------------- | ------------------- | ----------------- |

After the configuration is complete, you can use Volcano to deploy the AI/ML and big data workloads.


## Note

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The section title "Note" is a bit generic. For better clarity and discoverability, consider a more descriptive title like "Resource Requirements" or "Resource Customization".

Suggested change
## Note
## Resource Requirements

The resource quotas of volcano-controller and volcano-scheduler are related to the number of cluster nodes and pods. The recommended values are as follows:
- If the number of nodes is less than 100, retain the default configuration. The requested CPUs are 500m, and the limit is 2000m. The requested memory is 500 MiB, and the limit is 2000 MiB.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There's an inconsistency in memory unit notation. This line uses MiB, while other parts of the document use Mi (e.g., line 150, and in the tables). To maintain consistency with Kubernetes resource notation, it's better to use Mi and Gi throughout the document.

Suggested change
- If the number of nodes is less than 100, retain the default configuration. The requested CPUs are 500m, and the limit is 2000m. The requested memory is 500 MiB, and the limit is 2000 MiB.
- If the number of nodes is less than 100, retain the default configuration. The requested CPUs are 500m, and the limit is 2000m. The requested memory is 500Mi, and the limit is 2000Mi.

Comment on lines +154 to +156
- Requested CPUs: Calculate the number of target nodes multiplied by the number of target pods, perform interpolation search based on the number of nodes in the cluster multiplied by the number of target pods in Table 2, and round up the request value and limit value that are closest to the specifications.
For example, for 2000 nodes and 20,000 pods, Number of target nodes x Number of target pods = 40 million, which is close to the specification of 700/70,000 (Number of cluster nodes x Number of pods = 49 million). According to the following table, set the requested CPUs to 4000m and the limit value to 5500m.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The explanation for calculating the requested CPU is a bit complex and could be hard to follow. Phrases like "perform interpolation search" and "round up the request value and limit value that are closest to the specifications" could be simplified for better readability.

Consider rephrasing to be more direct, for example:
"To determine the CPU request, first calculate the product of the target number of nodes and pods. Then, find the row in Table 2 where the product of 'Nodes' and 'Pods' is the smallest value that is greater than or equal to your calculated product. Use the CPU request and limit from that row."

一切配置就绪,您可以开始使用 Volcano 部署 AI/ML 和大数据负载了。现在您已经完成了 Volcano 的全部安装,您可以运行如下的例子测试安装的正确性:[样例](https://github.com/volcano-sh/volcano/tree/master/example)


## 说明事项

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The section title "说明事项" is a bit generic. For better clarity and discoverability, consider a more descriptive title like "资源要求" (Resource Requirements).

Suggested change
## 说明事项
## 资源要求

Comment on lines +159 to +161
- CPU申请值:计算“目标节点数 * 目标Pod规模”的值,并在表2中根据“集群节点数 * Pod规模”的计算值进行插值查找,向上取最接近规格的申请值及限制值。
例如2000节点和2w个Pod的场景下,“目标节点数 * 目标Pod规模”等于4000w,向上取最接近的规格为700/7w(“集群节点数 * Pod规模”等于4900w),因此建议CPU申请值为4000m,限制值为5500m。

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The explanation for calculating the requested CPU is a bit complex and could be hard to follow. Phrases like "插值查找" (interpolation search) and "向上取最接近规格" (round up to the closest spec) could be simplified for better readability.

Consider rephrasing to be more direct, for example:
"要确定CPU申请值,首先计算目标节点数和Pod数的乘积。然后,在表2中找到“集群节点数/Pod规模”乘积大于且最接近目标乘积的那一行,并使用该行的CPU申请值和限制值。"

Comment on lines 163 to 165
- 内存申请值:建议每1000个节点分配2.4G内存,每1w个Pod分配1G内存,二者叠加进行计算。(该计算方法相比表2中的建议值会存在一定的误差,通过查表或计算均可)
即:内存申请值 = 目标节点数/1000 * 2.4G + 目标Pod规模/1w * 1G。例如2000节点和2w个Pod的场景下,内存申请值 = 2 * 2.4G + 2 * 1G = 6.8G。

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The memory unit G is used here, which typically means Gigabyte (10^9). However, Kubernetes uses Gi for Gibibyte (2^30), which is also used in the YAML example (2Gi). To maintain consistency with Kubernetes standards and avoid confusion, please use Gi instead of G.

Suggested change
- 内存申请值:建议每1000个节点分配2.4G内存,每1w个Pod分配1G内存,二者叠加进行计算。(该计算方法相比表2中的建议值会存在一定的误差,通过查表或计算均可)
即:内存申请值 = 目标节点数/1000 * 2.4G + 目标Pod规模/1w * 1G。例如2000节点和2w个Pod的场景下,内存申请值 = 2 * 2.4G + 2 * 1G = 6.8G
- 内存申请值:建议每1000个节点分配2.4Gi内存,每1w个Pod分配1Gi内存,二者叠加进行计算。(该计算方法相比表2中的建议值会存在一定的误差,通过查表或计算均可)
即:内存申请值 = 目标节点数/1000 * 2.4Gi + 目标Pod规模/1w * 1Gi。例如2000节点和2w个Pod的场景下,内存申请值 = 2 * 2.4Gi + 2 * 1Gi = 6.8Gi

Comment on lines +171 to +178
| 50/5k | 500 | 2000 | 500 | 2000 |
| 100/1w | 1000 | 2500 | 1500 | 2500 |
| 200/2w | 1500 | 3000 | 2500 | 3500 |
| 300/3w | 2000 | 3500 | 3500 | 4500 |
| 400/4w | 2500 | 4000 | 4500 | 5500 |
| 500/5w | 3000 | 4500 | 5500 | 6500 |
| 600/6w | 3500 | 5000 | 6500 | 7500 |
| 700/7w | 4000 | 5500 | 7500 | 8500 |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

In Table 2, the "集群节点数/Pod规模" column uses a mix of k (for thousands) and w (for ten thousands) to abbreviate numbers. This is inconsistent. For clarity and consistency with the English version of this document, it would be better to write out the full numbers (e.g., 5000, 10000, 20000, etc.).

Suggested change
| 50/5k | 500 | 2000 | 500 | 2000 |
| 100/1w | 1000 | 2500 | 1500 | 2500 |
| 200/2w | 1500 | 3000 | 2500 | 3500 |
| 300/3w | 2000 | 3500 | 3500 | 4500 |
| 400/4w | 2500 | 4000 | 4500 | 5500 |
| 500/5w | 3000 | 4500 | 5500 | 6500 |
| 600/6w | 3500 | 5000 | 6500 | 7500 |
| 700/7w | 4000 | 5500 | 7500 | 8500 |
| 50/5000 | 500 | 2000 | 500 | 2000 |
| 100/10000 | 1000 | 2500 | 1500 | 2500 |
| 200/20000 | 1500 | 3000 | 2500 | 3500 |
| 300/30000 | 2000 | 3500 | 3500 | 4500 |
| 400/40000 | 2500 | 4000 | 4500 | 5500 |
| 500/50000 | 3000 | 4500 | 5500 | 6500 |
| 600/60000 | 3500 | 5000 | 6500 | 7500 |
| 700/70000 | 4000 | 5500 | 7500 | 8500 |

@maomaodev
Copy link
Author

/assign @JesseStutler

@JesseStutler
Copy link
Member

@maomaodev

Please sign your commit using git commit -s and check about gemini's review comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/documentation Categorizes issue or PR as related to documentation. retest-not-required-docs-only size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants