Add healthChecker to the kubeDeps

This commit is contained in:
zhangzhifei16
2025-06-10 21:11:55 +08:00
parent 4a7e68a355
commit 0a86ca4061
4 changed files with 10 additions and 16 deletions

View File

@@ -604,14 +604,14 @@ func getReservedCPUs(machineInfo *cadvisorapi.MachineInfo, cpus string) (cpuset.
}
func run(ctx context.Context, s *options.KubeletServer, kubeDeps *kubelet.Dependencies, featureGate featuregate.FeatureGate) (err error) {
var healthChecker watchdog.HealthChecker
if utilfeature.DefaultFeatureGate.Enabled(features.SystemdWatchdog) {
// NewHealthChecker returns an error indicating that the watchdog is configured but the configuration is incorrect,
// the kubelet will not be started.
healthChecker, err = watchdog.NewHealthChecker()
healthChecker, err := watchdog.NewHealthChecker()
if err != nil {
return fmt.Errorf("create health checker: %w", err)
}
kubeDeps.HealthChecker = healthChecker
healthChecker.Start(ctx)
}
@@ -903,7 +903,7 @@ func run(ctx context.Context, s *options.KubeletServer, kubeDeps *kubelet.Depend
klog.InfoS("Failed to ApplyOOMScoreAdj", "err", err)
}
if err := RunKubelet(ctx, s, kubeDeps, healthChecker); err != nil {
if err := RunKubelet(ctx, s, kubeDeps); err != nil {
return err
}
@@ -1208,7 +1208,7 @@ func setContentTypeForClient(cfg *restclient.Config, contentType string) {
// 3 Standalone 'kubernetes' binary
//
// Eventually, #2 will be replaced with instances of #3
func RunKubelet(ctx context.Context, kubeServer *options.KubeletServer, kubeDeps *kubelet.Dependencies, healthChecker watchdog.HealthChecker) error {
func RunKubelet(ctx context.Context, kubeServer *options.KubeletServer, kubeDeps *kubelet.Dependencies) error {
hostname, err := nodeutil.GetHostname(kubeServer.HostnameOverride)
if err != nil {
return err
@@ -1240,9 +1240,7 @@ func RunKubelet(ctx context.Context, kubeServer *options.KubeletServer, kubeDeps
kubeDeps,
hostname,
nodeName,
nodeIPs,
healthChecker,
)
nodeIPs)
if err != nil {
return fmt.Errorf("failed to create kubelet: %w", err)
}
@@ -1282,9 +1280,7 @@ func createAndInitKubelet(kubeServer *options.KubeletServer,
kubeDeps *kubelet.Dependencies,
hostname string,
nodeName types.NodeName,
nodeIPs []net.IP,
healthChecker watchdog.HealthChecker,
) (k kubelet.Bootstrap, err error) {
nodeIPs []net.IP) (k kubelet.Bootstrap, err error) {
// TODO: block until all sources have delivered at least one update to the channel, or break the sync loop
// up into "per source" synchronizations
@@ -1313,8 +1309,7 @@ func createAndInitKubelet(kubeServer *options.KubeletServer,
kubeServer.RegisterSchedulable,
kubeServer.NodeLabels,
kubeServer.NodeStatusMaxImages,
kubeServer.KubeletFlags.SeccompDefault || kubeServer.KubeletConfiguration.SeccompDefault,
healthChecker)
kubeServer.KubeletFlags.SeccompDefault || kubeServer.KubeletConfiguration.SeccompDefault)
if err != nil {
return nil, err
}

View File

@@ -321,6 +321,7 @@ type Dependencies struct {
RemoteImageService internalapi.ImageManagerService
PodStartupLatencyTracker util.PodStartupLatencyTracker
NodeStartupLatencyTracker util.NodeStartupLatencyTracker
HealthChecker watchdog.HealthChecker
// remove it after cadvisor.UsingLegacyCadvisorStats dropped.
useLegacyCadvisorStats bool
}
@@ -437,7 +438,6 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
nodeLabels map[string]string,
nodeStatusMaxImages int32,
seccompDefault bool,
healthChecker watchdog.HealthChecker,
) (*Kubelet, error) {
ctx := context.Background()
logger := klog.TODO()
@@ -640,7 +640,7 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
nodeStatusMaxImages: nodeStatusMaxImages,
tracer: tracer,
nodeStartupLatencyTracker: kubeDeps.NodeStartupLatencyTracker,
healthChecker: healthChecker,
healthChecker: kubeDeps.HealthChecker,
flagz: kubeDeps.Flagz,
}

View File

@@ -3622,7 +3622,6 @@ func TestNewMainKubeletStandAlone(t *testing.T) {
map[string]string{},
1024,
false,
nil,
)
assert.NoError(t, err, "NewMainKubelet should succeed")
assert.NotNil(t, testMainKubelet, "testMainKubelet should not be nil")

View File

@@ -126,7 +126,7 @@ func (hk *HollowKubelet) Run(ctx context.Context) {
if err := kubeletapp.RunKubelet(ctx, &options.KubeletServer{
KubeletFlags: *hk.KubeletFlags,
KubeletConfiguration: *hk.KubeletConfiguration,
}, hk.KubeletDeps, nil); err != nil {
}, hk.KubeletDeps); err != nil {
klog.Fatalf("Failed to run HollowKubelet: %v. Exiting.", err)
}
select {}