Skip to content

Commit 538d77d

Browse files
committed
CRI stats: update based on work done during alpha
Some pieces that were initially slated for Alpha have been pushed to Beta Signed-off-by: Peter Hunt <[email protected]>
1 parent 3650547 commit 538d77d

File tree

1 file changed

+10
-12
lines changed
  • keps/sig-node/2371-cri-pod-container-stats

1 file changed

+10
-12
lines changed

keps/sig-node/2371-cri-pod-container-stats/README.md

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -515,13 +515,11 @@ Each compliant CRI implementation must:
515515

516516
Below is the proposed strategy for doing so:
517517

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
519520
- 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.
520521
- Testing on how performant cAdvisor+Kubelet are today should be done, to find a target, acceptable threshold of performance for the CRI implementations
521522
- 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.
525523
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).
526524

527525
#### cAdvisor
@@ -540,19 +538,19 @@ As a requirement for the Beta stage, cAdvisor must support optionally collecting
540538

541539
- CRI should be extended to provide required stats for `/stats/summary`
542540
- 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.
544541
- 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+
548543
#### Alpha -> Beta Graduation
549544

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.
552549
- cAdvisor stats provider may be marked as deprecated (depending on stability of new CRI based implementations).
553550
- 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.
554551

555552
#### Beta -> GA Graduation
553+
556554
- The CRI stats provider in the Kubelet should be fully formed, and able to satisfy all the needs of downstream consumers
557555
- cAdvisor stats provider will likely be marked as deprecated (depending on dockershim deprecation).
558556
- 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
562560
- There needs to be a way for the Kubelet to verify the CRI provider is capable of providing the correct metrics.
563561
Upon upgrading to a version that relies on this new behavior (assuming the feature gate is enabled),
564562
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`).
566564

567565
### Version Skew Strategy
568566

@@ -735,7 +733,7 @@ operations covered by [existing SLIs/SLOs]?**
735733
resource usage (CPU, RAM, disk, IO, ...) in any components?**
736734
- It most likely will reduce resource utilization. Right now, there is duplicate work being done between CRI and cAdvisor.
737735
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.
739737

740738
### Troubleshooting
741739

0 commit comments

Comments
 (0)