Hollow-node should use separate client for heartbeats.
This commit is contained in:
@@ -30,6 +30,7 @@ import (
|
||||
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||
clientset "k8s.io/client-go/kubernetes"
|
||||
restclient "k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
@@ -38,6 +39,7 @@ import (
|
||||
"k8s.io/component-base/logs"
|
||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||
_ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration
|
||||
"k8s.io/kubernetes/pkg/features"
|
||||
cadvisortest "k8s.io/kubernetes/pkg/kubelet/cadvisor/testing"
|
||||
"k8s.io/kubernetes/pkg/kubelet/cm"
|
||||
"k8s.io/kubernetes/pkg/kubelet/dockershim"
|
||||
@@ -154,6 +156,23 @@ func run(config *hollowNodeConfig) {
|
||||
}
|
||||
|
||||
if config.Morph == "kubelet" {
|
||||
f, c := kubemark.GetHollowKubeletConfig(config.NodeName, config.KubeletPort, config.KubeletReadOnlyPort, maxPods, podsPerCore)
|
||||
|
||||
heartbeatClientConfig := *clientConfig
|
||||
heartbeatClientConfig.Timeout = c.NodeStatusUpdateFrequency.Duration
|
||||
// if the NodeLease feature is enabled, the timeout is the minimum of the lease duration and status update frequency
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.NodeLease) {
|
||||
leaseTimeout := time.Duration(c.NodeLeaseDurationSeconds) * time.Second
|
||||
if heartbeatClientConfig.Timeout > leaseTimeout {
|
||||
heartbeatClientConfig.Timeout = leaseTimeout
|
||||
}
|
||||
}
|
||||
heartbeatClientConfig.QPS = float32(-1)
|
||||
heartbeatClient, err := clientset.NewForConfig(&heartbeatClientConfig)
|
||||
if err != nil {
|
||||
klog.Fatalf("Failed to create a ClientSet: %v. Exiting.", err)
|
||||
}
|
||||
|
||||
cadvisorInterface := &cadvisortest.Fake{
|
||||
NodeName: config.NodeName,
|
||||
}
|
||||
@@ -166,15 +185,12 @@ func run(config *hollowNodeConfig) {
|
||||
}
|
||||
|
||||
hollowKubelet := kubemark.NewHollowKubelet(
|
||||
config.NodeName,
|
||||
f, c,
|
||||
client,
|
||||
heartbeatClient,
|
||||
cadvisorInterface,
|
||||
fakeDockerClientConfig,
|
||||
config.KubeletPort,
|
||||
config.KubeletReadOnlyPort,
|
||||
containerManager,
|
||||
maxPods,
|
||||
podsPerCore,
|
||||
)
|
||||
hollowKubelet.Run()
|
||||
}
|
||||
|
Reference in New Issue
Block a user