Workload spreading across failure domains (fix pod anti-affinity performance problem) #51
Closed
Description
Description
As a user, I want to be able to spread workloads to multiple clusters spread across multiple failure domains to improve my application uptime.
(Note: This is just one use case for pod affinity/anti-affinity.)
Progress Tracker
- Before Alpha
- Write and maintain draft quality doc: This feature was implemented in 1.3, before the features repo process existed. It was disabled by default due to performance issues, which are now fixed in 1.4.
- Design Approval
- Design Proposal. https://github.com/kubernetes/kubernetes/blob/master/docs/design/podaffinity.md
- Initial API review (if API). Maybe same PR as design doc. Inter-pod topological affinity/anti-affinity proposal kubernetes#18265
- Any code that changes an API (
/pkg/apis/...
) - cc @kubernetes/api
- Any code that changes an API (
- Identify shepherd (your SIG lead and/or kubernetes-pm@googlegroups.com will be able to help you). My Shepherd is: @davidopp
- A shepherd is an individual who will help acquaint you with the process of getting your feature into the repo, identify reviewers and provide feedback on the feature. They are not (necessarily) the code reviewer of the feature, or tech lead for the area.
- The shepherd is not responsible for showing up to Kubernetes-PM meetings and/or communicating if the feature is on-track to make the release goals. That is still your responsibility.
- Identify secondary/backup contact point. My Secondary Contact Point is: replace.me@replaceme.com (and/or GH Handle)
- Write (code + tests + docs) then get them merged. First step of optimizing PodAffinity priority function kubernetes#28952 More pod-affinity code cleanup and prepare for parallelization kubernetes#29109 Optimize pod affinity 2 kubernetes#29379 Optimize PodAffinity priority function kubernetes#29539
- Code needs to be disabled by default. Accessed via alpha annotation.
- Minimal testing
- Minimal docs
- cc @kubernetes/docs on docs PR
- cc @kubernetes/feature-reviewers on this issue to get approval before checking this off
- New apis: Glossary Section Item in the docs repo: kubernetes/kubernetes.github.io
- Update release notes
- Before Beta
- Testing is sufficient for beta
- User docs with tutorials
- Updated walkthrough / tutorial in the docs repo: kubernetes/kubernetes.github.io
- cc @kubernetes/docs on docs PR
- cc @kubernetes/feature-reviewers on this issue to get approval before checking this off
- Thorough API review
- cc @kubernetes/api
- Before Stable
- docs/proposals/foo.md moved to docs/design/foo.md
- cc @kubernetes/feature-reviewers on this issue to get approval before checking this off
- Soak, load testing
- detailed user docs and examples
- cc @kubernetes/docs
- cc @kubernetes/feature-reviewers on this issue to get approval before checking this off
- docs/proposals/foo.md moved to docs/design/foo.md
FEATURE_STATUS is used for feature tracking and to be updated by @kubernetes/feature-reviewers.
FEATURE_STATUS: IN_DEVELOPMENT
More advice:
Design
- Once you get LGTM from a @kubernetes/feature-reviewers member, you can check this checkbox, and the reviewer will apply the "design-complete" label.
Coding
- Use as many PRs as you need. Write tests in the same or different PRs, as is convenient for you.
- As each PR is merged, add a comment to this issue referencing the PRs. Code goes in the http://github.com/kubernetes/kubernetes repository,
and sometimes http://github.com/kubernetes/contrib, or other repos. - When you are done with the code, apply the "code-complete" label.
- When the feature has user docs, please add a comment mentioning @kubernetes/feature-reviewers and they will
check that the code matches the proposed feature and design, and that everything is done, and that there is adequate
testing. They won't do detailed code review: that already happened when your PRs were reviewed.
When that is done, you can check this box and the reviewer will apply the "code-complete" label.
Docs
- Write user docs and get them merged in.
- User docs go into http://github.com/kubernetes/kubernetes.github.io.
- When the feature has user docs, please add a comment mentioning @kubernetes/docs.
- When you get LGTM, you can check this checkbox, and the reviewer will apply the "docs-complete" label.