diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index b5332e3440..0624ce5173 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -295,7 +295,7 @@ func runStart(cmd *cobra.Command, args []string) { fmt.Println("Stopping extra container runtimes...") containerRuntime := viper.GetString(containerRuntime) - if config.VMDriver != "none" && containerRuntime != "" { + if config.VMDriver != constants.DriverNone && containerRuntime != "" { if _, err := host.RunSSHCommand("sudo systemctl stop docker"); err == nil { _, err = host.RunSSHCommand("sudo systemctl stop docker.socket") } @@ -303,12 +303,12 @@ func runStart(cmd *cobra.Command, args []string) { glog.Errorf("Error stopping docker: %v", err) } } - if config.VMDriver != "none" && (containerRuntime != "crio" && containerRuntime != "cri-o") { + if config.VMDriver != constants.DriverNone && (containerRuntime != constants.CrioRuntime && containerRuntime != constants.Cri_oRuntime) { if _, err := host.RunSSHCommand("sudo systemctl stop crio"); err != nil { glog.Errorf("Error stopping crio: %v", err) } } - if config.VMDriver != "none" && containerRuntime != "rkt" { + if config.VMDriver != constants.DriverNone && containerRuntime != constants.RktRuntime { if _, err := host.RunSSHCommand("sudo systemctl stop rkt-api"); err == nil { _, err = host.RunSSHCommand("sudo systemctl stop rkt-metadata") } @@ -317,9 +317,17 @@ func runStart(cmd *cobra.Command, args []string) { } } + if config.VMDriver != constants.DriverNone && containerRuntime == constants.ContainerdRuntime { + fmt.Println("Restarting containerd runtime...") + // restart containerd so that it can install all plugins + if _, err := host.RunSSHCommand("sudo systemctl restart containerd"); err != nil { + glog.Errorf("Error restarting containerd: %v", err) + } + } + fmt.Println("Starting cluster components...") - if !exists || config.VMDriver == "none" { + if !exists || config.VMDriver == constants.DriverNone { if err := k8sBootstrapper.StartCluster(kubernetesConfig); err != nil { glog.Errorln("Error starting cluster: ", err) cmdutil.MaybeReportErrorAndExit(err) diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index 505ad2f987..c76539f16e 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -115,6 +115,10 @@ func (k *KubeadmBootstrapper) StartCluster(k8s config.KubernetesConfig) error { } b := bytes.Buffer{} + preflights := constants.Preflights + if k8s.ContainerRuntime != "" { + preflights = constants.AlternateRuntimePreflights + } templateContext := struct { KubeadmConfigFile string SkipPreflightChecks bool @@ -125,7 +129,7 @@ func (k *KubeadmBootstrapper) StartCluster(k8s config.KubernetesConfig) error { SkipPreflightChecks: !VersionIsBetween(version, semver.MustParse("1.9.0-alpha.0"), semver.Version{}), - Preflights: constants.Preflights, + Preflights: preflights, DNSAddon: "kube-dns", } if version.GTE(semver.MustParse("1.12.0")) { diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index 4b01fbaa1b..6131f23e4f 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -164,6 +164,23 @@ var Preflights = []string{ "CRI", } +// AlternateRuntimePreflights are additional preflight checks that are skipped when running +// any container runtime that isn't Docker +var AlternateRuntimePreflights = append(Preflights, []string{ + "Service-Docker", + "Port-8443", + "Port-10251", + "Port-10252", + "Port-2379", +}...) + +const ( + ContainerdRuntime = "containerd" + RktRuntime = "rkt" + CrioRuntime = "crio" + Cri_oRuntime = "cri-o" +) + const ( DefaultUfsPort = "5640" DefaultUfsDebugLvl = 0