Hollow-node should use separate client for heartbeats.

This commit is contained in:
Maciej Borsz
2019-07-08 15:37:16 +02:00
parent d771dfac3d
commit ed41078f05
3 changed files with 30 additions and 18 deletions

View File

@@ -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()
}