From 0e5401c93940126beac45264aa056507b0950075 Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Wed, 27 Jul 2022 14:44:49 -0700 Subject: [PATCH] Disable the etcd3 client logger This logger is responsible for 20% of the API server's memory usage when many CRDs are installed. See the below issue for more context. https://github.com/kubernetes/kubernetes/issues/111476 Signed-off-by: Nic Cope --- .../apiserver/pkg/storage/storagebackend/factory/etcd3.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/etcd3.go b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/etcd3.go index 07b61d357a0..214e930140b 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/etcd3.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/etcd3.go @@ -30,6 +30,7 @@ import ( "go.etcd.io/etcd/client/pkg/v3/transport" clientv3 "go.etcd.io/etcd/client/v3" "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc" + "go.uber.org/zap" "google.golang.org/grpc" "k8s.io/apimachinery/pkg/runtime" @@ -223,6 +224,10 @@ var newETCD3Client = func(c storagebackend.TransportConfig) (*clientv3.Client, e DialOptions: dialOptions, Endpoints: c.ServerList, TLS: tlsConfig, + + // This logger uses a significant amount of memory when many CRDs (i.e. + // 1,000+) are added to the API server, so we disable it. + Logger: zap.NewNop(), } return clientv3.New(cfg)