-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
KEP-3619: updated Production Readiness Review Questionnaire for beta release #4895
base: master
Are you sure you want to change the base?
Changes from all commits
1469f4d
5d3c7c0
8182886
46bf6c7
0c5f7ed
69d37fe
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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -790,13 +790,44 @@ rollout. Similarly, consider large clusters and how enablement/disablement | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
will rollout across nodes. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
--> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A rollout may fail when at least one of the following components are too old because this KEP introduces the new Kubernetes API field: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. First, a comment on the affect of this enabling/disabling this on running Pods (I can't comment on the unchanged lines above). In the answers above, you say that the permission may change. Under what conditions? If the container restarts? Or just if a Pod is recreated? 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.
The permission(process identities) may change only when
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. Ok, can you fix this above (lines 752, 756 are not clear on this). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Component | `supplementalGroupsPolicy` value that will cause an error | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|----------------|-----------------------------------------------------------| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kube-apiserver | not null | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kubelet | not null | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| CRI runtime | `Strict` | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
For example, an error will be returned like this if kube-apiserver is too old: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 think you need to revise your version skew strategy (above) and think about how each component reacts during an upgrade. You can't say "kubelet must be at least the version of control-plane components". That's not realistic. It's not possible during an upgrade, and in fact people often run for extended periods of time with older kubelets. In that case, the kubelet won't see the new field. What sort of failure does that cause? Similarly for the CRI runtime. Similarly, with enablement, you could enable the feature gate in the control plane, then only enable it in some nodes at the kubelet level. What's the behavior in this case? If you enable it everywhere, then you create some pods with the 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 did not say this. I think I respected the version skew policy.
This is a common issue when adding new API fields in Pod. For this KEP, the below matrix describes what will happen:
Please see the above matrix.
Please see the above matrix. 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. That was a quote from line 676, please fix it up there and add in the matrix. Thanks! |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```console | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$ kubectl apply -f supplementalgroupspolicy.yaml | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Error from server (BadRequest): error when creating "supplementalgroupspolicy.yaml": Pod in version "v1" cannot be handled as a Pod: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
strict decoding error: unknown field "spec.securityContext.supplementalGroupsPolicy" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
No impact on already running workloads. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
###### What specific metrics should inform a rollback? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<!-- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
What signals should users be paying attention to when the feature is young | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
that might indicate a serious problem? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
--> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Look for an event saying indicating SupplementalGroupsPolicy is not supported by the runtime. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```console | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$ kubectl get events -o json -w | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"kind": "Event", | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"message": "Error: SupplementalGroupsPolicyNotSupported", | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+818
to
+829
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. For this, I plan to add kubelet admission which raises an error event if
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. ok, and so the pod doesn't get admitted, can there be metric when this happens for this reason? Events are not useful if you are managing 50,000 clusters... 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.
hmm. If I understood correctly, there are currently no metrics for specific kubelet's admission errors. This kind of admission error is a common issue for node(or runtime handler) feature-based admission (e.g. user namespace or recursive read-only mounts). Like KEP-127: Support User Namespaces stated, we can compare WDYT?? 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. yeah, that looks reasonable, please pull that in here. thanks |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<!-- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -805,12 +836,22 @@ Longer term, we may want to require automated upgrade/rollback tests, but we | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
are missing a bunch of machinery and tooling and can't do that now. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
--> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
During the beta phase, the following test will be manually performed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
haircommander marked this conversation as resolved.
Show resolved
Hide resolved
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Enable the `SupplementalGroupsPolicy` feature gate for kube-apiserver and kubelet. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Create a pod with `supplementalGroupsPolicy` specified. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Disable the `SupplementalGroupsPolicy` feature gate for kube-apiserver, and confirm that the pod gets rejected. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Enable the `SupplementalGroupsPolicy` feature gate again, and confirm that the pod gets scheduled again. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Do the same for kubelet too. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
###### Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<!-- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Even if applying deprecation policies, they may still surprise some users. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
--> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
No. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
### Monitoring Requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<!-- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -828,6 +869,12 @@ checking if there are objects with field X set) may be a last resort. Avoid | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
logs or events for this purpose. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
--> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inspect the `supplementalGroupsPolicy` fields in Pods. You can check if the following `jq` command prints non-zero number: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. If you have 50,000 clusters this is not helpful. Is there a metric we can use, can kube state metrics help here? 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. Yeah, kube state metrics can help. Let me update this section. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
```bash | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kubectl get pods -A -o json | jq '[.items[].spec.securityContext? | select(.supplementalGroupsPolicy)] | length' | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
###### How can someone using this feature know that it is working for their instance? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<!-- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -841,8 +888,8 @@ Recall that end users cannot usually observe component logs or access metrics. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- [ ] Events | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Event Reason: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- [ ] API .status | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Condition name: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- [x] API .status | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Condition name: `containerStatuses.user` | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Other field: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- [ ] Other (treat as last resort) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Details: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -864,16 +911,22 @@ These goals will help you determine what you need to measure (SLIs) in the next | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
question. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
--> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- `supplementalGroupsPolicy=Strict`: 100% of pods were scheduled into a node with the feature supported. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 don't see any scheduler integration incorporated into the KEP. How will this happen in clusters where some nodes support this and some do not? 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. Yeah, I described this topic in later section. I think to update this line like this. WDYT?
Suggested change
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 think that's helpful, but perhaps you can also note up in the discussion of the feature and how it works, that users should target using a node label. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- `supplementalGroupsPolicy=Merge`: 100% of pods were scheduled into a node with or without the feature supported. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- `supplementalGroupsPolicy` is unset: 100% of pods were scheduled into a node with or without the feature supported. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
###### What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<!-- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pick one more of these and delete the rest. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
--> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- [ ] Metrics | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- [x] Metrics | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Metric name: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- [Optional] Aggregation method: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Components exposing the metric: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- [Optional] Aggregation method: `kubectl get events -o json -w` | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Components exposing the metric: kubelet -> kube-apiserver | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- [ ] Other (treat as last resort) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Details: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -884,6 +937,15 @@ Describe the metrics themselves and the reasons why they weren't added (e.g., co | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
implementation difficulties, etc.). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
--> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Potentially, kube-scheduler could be implemented to avoid scheduling a pod with `supplementalGroupsPolicy: Strict` | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
to a node running CRI runtime which does not supported this feature. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
In this way, the Event metric described above would not happen, and users would instead see `Pending` pods | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
as an error metric. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
However, this is not planned to be implemented in kube-scheduler, as it seems overengineering. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Users may use `nodeSelector`, `nodeAffinity`, etc. to workaround this. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. Ok, this needs to be clearly documented, I didn't see this anywhere above (I may have missed it). Is the assumption then that during the time period while this is working its way through the ecosystem (maybe a couple years?), NFD/a label + node selector will be needed to ensure that workloads that need the 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. However, this topic is not specific to the KEP. This is common issue for node/runtime handler features (e.g. user namespaces, recursive read-only mounts.) 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...and I think this is a big usability oversight. but you are right, that's not specific to this KEP. 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 agree it's miserable and the containerd 2.0 situation is exaccerbating it. The only paths I see are basically:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
### Dependencies | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<!-- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -907,6 +969,12 @@ and creating new ones, as well as about cluster-level services (e.g. DNS): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Impact of its degraded performance or high-error rates on the feature: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
--> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Container runtimes supporting [CRI api v0.31.0](https://github.com/kubernetes/cri-api/tree/v0.31.0) or above. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
For example, | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- containerd: v2.0 or later | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- CRI-O: v1.31 or later | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
### Scalability | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<!-- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -919,6 +987,16 @@ For GA, this section is required: approvers should be able to confirm the | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
previous answers based on experience in the field. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
--> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A pod with `supplementalGroupsPolicy: Strict` may be rejected by kubelet with the probablility of $$B/A$$, | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. Only if the user fails to target the pod via a nodeSelector, right? 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, if the cluster administrator maintains node labels propagated from |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
where $$A$$ is the number of all the nodes that may potentially accept the pod, | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
and $$B$$ is the number of the nodes that may potentially accept the pod but does not support this feature. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This may affect scalability. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
To evaluate this risk, users may run | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
`kubectl get nodes -o json | jq '[.items[].status.features]'` | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
to see how many nodes support `supplementalGroupsPolicy: true`. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
###### Will enabling / using this feature result in any new API calls? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<!-- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -1024,6 +1102,8 @@ details). For now, we leave it here. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
###### How does this feature react if the API server and/or etcd is unavailable? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A pod cannot be created, just as in other pods. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
###### What are other known failure modes? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<!-- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -1039,8 +1119,21 @@ For each of them, fill in the following information by copying the below templat | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Testing: Are there any tests for failure mode? If not, describe why. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
--> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
None. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 think the "pod failing to schedule because the node doesn't support it" is a failure mode you can document here. 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. Thanks. But, this section defines "What are OTHER known failure modes?", right? I think the failure mode "node does not support it" was clearly mentioned above. This proposes to raise a kubelet admission error for this case. Would you like to describe the failure mode here even though it was stated? 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. "other" here means "other than the API server and/or etcd being available". But I think it's ok to have it where you do, since it's really a user error not a failure of the feature. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
###### What steps should be taken if SLOs are not being met to determine the problem? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Make sure that the node is running with CRI runtime which supports this feature. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Make sure that `crictl info` (with the latest crictl) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reports that `supplemental_groups_policy` is supported. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+1127
to
+1128
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. It needs to update |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Otherwise upgrade the CRI runtime, and make sure that no relevant error is printed in | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
the CRI runtime's log. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Make sure that `kubectl get nodes -o json | jq '[.items[].status.features]'` | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(with the latest kubectl and control plane) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reports that `supplementalGroupsPolicy` is supported. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Otherwise upgrade the CRI runtime, and make sure that no relevant error is printed in | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kubelet's log. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
## Implementation History | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<!-- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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.
no needed for this PR, now?
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.
@johnbelamaric Sorry for taking the time to do this PRR. As we postpone its beta promotion to v1.33 or later(depending on containerd v2 situation). So, I think you don't need to review this KEP for now (at least until v1.33 release cycle.
I'm not sure how to withdraw the PRR request. I'd be very glad if you could guide me.