karmada
karmada copied to clipboard
Optimize Cluster Failover
What type of PR is this?
/kind design /kind documentation
What this PR does / why we need it:
The Cluster Failover feature aims to significantly enhance the availability of services in a multi-cluster environment. As a crucial and feature-rich functionality, we have always attached great importance to user feedback and continuously iterated and optimized it, striving to create a more excellent user experience. This time, we have carried out a large-scale and comprehensive upgrade of the Failover feature.
In this proposal, we have made in-depth adjustments to the architecture of the Failover feature. Clear constraints have been added to the cluster failure mechanism, enabling unified control over the resource migration behavior triggered by cluster failures and ensuring that the migration process is more standardized and orderly.
In terms of configurability, we have optimized from multiple dimensions such as system configuration and policy API definition, providing users with a wider space for customization and meeting diverse business needs.
In addition, we have also conducted a meticulous investigation of the sources that may trigger migration behavior outside the controller, eliminating all implicit cluster failover behaviors and further enhancing the stability and predictability of the system.
Which issue(s) this PR fixes: Part of #6317
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
NONE
[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: Once this PR has been reviewed and has the lgtm label, please ask for approval from xishanyongye-chang. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment
:warning: Please install the to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 48.27%. Comparing base (
2f6ff56) to head (ff033ea).
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@ Coverage Diff @@
## master #6274 +/- ##
=======================================
Coverage 48.27% 48.27%
=======================================
Files 677 677
Lines 56067 56067
=======================================
Hits 27068 27068
Misses 27229 27229
Partials 1770 1770
| Flag | Coverage Δ | |
|---|---|---|
| unittests | 48.27% <ø> (ø) |
Flags with carried forward coverage won't be shown. Click here to find out more.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
/cc @kevin-wangzefeng @RainbowMango @GitHubxsy @mszacillo @zach593
Thanks to all for your comments! To avoid distraction, let's focus on the Chinese version first and finalize it before translating it into English.
Let me change this pr to a draft first.
@XiShanYongYe-Chang any update? Do you still want this to be included in the coming 1.14 release?
@XiShanYongYe-Chang any update? Do you still want this to be included in the coming 1.14 release?
Expect to agree on the design content in the online document before synchronizing the changes to the current pr.
The original plan is expected to be implemented in release-1.14: #6317