From 71d70f7a8320e971892cc92b29baefc37fcf8152 Mon Sep 17 00:00:00 2001 From: pacoxu Date: Wed, 6 Jan 2021 20:42:05 +0800 Subject: [PATCH] ignore cgroup driver check in windows node upgrade Signed-off-by: pacoxu --- pkg/kubelet/dockershim/docker_service.go | 39 +++++++++++++----------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/pkg/kubelet/dockershim/docker_service.go b/pkg/kubelet/dockershim/docker_service.go index 48581c95614e..b25ab870d52d 100644 --- a/pkg/kubelet/dockershim/docker_service.go +++ b/pkg/kubelet/dockershim/docker_service.go @@ -24,6 +24,7 @@ import ( "net/http" "path" "path/filepath" + "runtime" "sync" "time" @@ -254,24 +255,28 @@ func NewDockerService(config *ClientConfig, podSandboxImage string, streamingCon ds.network = network.NewPluginManager(plug) klog.Infof("Docker cri networking managed by %v", plug.Name()) - // NOTE: cgroup driver is only detectable in docker 1.11+ - cgroupDriver := defaultCgroupDriver - dockerInfo, err := ds.client.Info() - klog.Infof("Docker Info: %+v", dockerInfo) - if err != nil { - klog.Errorf("Failed to execute Info() call to the Docker client: %v", err) - klog.Warningf("Falling back to use the default driver: %q", cgroupDriver) - } else if len(dockerInfo.CgroupDriver) == 0 { - klog.Warningf("No cgroup driver is set in Docker") - klog.Warningf("Falling back to use the default driver: %q", cgroupDriver) - } else { - cgroupDriver = dockerInfo.CgroupDriver - } - if len(kubeCgroupDriver) != 0 && kubeCgroupDriver != cgroupDriver { - return nil, fmt.Errorf("misconfiguration: kubelet cgroup driver: %q is different from docker cgroup driver: %q", kubeCgroupDriver, cgroupDriver) + // skipping cgroup driver checks for Windows + if runtime.GOOS == "linux" { + // NOTE: cgroup driver is only detectable in docker 1.11+ + cgroupDriver := defaultCgroupDriver + dockerInfo, err := ds.client.Info() + klog.Infof("Docker Info: %+v", dockerInfo) + if err != nil { + klog.Errorf("Failed to execute Info() call to the Docker client: %v", err) + klog.Warningf("Falling back to use the default driver: %q", cgroupDriver) + } else if len(dockerInfo.CgroupDriver) == 0 { + klog.Warningf("No cgroup driver is set in Docker") + klog.Warningf("Falling back to use the default driver: %q", cgroupDriver) + } else { + cgroupDriver = dockerInfo.CgroupDriver + } + if len(kubeCgroupDriver) != 0 && kubeCgroupDriver != cgroupDriver { + return nil, fmt.Errorf("misconfiguration: kubelet cgroup driver: %q is different from docker cgroup driver: %q", kubeCgroupDriver, cgroupDriver) + } + klog.Infof("Setting cgroupDriver to %s", cgroupDriver) + ds.cgroupDriver = cgroupDriver } - klog.Infof("Setting cgroupDriver to %s", cgroupDriver) - ds.cgroupDriver = cgroupDriver + ds.versionCache = cache.NewObjectCache( func() (interface{}, error) { return ds.getDockerVersion()