-
Notifications
You must be signed in to change notification settings - Fork 858
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
Feat: support sharding in controller #5360
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -114,6 +114,8 @@ optimize: | |
##@param featureGates.gzipApplicationRevision compress apprev using gzip (good) before being stored. This is reduces network throughput when dealing with huge apprevs. | ||
##@param featureGates.zstdApplicationRevision compress apprev using zstd (fast and good) before being stored. This is reduces network throughput when dealing with huge apprevs. Note that zstd will be prioritized if you enable other compression options. | ||
##@param featureGates.preDispatchDryRun enable dryrun before dispatching resources. Enable this flag can help prevent unsuccessful dispatch resources entering resourcetracker and improve the user experiences of gc but at the cost of increasing network requests. | ||
##@param featureGates.validateComponentWhenSharding enable component validation in webhook when sharding mode enabled | ||
##@param featureGates.disableWebhookAutoSchedule disable auto schedule for application mutating webhook when sharding enabled | ||
##@param | ||
featureGates: | ||
enableLegacyComponentRevision: false | ||
|
@@ -124,6 +126,8 @@ featureGates: | |
gzipApplicationRevision: false | ||
zstdApplicationRevision: true | ||
preDispatchDryRun: true | ||
validateComponentWhenSharding: false | ||
disableWebhookAutoSchedule: false | ||
|
||
## @section MultiCluster parameters | ||
|
||
|
@@ -268,3 +272,9 @@ authentication: | |
withUser: true | ||
defaultUser: kubevela:vela-core | ||
groupPattern: kubevela:* | ||
|
||
## @param sharding.enabled When sharding enabled, the controller will run as master mode. Refer to https://github.com/kubevela/kubevela/blob/master/design/vela-core/sharding.md for details. | ||
## @param sharding.schedulableShards The shards available for scheduling. If empty, dynamic discovery will be used. | ||
sharding: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes. |
||
enabled: false | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. why don't make the default value to be true? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. what should one user do when they want to upgrade to the sharding mode when they don't enable it at first installation There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I noticed we need new role and rolebinding configuration, that might be hard for users to learn There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
By default, in the sharding mode, the master will not work on applications. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Just run There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
User does not need to know the role/rolebinding configuration. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
You should add that to the doc and KEP, I missed this message at first time. This also means users must set several slaves when sharding is enabled. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Now the master shard by default also accepts applications. So slaves are not required. |
||
schedulableShards: "" |
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.
user did not enable sharding, when install vela. After that, if user need enable it in order to manage more apps, can user enable sharding?
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.
Yes, user can use
helm upgrade --set sharding.enabled
to enable it. But he needs to usevela up --shard-id
command to manually schedule the original applications tomaster
shard.