From 9fa1dfdaec02ed9401048f966221a9da27c9eeea Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Wed, 22 Jul 2020 15:14:57 -0700 Subject: [PATCH 1/3] stop conainers before hot upgrade --- pkg/minikube/bootstrapper/kubeadm/kubeadm.go | 24 ++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index cf77ba95c5..89accdefe5 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -554,6 +554,9 @@ func (k *Bootstrapper) restartControlPlane(cfg config.ClusterConfig) error { return nil } + if err := k.stopKubeSystem(cfg); err != nil { + glog.Warningf("failed to stop kube system container before reconfiguring kubeadm, this might cause port conflicts sometimes : %v", err) + } if err := k.clearStaleConfigs(cfg); err != nil { return errors.Wrap(err, "clearing stale configs") } @@ -905,6 +908,27 @@ func (k *Bootstrapper) elevateKubeSystemPrivileges(cfg config.ClusterConfig) err return nil } +// stopKubeSystem stops all the containers in the kube-system to prevent #8740 when doing hot upgrade +func (k *Bootstrapper) stopKubeSystem(cfg config.ClusterConfig) error { + glog.Info("stopping kube-system containers ...") + cr, err := cruntime.New(cruntime.Config{Type: cfg.KubernetesConfig.ContainerRuntime, Runner: k.c}) + if err != nil { + return errors.Wrap(err, "new cruntime") + } + + ids, err := cr.ListContainers(cruntime.ListOptions{Namespaces: []string{"kube-system"}}) + if err != nil { + return errors.Wrap(err, "list") + } + + if len(ids) > 0 { + if err := cr.StopContainers(ids); err != nil { + return errors.Wrap(err, "stop") + } + } + return nil +} + // adviseNodePressure will advise the user what to do with difference pressure errors based on their environment func adviseNodePressure(err error, name string, drv string) { if diskErr, ok := err.(*kverify.ErrDiskPressure); ok { From d5cc6afc9bcec5a733f7e74da2cc5d8c757d084a Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 23 Jul 2020 09:17:06 -0700 Subject: [PATCH 2/3] update comment --- pkg/minikube/bootstrapper/kubeadm/kubeadm.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index 89accdefe5..d37e1a118c 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -555,7 +555,7 @@ func (k *Bootstrapper) restartControlPlane(cfg config.ClusterConfig) error { } if err := k.stopKubeSystem(cfg); err != nil { - glog.Warningf("failed to stop kube system container before reconfiguring kubeadm, this might cause port conflicts sometimes : %v", err) + glog.Warningf("Failed to stop kube-system containers: port conflicts may arise: %v %v", err) } if err := k.clearStaleConfigs(cfg); err != nil { return errors.Wrap(err, "clearing stale configs") From 44b6703e6804cad7a7f8069db6d5063cc2d0a647 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 23 Jul 2020 09:17:30 -0700 Subject: [PATCH 3/3] update comment --- pkg/minikube/bootstrapper/kubeadm/kubeadm.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index d37e1a118c..250b5d7dd1 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -555,7 +555,7 @@ func (k *Bootstrapper) restartControlPlane(cfg config.ClusterConfig) error { } if err := k.stopKubeSystem(cfg); err != nil { - glog.Warningf("Failed to stop kube-system containers: port conflicts may arise: %v %v", err) + glog.Warningf("Failed to stop kube-system containers: port conflicts may arise: %v", err) } if err := k.clearStaleConfigs(cfg); err != nil { return errors.Wrap(err, "clearing stale configs")