Skip to content

Commit

Permalink
doc: Affinity, Tolerations and Node Selector
Browse files Browse the repository at this point in the history
Signed-off-by: Yellow Shine <[email protected]>
  • Loading branch information
yellow-shine committed Nov 12, 2024
1 parent 739ddad commit d7501aa
Show file tree
Hide file tree
Showing 6 changed files with 779 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ To add a new chart, create a directory inside _charts_ with it contents at _mast
When you commit it, it will be picked up by the GitHub action, and if it contains a chart and version that doesn't already exist in the _charts repository_, a new release with the package for the chart will be published on the _GitHub repository_,
and the list of all charts at `index.yaml` on _gh-pages_ branch will be updated on the _charts repository_.


## More information

You can find more information at:
Expand Down
32 changes: 32 additions & 0 deletions charts/milvus/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -598,3 +598,35 @@ Continuous Profiling adds a dimension of time that allows you to understand your

You can enable profiling with Pyroscope and you can find more information at:
* [https://pyroscope.io/docs/kubernetes-helm-chart/](https://pyroscope.io/docs/kubernetes-helm-chart/)

## Documentation

This repository includes detailed configuration guides to help you properly set up Milvus in your Kubernetes cluster:

- [Node Selector Configuration Guide](docs/node-selector-configuration-guide.md)
- [Affinity Configuration Guide](docs/affinity-configuration-guide.md)
- [Tolerations Configuration Guide](docs/tolerations-configuration-guide.md)

### Important Configuration Considerations

When configuring pod scheduling in Kubernetes, be aware of potential conflicts between different scheduling mechanisms:

1. **Node Selectors vs Node Affinity**
- Node selectors provide a simple way to constrain pods to nodes with specific labels
- Node affinity provides more flexible pod scheduling rules
- When used together, **both** node selector and node affinity rules must be satisfied
- Consider using only one mechanism unless you have specific requirements

2. **Scheduling Priority**
- Node Selectors: Hard requirement that must be satisfied
- Required Node Affinity: Hard requirement that must be satisfied
- Preferred Node Affinity: Soft preference that Kubernetes will try to satisfy
- Pod Anti-Affinity: Can prevent pods from being scheduled on the same node

3. **Best Practices**
- Start with simple node selectors for basic constraints
- Use node/pod affinity for more complex scheduling requirements
- Avoid combining multiple scheduling constraints unless necessary
- Test your configuration in a non-production environment first

For detailed examples and configurations, please refer to the documentation guides linked above.
Loading

0 comments on commit d7501aa

Please sign in to comment.