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-node/2371-cri-pod-container-stats/README.md
+10-12Lines changed: 10 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -515,13 +515,11 @@ Each compliant CRI implementation must:
515
515
516
516
Below is the proposed strategy for doing so:
517
517
518
-
1. The Alpha release will strictly cover research, performance testing and the creation of conformance tests.
518
+
1. The Alpha release will focus solely on `/stats/summary` endpoint, and `/metrics/cadvisor` support will follow in Beta.
519
+
2. For the Beta release, add initial support for CRI implementations to report these metrics
519
520
- Initial research on the set of metrics required should be done. This will, possibly, allow the community to declare metrics that are not required to be moved to the CRI implementations.
520
521
- Testing on how performant cAdvisor+Kubelet are today should be done, to find a target, acceptable threshold of performance for the CRI implementations
521
522
- Creation of tests verifying the metrics are reported correctly should be created and verified with the existing cAdvisor implementation.
522
-
2. For the Beta release, add initial support for CRI implementations to report these metrics
523
-
- This set of metrics will be based on the research done in alpha
524
-
- Each will be validated against the conformance and performance tests created in alpha.
525
523
3. For the GA release, the CRI implementation should be the source of truth for all pod and container level metrics that external parties rely on (no matter how many endpoints the Kubelet advertises).
526
524
527
525
#### cAdvisor
@@ -540,19 +538,19 @@ As a requirement for the Beta stage, cAdvisor must support optionally collecting
540
538
541
539
- CRI should be extended to provide required stats for `/stats/summary`
542
540
- Kubelet should be extended to provide the required stats from CRI implementation for `/stats/summary`.
543
-
- cAdvisor should be updated to support no longer collecting stats that are duplicated with CRI implementation.
544
541
- This new behavior will be gated by a feature gate to prevent regressions for users that rely on the old behavior.
545
-
- Conduct research to find the set of metrics from `/metrics/cadvisor` that compliant CRI implementations must expose.
546
-
- Conformance tests for the fields in `/metrics/cadvisor` should be created
547
-
- Performance tests for CPU/memory usage between Kubelet/cAdvisor/CRI implementation should be added.
542
+
548
543
#### Alpha -> Beta Graduation
549
544
550
-
- CRI implementations should report any difficulties collecting the stats, and by Beta the CRI stats implementation should perform better than they did with CRI+cAdvisor.
551
-
- CRI implementations should support their equivalent of `/metrics/cadvisor`, passing the performance and conformance suite created in Alpha.
545
+
- Conduct research to find the set of metrics from `/metrics/cadvisor` that compliant CRI implementations must expose.
546
+
- Conformance tests for the fields in `/metrics/cadvisor` should be created.
547
+
- Performance tests for CPU/memory usage between Kubelet/cAdvisor/CRI implementation should be added.
548
+
- The CRI stats implementation should perform better than they did with CRI+cAdvisor.
552
549
- cAdvisor stats provider may be marked as deprecated (depending on stability of new CRI based implementations).
553
550
- 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.
554
551
555
552
#### Beta -> GA Graduation
553
+
556
554
- The CRI stats provider in the Kubelet should be fully formed, and able to satisfy all the needs of downstream consumers
557
555
- cAdvisor stats provider will likely be marked as deprecated (depending on dockershim deprecation).
558
556
- Feature gate removed and the CRI stats provider will no longer rely on cAdvisor for container/pod level metrics.
@@ -562,7 +560,7 @@ As a requirement for the Beta stage, cAdvisor must support optionally collecting
562
560
- There needs to be a way for the Kubelet to verify the CRI provider is capable of providing the correct metrics.
563
561
Upon upgrading to a version that relies on this new behavior (assuming the feature gate is enabled),
564
562
Kubelet should fail early if the CRI implementation won't report the expected metrics.
565
-
- For Beta/GA releases, components that rely on `/metrics/cadvisor` should take the decided action (use `/stats/summary`, or use the Kubelet provided `/metrics/cadvisor`).
563
+
- For Beta/GA releases, components that rely on `/metrics/cadvisor` should take the decided action (use `/stats/summary`, or use the CRI provided `/metrics/cadvisor`).
566
564
567
565
### Version Skew Strategy
568
566
@@ -735,7 +733,7 @@ operations covered by [existing SLIs/SLOs]?**
735
733
resource usage (CPU, RAM, disk, IO, ...) in any components?**
736
734
- It most likely will reduce resource utilization. Right now, there is duplicate work being done between CRI and cAdvisor.
737
735
This will not happen anymore.
738
-
- The CRI implementation may scrape the metrics less efficiently than cAdvisor currently does. This should be measured and evaluated before Beta.
736
+
- The CRI implementation may scrape the metrics less efficiently than cAdvisor currently does. This should be measured and evaluated as a requirement of Beta.
0 commit comments