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
@@ -235,9 +239,10 @@ This will be described in more detail in the [design details section](#design-de
235
239
### /metrics/cadvisor
236
240
237
241
1. Expose the metric fields provided in `/metrics/cadvisor` in an analogous Prometheus endpoint directly from the CRI implementation.
238
-
5. cAdvisor should be updated to support no longer collecting stats that are duplicated with CRI implementation, and omit them from the report sent to `/metrics/cadvisor`.
242
+
2. cAdvisor should be updated to support no longer collecting stats that are duplicated with CRI implementation, and omit them from the report sent to `/metrics/cadvisor`.
239
243
3. The precise endpoint can change, but all the fields should be duplicated (so custom rules can be maintained).
240
244
4. Kubelet does not collect nor expose pod and container level metrics that were formally collected for and exposed by `/metrics/cadvisor`.
245
+
5. Kubelet should broadcast the endpoint from the CRI, similarly to how it does for `/metrics/cadvisor`.
241
246
242
247
### User Stories [optional]
243
248
@@ -268,7 +273,6 @@ Thus, this KEP largely the plan described [here](#plan), with some changes:
268
273
#### Open Questions
269
274
1. For the newly introduced CRI API fields, should there be Windows and Linux specific fields?
270
275
271
-
272
276
### Risks and Mitigations
273
277
274
278
- To properly move to CRI stats, it is likely there are some metrics that we'll want to not support (Accelerator/UserDefined). We should be careful to not break entities that rely on these metrics.
@@ -527,19 +531,85 @@ Below is the proposed strategy for doing so:
527
531
528
532
As a requirement for the Beta stage, cAdvisor must support optionally collecting and broadcasting these metrics, similarly to the changes needed for summary API.
529
533
530
-
531
534
### Test Plan
532
535
536
+
<!--
537
+
**Note:** *Not required until targeted at a release.*
538
+
The goal is to ensure that we don't accept enhancements with inadequate testing.
539
+
All code is expected to have adequate tests (eventually with coverage
540
+
expectations). Please adhere to the [Kubernetes testing guidelines][testing-guidelines]
- Internally in the Kubelet, there should be integration tests verifying that information gotten from the two sources is not too different.
534
588
- Each CRI implementation should do regression testing on performance to make sure the gathering of these stats is reasonably efficient.
535
589
- Any identified external user of either of these endpoints (prometheus, metrics-server) should be tested to make sure they're not broken by API changes.
536
590
591
+
592
+
##### e2e tests
593
+
594
+
<!--
595
+
This question should be filled when targeting a release.
596
+
For Alpha, describe what tests will be added to ensure proper quality of the enhancement.
597
+
For Beta and GA, add links to added tests together with links to k8s-triage for those tests:
We expect no non-infra related flakes in the last month as a GA graduation criteria.
600
+
-->
601
+
602
+
- A test using the CRI stats feature gate with enabled CRI implementations should be used with cri_stats_provider to ensure the stats reported are conformant.
603
+
537
604
### Graduation Criteria
538
605
#### Alpha implementation
539
606
540
607
- CRI should be extended to provide required stats for `/stats/summary`
541
608
- Kubelet should be extended to provide the required stats from CRI implementation for `/stats/summary`.
542
609
- This new behavior will be gated by a feature gate to prevent regressions for users that rely on the old behavior.
610
+
- cAdvisor should be able to optionally not report the metrics needed for both summary API and `/metrics/cadvisor`. This behavior will be toggled by the Kubelet feature gate.
611
+
- Kubelet will query the CRI implementation for endpoints to broadcast from its own server.
612
+
- This will allow the CRI to broadcast `/metrics/cadvisor` through the Kubelet's HTTP server.
543
613
544
614
#### Alpha -> Beta Graduation
545
615
@@ -548,7 +618,6 @@ As a requirement for the Beta stage, cAdvisor must support optionally collecting
548
618
- Validate performance impact of this feature is within allowable margin (or non-existent, ideally).
549
619
- The CRI stats implementation should perform better than they did with CRI+cAdvisor.
550
620
- cAdvisor stats provider may be marked as deprecated (depending on stability of new CRI based implementations).
551
-
- cAdvisor should be able to optionally not report the metrics needed for both summary API and `/metrics/cadvisor`. This behavior will be toggled by the Kubelet feature gate.
552
621
553
622
#### Beta -> GA Graduation
554
623
@@ -788,11 +857,13 @@ _This section must be completed when targeting beta graduation to a release._
788
857
789
858
## Implementation History
790
859
791
-
2021-1-27: KEP opened
792
-
2021-5-12: KEP merged, targeted at Alpha in 1.22
793
-
2021-7-8: KEP deemed not ready for Alpha in 1.22
860
+
2021-01-27: KEP opened
861
+
2021-05-12: KEP merged, targeted at Alpha in 1.22
862
+
2021-07-08: KEP deemed not ready for Alpha in 1.22
794
863
2021-12-07: KEP successfully implemented at Alpha in 1.23
795
-
2022-1-25: KEP targeted at Beta in 1.24
864
+
2022-01-25: KEP targeted at Beta in 1.24
865
+
2022-04-20: KEP deemed not ready for Beta in 1.24
866
+
2022-06-13: Move some Beta criteria to Alpha criteria in 1.25
0 commit comments