From 3d3ba6f89812003be22133f3a78cbdfee8554ddd Mon Sep 17 00:00:00 2001 From: Peter Hunt Date: Wed, 31 Jul 2024 12:25:10 -0400 Subject: [PATCH] kubelet: don't use cadvisor stats if PodAndContainerStatsFromCRI feature is enabled As the feature mitigates the limitations of CRI stats provider for CRI-O Signed-off-by: Peter Hunt --- pkg/kubelet/cadvisor/util.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/kubelet/cadvisor/util.go b/pkg/kubelet/cadvisor/util.go index 24f9e5eb50a..cef66324a49 100644 --- a/pkg/kubelet/cadvisor/util.go +++ b/pkg/kubelet/cadvisor/util.go @@ -23,7 +23,9 @@ import ( cadvisorapi2 "github.com/google/cadvisor/info/v2" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" + utilfeature "k8s.io/apiserver/pkg/util/feature" v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" + "k8s.io/kubernetes/pkg/features" ) const ( @@ -73,5 +75,11 @@ func EphemeralStorageCapacityFromFsInfo(info cadvisorapi2.FsInfo) v1.ResourceLis // be removed. Related issue: // https://github.com/kubernetes/kubernetes/issues/51798 func UsingLegacyCadvisorStats(runtimeEndpoint string) bool { + // If PodAndContainerStatsFromCRI feature is enabled, then assume the user + // wants to use CRI stats, as the aforementioned workaround isn't needed + // when this feature is enabled. + if utilfeature.DefaultFeatureGate.Enabled(features.PodAndContainerStatsFromCRI) { + return false + } return strings.HasSuffix(runtimeEndpoint, CrioSocketSuffix) }