diff --git a/cmd/kube-apiserver/app/server.go b/cmd/kube-apiserver/app/server.go index cd96833930d..2660130f1d0 100644 --- a/cmd/kube-apiserver/app/server.go +++ b/cmd/kube-apiserver/app/server.go @@ -300,6 +300,7 @@ func CreateKubeAPIServerConfig( }) s.Metrics.Apply() + serviceaccount.RegisterMetrics() serviceIPRange, apiServerServiceIP, err := master.ServiceIPRange(s.PrimaryServiceClusterIPRange) if err != nil { diff --git a/pkg/serviceaccount/metrics.go b/pkg/serviceaccount/metrics.go index cc1913d2f73..2c614a9f930 100644 --- a/pkg/serviceaccount/metrics.go +++ b/pkg/serviceaccount/metrics.go @@ -17,6 +17,8 @@ limitations under the License. package serviceaccount import ( + "sync" + "k8s.io/component-base/metrics" "k8s.io/component-base/metrics/legacyregistry" ) @@ -56,8 +58,12 @@ var ( ) ) -func init() { - legacyregistry.MustRegister(legacyTokensTotal) - legacyregistry.MustRegister(staleTokensTotal) - legacyregistry.MustRegister(validTokensTotal) +var registerMetricsOnce sync.Once + +func RegisterMetrics() { + registerMetricsOnce.Do(func() { + legacyregistry.MustRegister(legacyTokensTotal) + legacyregistry.MustRegister(staleTokensTotal) + legacyregistry.MustRegister(validTokensTotal) + }) }