mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 02:41:25 +00:00
Merge pull request #79889 from mborsz/kubemarkclient
Hollow-node should use separate client for heartbeats
This commit is contained in:
commit
a29243775a
@ -18,6 +18,7 @@ go_library(
|
|||||||
deps = [
|
deps = [
|
||||||
"//pkg/api/legacyscheme:go_default_library",
|
"//pkg/api/legacyscheme:go_default_library",
|
||||||
"//pkg/client/metrics/prometheus:go_default_library",
|
"//pkg/client/metrics/prometheus:go_default_library",
|
||||||
|
"//pkg/features:go_default_library",
|
||||||
"//pkg/kubelet/cadvisor/testing:go_default_library",
|
"//pkg/kubelet/cadvisor/testing:go_default_library",
|
||||||
"//pkg/kubelet/cm:go_default_library",
|
"//pkg/kubelet/cm:go_default_library",
|
||||||
"//pkg/kubelet/dockershim:go_default_library",
|
"//pkg/kubelet/dockershim:go_default_library",
|
||||||
@ -30,6 +31,7 @@ go_library(
|
|||||||
"//pkg/version/verflag:go_default_library",
|
"//pkg/version/verflag:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library",
|
"//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library",
|
||||||
|
@ -30,6 +30,7 @@ import (
|
|||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/tools/clientcmd"
|
"k8s.io/client-go/tools/clientcmd"
|
||||||
@ -38,6 +39,7 @@ import (
|
|||||||
"k8s.io/component-base/logs"
|
"k8s.io/component-base/logs"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
_ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration
|
_ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration
|
||||||
|
"k8s.io/kubernetes/pkg/features"
|
||||||
cadvisortest "k8s.io/kubernetes/pkg/kubelet/cadvisor/testing"
|
cadvisortest "k8s.io/kubernetes/pkg/kubelet/cadvisor/testing"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/cm"
|
"k8s.io/kubernetes/pkg/kubelet/cm"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/dockershim"
|
"k8s.io/kubernetes/pkg/kubelet/dockershim"
|
||||||
@ -154,6 +156,23 @@ func run(config *hollowNodeConfig) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if config.Morph == "kubelet" {
|
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{
|
cadvisorInterface := &cadvisortest.Fake{
|
||||||
NodeName: config.NodeName,
|
NodeName: config.NodeName,
|
||||||
}
|
}
|
||||||
@ -166,15 +185,12 @@ func run(config *hollowNodeConfig) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
hollowKubelet := kubemark.NewHollowKubelet(
|
hollowKubelet := kubemark.NewHollowKubelet(
|
||||||
config.NodeName,
|
f, c,
|
||||||
client,
|
client,
|
||||||
|
heartbeatClient,
|
||||||
cadvisorInterface,
|
cadvisorInterface,
|
||||||
fakeDockerClientConfig,
|
fakeDockerClientConfig,
|
||||||
config.KubeletPort,
|
|
||||||
config.KubeletReadOnlyPort,
|
|
||||||
containerManager,
|
containerManager,
|
||||||
maxPods,
|
|
||||||
podsPerCore,
|
|
||||||
)
|
)
|
||||||
hollowKubelet.Run()
|
hollowKubelet.Run()
|
||||||
}
|
}
|
||||||
|
@ -48,19 +48,13 @@ type HollowKubelet struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewHollowKubelet(
|
func NewHollowKubelet(
|
||||||
nodeName string,
|
flags *options.KubeletFlags,
|
||||||
|
config *kubeletconfig.KubeletConfiguration,
|
||||||
client *clientset.Clientset,
|
client *clientset.Clientset,
|
||||||
|
heartbeatClient *clientset.Clientset,
|
||||||
cadvisorInterface cadvisor.Interface,
|
cadvisorInterface cadvisor.Interface,
|
||||||
dockerClientConfig *dockershim.ClientConfig,
|
dockerClientConfig *dockershim.ClientConfig,
|
||||||
kubeletPort, kubeletReadOnlyPort int,
|
containerManager cm.ContainerManager) *HollowKubelet {
|
||||||
containerManager cm.ContainerManager,
|
|
||||||
maxPods int, podsPerCore int,
|
|
||||||
) *HollowKubelet {
|
|
||||||
// -----------------
|
|
||||||
// Static config
|
|
||||||
// -----------------
|
|
||||||
f, c := GetHollowKubeletConfig(nodeName, kubeletPort, kubeletReadOnlyPort, maxPods, podsPerCore)
|
|
||||||
|
|
||||||
// -----------------
|
// -----------------
|
||||||
// Injected objects
|
// Injected objects
|
||||||
// -----------------
|
// -----------------
|
||||||
@ -69,7 +63,7 @@ func NewHollowKubelet(
|
|||||||
volumePlugins = append(volumePlugins, projected.ProbeVolumePlugins()...)
|
volumePlugins = append(volumePlugins, projected.ProbeVolumePlugins()...)
|
||||||
d := &kubelet.Dependencies{
|
d := &kubelet.Dependencies{
|
||||||
KubeClient: client,
|
KubeClient: client,
|
||||||
HeartbeatClient: client,
|
HeartbeatClient: heartbeatClient,
|
||||||
DockerClientConfig: dockerClientConfig,
|
DockerClientConfig: dockerClientConfig,
|
||||||
CAdvisorInterface: cadvisorInterface,
|
CAdvisorInterface: cadvisorInterface,
|
||||||
Cloud: nil,
|
Cloud: nil,
|
||||||
@ -84,8 +78,8 @@ func NewHollowKubelet(
|
|||||||
}
|
}
|
||||||
|
|
||||||
return &HollowKubelet{
|
return &HollowKubelet{
|
||||||
KubeletFlags: f,
|
KubeletFlags: flags,
|
||||||
KubeletConfiguration: c,
|
KubeletConfiguration: config,
|
||||||
KubeletDeps: d,
|
KubeletDeps: d,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user