You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: keps/sig-multicluster/3335-statefulset-slice/README.md
+55-11Lines changed: 55 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -128,14 +128,14 @@ checklist items _must_ be updated for the enhancement to be released.
128
128
129
129
Items marked with (R) are required *prior to targeting to a milestone / release*.
130
130
131
-
-[] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
131
+
-[X] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
132
132
-[ ] (R) KEP approvers have approved the KEP status as `implementable`
133
-
-[] (R) Design details are appropriately documented
134
-
-[] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
133
+
-[X] (R) Design details are appropriately documented
134
+
-[X] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
135
135
-[ ] e2e Tests for all Beta API Operations (endpoints)
136
136
-[ ] (R) Ensure GA e2e tests for meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
137
137
-[ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
138
-
-[] (R) Graduation criteria is in place
138
+
-[X] (R) Graduation criteria is in place
139
139
-[ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
140
140
-[ ] (R) Production readiness review completed
141
141
-[ ] (R) Production readiness review approved
@@ -236,11 +236,12 @@ What is out of scope for this KEP? Listing non-goals helps to focus discussion
236
236
and make progress.
237
237
-->
238
238
239
-
*Updating a PDB to safeguard more than one StatefulSet slice
239
+
* Updating a PDB to safeguard more than one StatefulSet slice
240
240
* As StatefulSet slices are scaled up or down, corresponding PDBs can also be adjusted. For example, a PDB corresponding to a slice of `k` replicas could be adjusted to `MinAvailable: k-1` on scale up or down events. Providing guidance and functionality to adjust these PDBs is outside the scope of this KEP.
241
-
* Orchestrating pod movement from one StatefulSet slice to another
242
-
* Managing network connectivity between pods in different StatefulSet slices
243
-
* Orchestrating storage lifecycle of PVCs and PVs across different StatefulSet slices
241
+
* Orchestrating pod movement from one StatefulSet slice to another
242
+
* Managing network connectivity between pods in different StatefulSet slices
243
+
* Orchestrating storage lifecycle of PVCs and PVs across different StatefulSet slices
244
+
* Referenced PV/PVCs will need to be migrated in order for a new StatefulSet to reference data that was used by an existing StatefulSet. Orchestration complexity will depend on how volumes are used (RWO with `.spec.volumeClaimTemplates` on a StatefulSet, RWX with pod `.spec.volumes`).
244
245
245
246
## Proposal
246
247
@@ -940,9 +941,52 @@ not need to be as detailed as the proposal, but should include enough
940
941
information to express the idea and why it was not acceptable.
941
942
-->
942
943
943
-
Users can orphan pods from a StatefulSet, migrate pods across a namespace or cluster, and create a new StatefulSet to manage pods upon migration. In the case of pod eviction or failure, pods will need to be manually restarted, requiring manual intervention and constant monitoring.
944
-
945
-
Users can backup and restore a StatefulSet (and underlying storage) in a new namespace or cluster. Doing so requires the existing StatefulSet to be deleted, for underlying storage to be backed up and restored, resulting in downtime for the stateful application.
944
+
### Alternative API changes
945
+
946
+
**ReverseOrderedReady**: A new PodManagementPolicy policy called
947
+
`ReverseOrderedReady` could be added. This would allow a StatefulSet to be
948
+
started and actuated from the highest ordinal (current default is from the
949
+
lowest ordinal). For the cross-cluster migration use case, this would allow for
950
+
a source StatefulSet to be scaled down and a target StatefulSet to be scaled in.
951
+
The downside with this API is that pod management policy is not a mutable field.
952
+
So if an orchestrator uses this behavior to scale in a StatefulSet, in a
953
+
destination cluster, and then wants to revert the PodManagementPolicy back to
954
+
default, the StatefulSet would need to be deleted, and re-created.
0 commit comments