-
Notifications
You must be signed in to change notification settings - Fork 81
Add resource requirements for Volcano installation #419
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
base: master
Are you sure you want to change the base?
Conversation
The Volcano official website lacks information on the resources requirements for Volcano installation See volcano-sh/volcano#4677 for more details.
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Summary of ChangesHello @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 Highlights
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this 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.
content/en/docs/installation.md
Outdated
| 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) | | ||
| | ------------------ | --------------- |---------------| ------------------- | ----------------- | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
| | ------------------ | --------------- |---------------| ------------------- | ----------------- | | |
| | ------------------ | --------------- | ------------- | ------------------- | ----------------- | |
content/en/docs/installation.md
Outdated
| After the configuration is complete, you can use Volcano to deploy the AI/ML and big data workloads. | ||
|
|
||
|
|
||
| ## Note |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
content/en/docs/installation.md
Outdated
| 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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
| - 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. |
| - 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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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."
content/zh/docs/installation.md
Outdated
| 一切配置就绪,您可以开始使用 Volcano 部署 AI/ML 和大数据负载了。现在您已经完成了 Volcano 的全部安装,您可以运行如下的例子测试安装的正确性:[样例](https://github.com/volcano-sh/volcano/tree/master/example) | ||
|
|
||
|
|
||
| ## 说明事项 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - CPU申请值:计算“目标节点数 * 目标Pod规模”的值,并在表2中根据“集群节点数 * Pod规模”的计算值进行插值查找,向上取最接近规格的申请值及限制值。 | ||
| 例如2000节点和2w个Pod的场景下,“目标节点数 * 目标Pod规模”等于4000w,向上取最接近的规格为700/7w(“集群节点数 * Pod规模”等于4900w),因此建议CPU申请值为4000m,限制值为5500m。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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申请值和限制值。"
content/zh/docs/installation.md
Outdated
| - 内存申请值:建议每1000个节点分配2.4G内存,每1w个Pod分配1G内存,二者叠加进行计算。(该计算方法相比表2中的建议值会存在一定的误差,通过查表或计算均可) | ||
| 即:内存申请值 = 目标节点数/1000 * 2.4G + 目标Pod规模/1w * 1G。例如2000节点和2w个Pod的场景下,内存申请值 = 2 * 2.4G + 2 * 1G = 6.8G。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
| - 内存申请值:建议每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。 |
| | 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 | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.).
| | 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 | |
|
/assign @JesseStutler |
|
Please sign your commit using |
What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
/kind documentation
What this PR does / why we need it:
The Volcano official website lacks information on the resources requirements for Volcano installation
Which issue(s) this PR fixes:
see When deploying Volcano, how much resources (CPU/memory) does the service itself need? volcano#4677