From 123689b32e12cd223e432590a0ced36e29fa757b Mon Sep 17 00:00:00 2001 From: Siyuan Zhang Date: Mon, 15 Apr 2024 14:36:45 -0700 Subject: [PATCH] etcd: cluster feature gate in etcd. Signed-off-by: Siyuan Zhang --- .../4647-cluster-feature-gate/README.md | 398 ++++++++++++++++++ .../cluster_feature_gate_new.png | Bin 0 -> 71845 bytes .../4647-cluster-feature-gate/kep.yaml | 20 + 3 files changed, 418 insertions(+) create mode 100644 keps/sig-etcd/4647-cluster-feature-gate/README.md create mode 100644 keps/sig-etcd/4647-cluster-feature-gate/cluster_feature_gate_new.png create mode 100644 keps/sig-etcd/4647-cluster-feature-gate/kep.yaml diff --git a/keps/sig-etcd/4647-cluster-feature-gate/README.md b/keps/sig-etcd/4647-cluster-feature-gate/README.md new file mode 100644 index 000000000000..6e908d2e6cff --- /dev/null +++ b/keps/sig-etcd/4647-cluster-feature-gate/README.md @@ -0,0 +1,398 @@ +# KEP-4647: Cluster Feature Gate in etcd + + +- [Release Signoff Checklist](#release-signoff-checklist) +- [Summary](#summary) +- [Motivation](#motivation) + - [Goals](#goals) + - [Non-Goals](#non-goals) +- [Proposal](#proposal) + - [User Stories (Optional)](#user-stories-optional) + - [Story 1](#story-1) + - [Story 2](#story-2) + - [Story 3](#story-3) + - [Notes/Constraints/Caveats (Optional)](#notesconstraintscaveats-optional) + - [Could it done on the client side instead of inside etcd?](#could-it-done-on-the-client-side-instead-of-inside-etcd) + - [Should we prevent a new member with an inconsistent feature gate from joining the cluster?](#should-we-prevent-a-new-member-with-an-inconsistent-feature-gate-from-joining-the-cluster) + - [Risks and Mitigations](#risks-and-mitigations) + - [Backport Risks](#backport-risks) + - [Data Compatibility Risks during Feature Value Change](#data-compatibility-risks-during-feature-value-change) + - [Feature Implementation Change Risks](#feature-implementation-change-risks) +- [Design Details](#design-details) + - [APIs](#apis) + - [Feature Gate](#feature-gate) + - [Cluster Level Feature Enablement](#cluster-level-feature-enablement) + - [How to Reach Consensus of Feature Gates for a New Cluster](#how-to-reach-consensus-of-feature-gates-for-a-new-cluster) + - [How to Reach Consensus of Feature Gates for an Existing Cluster](#how-to-reach-consensus-of-feature-gates-for-an-existing-cluster) + - [Test Plan](#test-plan) + - [Prerequisite testing updates](#prerequisite-testing-updates) + - [Unit tests](#unit-tests) + - [Integration tests](#integration-tests) + - [e2e tests](#e2e-tests) + - [Graduation Criteria](#graduation-criteria) + - [Milestone 1](#milestone-1) + - [Milestone 2](#milestone-2) + - [Milestone 3](#milestone-3) + - [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy) + - [Version Skew Strategy](#version-skew-strategy) +- [Implementation History](#implementation-history) +- [Drawbacks](#drawbacks) +- [Alternatives](#alternatives) + + +## Release Signoff Checklist + + + +Items marked with (R) are required *prior to targeting to a milestone / release*. + +- [ ] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR) +- [ ] (R) KEP approvers have approved the KEP status as `implementable` +- [ ] (R) Design details are appropriately documented +- [ ] (R) Test plan is in place +- [ ] (R) Graduation criteria is in place +- [ ] "Implementation History" section is up-to-date for milestone +- [ ] User-facing documentation has been created in [etcd-io/website], for publication to [etcd.io] +- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes + + + +[etcd.io]: https://etcd.io/ +[kubernetes/enhancements]: https://git.k8s.io/enhancements +[kubernetes/kubernetes]: https://git.k8s.io/kubernetes +[etcd-io/website]: https://github.com/etcd-io/website + +## Summary + +We are introducing functionalities to determine if a feature is enabled for the whole etcd cluster. Users would be able to query cluster feature enablement in a consistent way on the cluster level. + +## Motivation + +In [KEP-4578](https://github.com/kubernetes/enhancements/issues/4578) we introduced the feature gate framework into etcd. But the feature gate only works on the local server level. Different members could hold different values of a feature enablement. There are various features that require all members working consistently together, so we need to add functionalities to the feature gate to work on the cluster level for these features. + +### Goals + +* Establish a mechanism to safely and consistently determine if a cluster-level feature is enabled/disabled on all members. + +* Introduce apis/methods to query the enablement state of a cluster level feature. + +### Non-Goals + +## Proposal + +### User Stories (Optional) + +#### Story 1 + +A developer is adding a new feature of a new write type. Because it requires a consensus write, the request should be rejected if the feature is not enabled or the request can be processed on all cluster members. +Today, any new raft request type would need to be added one minor version before the actual feature can be enabled, and the leader would have to optimistically assume the feature is enabled or disabled consistently across the cluster. + +With cluster level feature gate, a server would know if a feature is enabled on all members, and decide whether or not to accept the new write request. + +#### Story 2 + +A Kubernetes developer would like use a new great etcd feature, but it is not available on all supported etcd versions. What can they do? +Historically, Kubernetes avoided using any features that were not available on all supported versions of etcd. +From K8s 1.31, Kubernetes added very complicated and fragile system: [`FeatureSupportChecker`](https://github.com/kubernetes/kubernetes/blob/db82fd1604ebf327ab74cde0a7158a8d95d46202/staging/src/k8s.io/apiserver/pkg/storage/etcd3/feature/feature_support_checker.go#L42) to detect etcd version, parse it and guess whether this feature based on a set of hardcoded etcd version. It does not really know if the feature is enabled by the feature `--experimental` flag. + +Now the developer could just send a client request to etcd cluster to query if a feature is enabled on the whole cluster. + +#### Story 3 + +In a HA cluster, users would like to turn off an enabled feature. They need to restart each server node one by one with feature changed from enabled to disabled. Today, after the restarting process begins and before all nodes are restarted, the behavior of the feature is really undefined: it is enabled on some nodes and disabled on the other nodes. + +Now with the cluster feature gate, we can deterministically tell if the feature is enabled or disabled for the whole cluster at any moment. + +This story applies similar to the upgrade/downgrade scenarios as well. + +### Notes/Constraints/Caveats (Optional) + +#### Could it done on the client side instead of inside etcd? +One could argue that it is easy to know if a feature enabled for the whole cluster by querying each member if the feature is enabled on the client side. But there are several caveates with this approach: +* not all members are available all the time. if some member is not available, it is questionable if the feature can be used, and that could break the HA assumption. +* some feature might change how a raft message is sent and applied, and the order of messages relative to the index the feature is enabled is critical. Here the consistent index is more important than the time, and it is hard to get that outside etcd. + +#### Should we prevent a new member with an inconsistent feature gate from joining the cluster? + +One way to prevent inconsistencies of feature gate between different members is to prevent a new member with an inconsistent feature gate from joining the cluster in the first place. +We do not think this is the right way because we want to keep the ability to turn on/off a feature in a rolling sequence without bringing down the whole cluster. + + +### Risks and Mitigations + +#### Backport Risks + +Because we are adding a new type of raft request, if we want to support feature gate as soon as in 3.6, we have to backport the proto changes and add no-op apply logic in 3.5. +There is the potential risk of changing a stable release. But we do not think this is a real risk, because it should be a no-op change in 3.5. +When upgrading etcd cluster from 3.5 to 3.6, the users would need to upgrade to the latest 3.5 release first. + +If we do not backport to 3.5, we would need to add no-op changes in 3.6, and wait till 3.7 to add the real feature gate capabilities, which could be a long cycle of several years. + +#### Data Compatibility Risks during Feature Value Change + +There are some features that would need to touch data in the apply/storage layer. Disabling them might result in orphaned data or unrecognizable data that could be breaking. +How do we handle the data change? +1. if the etcd server knows this feature, it should be able to handle the data when the feature is on or off. How it handles the data at WAL entry `i` is determined by the cluster feature flag set from raft before WAL entry `i`. +1. if the etcd server does not know this feature, i.e. its version is not compatible with this feature, it means the data is not compatible with the storage version. The storage version migration should handle cleaning up older or newly introduced data. + +Overall, when developers introduce new data with a feature, they should be careful to include data cleaning in `schema.UnsafeMigrate`. But we prefer not to have a mechanism to disallow such features to be turned off after they are turned on because new features could be buggy, we need to keep the option to be able to turn it off without bring down the whole cluster. + +#### Feature Implementation Change Risks + +There are cases when a developer wants to change how an existing feature works. This would make things complicated in a mixed version cluster. One member could have the old implementation while another member uses the latest implementation. How can we make sure the cluster works consistently? + +Ideally, the developer should introduced a new feature if they want to do major changes. If that is not desirable, similar to [how Kubernetes handles feature gating changes for compatibility version](https://github.com/kubernetes/enhancements/tree/master/keps/sig-architecture/4330-compatibility-versions#feature-gating-changes), we need to keep the implementation history for at least 2 minor versions (allowed version skew) in the code base if the feature change affects data in anyway, like +```go +if s.FeatureEnabled(FeatureA) && s.ClusterVersion() <= "3.6" {implementation 1} +if s.FeatureEnabled(FeatureA) && s.ClusterVersion() >= "3.7" {implementation 2} +``` +This way the cluster would work consistently because there is a single ClusterVersion across the whole cluster. + +## Design Details + +### APIs + +New client APIs will be added to query if a feature is enabled. +A feature can be registered as server level feature or cluster level feature, but not both. So for all the feature enablement query apis, +* if the feature is a sever level feature, the result would be if the feature is enabled for that server. +* if the feature is a cluster level feature, the result would be if the feature is enabled for the whole cluster. + +For grpc, new rpc type would be added to the `Maintenance` service. + +```proto +service Maintenance { + ... + rpc FeatureGateStatus(FeatureGateStatusRequest) returns (FeatureGateStatusResponse) { + option (google.api.http) = { + post: "/v3/maintenance/featuregate" + body: "*" + }; + } + ... +} +message Feature { + string name = 1; + bool enabled = 2; +} +message FeatureGateStatusRequest { + repeated string features = 2; +} +message FeatureGateStatusResponse { + ResponseHeader header = 1; + repeated Feature features = 3; +} +``` + +The clientv3 function would look like: + +```go +package clientv3 + +type Maintenance interface { + FeatureGateStatus(ctx context.Context, features ...string) (*FeatureGateStatusResponse, error) +} +``` + +The `etcdctl` commands could look like: +* `etcdctl endpoint featuregate $featureName` returns true if the feature is enabled + +### Feature Gate + +A feature can be registered as server level feature or cluster level feature, but not both. + +```go +defaultServerFeatureGates := map[Feature]VersionedSpecs { + featureA: VersionedSpecs{ + {Version: mustParseVersion("3.6"), Default: false, PreRelease: Beta}, + {Version: mustParseVersion("3.7"), Default: true, PreRelease: GA}, + }, + featureB: VersionedSpecs{ + {Version: mustParseVersion("3.7"), Default: false, PreRelease: Alpha}, + }, +} +defaultClusterFeatureGates := map[Feature]VersionedSpecs { + featureC: VersionedSpecs{ + {Version: mustParseVersion("3.7"), Default: false, PreRelease: Beta}, + }, + featureD: VersionedSpecs{ + {Version: mustParseVersion("3.6"), Default: false, PreRelease: Alpha}, + {Version: mustParseVersion("3.7"), Default: true, PreRelease: Deprecated}, + } +} +``` + +The `func (s *EtcdServer) FeatureEnabled(key Feature) bool` interface would return if the feature is enabled for the whole cluster if it is registered as a cluster level feature. + +The feature gates for a server can only be set with the `--feature-gates`flag or in the `config-file` during startup. We do not support dynamically changing the feature gates when the server is running. + +### Cluster Level Feature Enablement + +To determine if a feature is enabled in the whole cluster, each member would need to know if the feature is enabled for all cluster members. We plan to store the information in the [`member.Attributes`](https://github.com/etcd-io/etcd/blob/e37a67e40b3f5ff8ef81f9de6e7f475f17fda32b/server/etcdserver/api/membership/member.go#L38), and it would be saved in the `members` bucket in the backend through raft. + +Then the leader will decide the values for the cluster level features, and send `ClusterFeatureGateSetRequest` through raft. Each member will update their cluster feature gate, and save the results in the `cluster` bucket in the backend. + +```proto +message Feature { + string name = 1; + bool enabled = 2; +} + +message Attributes { + option (versionpb.etcd_version_msg) = "3.5"; + + string name = 1; + repeated string client_urls = 2; + // the values of all cluster level feature gates as seen by the version of the member server. + Feature feature_gates = 3; +} + +message ClusterFeatureGateSetRequest { + option (versionpb.etcd_version_msg) = "3.5"; + + // the values of all cluster level feature gates for the whole cluster. + Feature feature_gates = 1; +} +``` +When an etcd server starts, its `Attributes.feature_gates` value will be determined by the `--feature-gates` flag and the local server version. The attributes would then be [published through raft](https://github.com/etcd-io/etcd/blob/e37a67e40b3f5ff8ef81f9de6e7f475f17fda32b/server/etcdserver/server.go#L1745) and stored in all members. Whenever a new member joins or an existing member restarts, its feature gate attributes would be automatically updated in the start up process. + +We choose to store the `feature_gates` through raft instead of dynamically querying the `\metrics` endpoint because +1. all members need to reach a linearizable consensus for the feature gates. +1. the feature gates of a member really only changes when it starts, and this way it saves network bandwidth. + +In `membership.RaftCluster`, we will add a new cluster level feature gate to store the cluster level feature enablement. The `EtcdServer.FeatureEnabled` method will call the cluster level feature gate if the feature is registered as a cluster level feature. + +```go +type RaftCluster struct { + ... + clusterFeatureGate featuregate.FeatureGate + ... +} + +func (c *RaftCluster) FeatureEnabled(key Feature) bool +``` + +#### How to Reach Consensus of Feature Gates for a New Cluster + +![setting cluster feature gate for a new cluster](./cluster_feature_gate_new.png "setting cluster feature gate for a new cluster") + +We will leverage the consensus `ClusterVersion` to negotiate the cluster level feature gate values: +1. if `ClusterVersion` is not set, the cluster feature gate would be `nil`, and all features would be considered disabled. +1. when the `ClusterVersion` is set or updated, initialize the cluster feature gate with the `ClusterVersion`. At this point, + * if the `member.Attributes` of any members has not been set, use the default values for feature gate at version `ClusterVersion`. + * if the `member.Attributes` of all members have been set, take the common set of all the mbmer `--feature-gates` flags and set values of the cluster feature gate: discard any features not recognized at the `ClusterVersion`, and set the feature to false if there is any member setting it to false. + * learner nodes would not be taken into consideration because they do not serve requests. +1. if any `member.Attributes` is updated, reinitialize the cluster feature gate with the `ClusterVersion`, and repeat step 2. + +* We have to do step 2 to initialize the feature gate with the `ClusterVersion` because: during downgrade process, the member flags could remain unchanged while the `ClusterVersion` is downgraded, and we need to adjust the features accordingly to be compatible with the lower version. + +One drawback of this approach is that there is a period before the `ClusterVersion` is set when no feature would be available. We think that is acceptable because the `ClusterVersion` should be set soon after leader is elected, so that period should very short, and the feature settings are also consistent throughout the cluster in this period. +* an alternative would be set some default min version similar to `MinClusterVersion = "3.0.0"`. The problem is: if we want to bump `MinClusterVersion` to `4.0.0` at release 4.1.0, we could potentially break the feature gate consistency when upgrading from/downgrading to the previous 3.x release, or we would complicate the upgrade/downgrade process. + +#### How to Reach Consensus of Feature Gates for an Existing Cluster +When a new server is bootstrapped from existing backend data, it would recover the cluster feature gate settings from the backend just like how the server [recovers the cluster version](https://github.com/etcd-io/etcd/blob/67743348dcd2deb1819fded2336749449ebf95d2/server/etcdserver/api/membership/cluster.go#L264). +After that, the new server will update its new feature gate flags through `member.Attributes` as part of the server [`Start()`](https://github.com/etcd-io/etcd/blob/67743348dcd2deb1819fded2336749449ebf95d2/server/etcdserver/server.go#L532) process after bootstrapping. + +NOTE: if there are feature gate flags saved in the backend not compatible with the new server which should only happen during downgrade, it should have been migrated as part of the downgrade process. + +### Test Plan + +[x] I/we understand the owners of the involved components may require updates to +existing tests to make this code solid enough prior to committing the changes necessary +to implement this enhancement. + +##### Prerequisite testing updates + +##### Unit tests + +New feature gate unit tests will be added. + +##### Integration tests + +New feature gate integration tests will be added. + +##### e2e tests + +We will add one cluster level experimental features to the feature gate (without removing the original experimental flag), and add e2e tests to make sure the feature gate functions equivalently to their `--experimental-xxx` flags. + +We will also add downgrade/upgrade e2e tests to make sure the feature gate does not break the cluster in mixed version cluster. + +### Graduation Criteria + +#### Milestone 1 + +* cluster level feature gate implemented. + * new raft changes added. + * cluster feature gate added to the server code, and used by a cluster level experimental feature. + * feature metrics added. + * e2e tests added for the feature gate equivalent of the selected experimental feature. + * robustness tests added for current version. + +#### Milestone 2 +* cluster level feature gate client API implemented. + * grpc endpoints added. + * `clientv3` function added. + * `etcdctl` command added. + +#### Milestone 3 + +* cluster level feature gate fully tested. + * backport necessary miminal changes to 3.5. + * feature gates clean up added to `schema.UnsafeMigrate`. + * e2e tests for upgrade & downgrade & mixed version scenarios completed. + * robustness tests with upgrade & downgrade & mixed version scenarios completed. + * documentation. + +### Upgrade / Downgrade Strategy + +For regular downgrade process, `schema.UnsafeMigrate` should clean up feature gates that are not available in the target version. + +The feature gate feature would available in 3.6+. +In 3.5, the necessary proto changes and no-op raft changes would be backported, but feature gate would not be available. +When upgrading/downgrading between 3.5 and 3.6, no feature would be enabled if there is at least one member with version 3.5. + +If a user uses a 3.5 version that does not recognize the new proto field, it is recommended they should upgrade to the latest 3.5 release first before upgrading to 3.6. Since unknown fields is ignored by proto, etcd should still work even if they do not upgrade to latest 3.5 version. + +### Version Skew Strategy + +Since we are introducing some new raft request and data, we will backport the new proto changes into 3.5, but would not use them in any way affecting 3.5 etcd server. + +## Implementation History + + + +## Drawbacks + + + +## Alternatives + + diff --git a/keps/sig-etcd/4647-cluster-feature-gate/cluster_feature_gate_new.png b/keps/sig-etcd/4647-cluster-feature-gate/cluster_feature_gate_new.png new file mode 100644 index 0000000000000000000000000000000000000000..d7d879b7372588601d63d6901aa16d2b81ee3fd9 GIT binary patch literal 71845 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μA#gtbRbjdA=x=>K_yk`b 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