Reduce coredns replicas from 2 to 1

This is an easy way to improve overhead, and users can always scale this back up if they need to.
pull/8552/head
Priya Wadhwa 2020-06-24 17:30:48 -07:00
parent abca4d0652
commit 6d3a0c4eca
2 changed files with 21 additions and 2 deletions

View File

@ -32,7 +32,7 @@ func kubectlCommand(cc *config.ClusterConfig, files []string, enable bool) *exec
v = cc.KubernetesConfig.KubernetesVersion
}
kubectlBinary := kubectlBinaryPath(v)
kubectlBinary := KubectlBinaryPath(v)
kubectlAction := "apply"
if !enable {
@ -47,6 +47,7 @@ func kubectlCommand(cc *config.ClusterConfig, files []string, enable bool) *exec
return exec.Command("sudo", args...)
}
func kubectlBinaryPath(version string) string {
// KubectlBinaryPath returns the path to kubectl on the node
func KubectlBinaryPath(version string) string {
return path.Join(vmpath.GuestPersistentDir, "binaries", version, "kubectl")
}

View File

@ -146,6 +146,12 @@ func Start(starter Starter, apiServer bool) (*kubeconfig.Settings, error) {
go addons.Start(&wg, starter.Cfg, starter.ExistingAddons, config.AddonList)
}
wg.Add(1)
go func() {
rescaleCoreDNS(starter.Cfg, starter.Runner)
wg.Done()
}()
if apiServer {
// special ops for none , like change minikube directory.
// multinode super doesn't work on the none driver
@ -507,3 +513,15 @@ func prepareNone() {
exit.WithCodeT(exit.Permissions, "Failed to change permissions for {{.minikube_dir_path}}: {{.error}}", out.V{"minikube_dir_path": localpath.MiniPath(), "error": err})
}
}
// rescaleCoreDNS attempts to reduce coredns replicas from 2 to 1 to improve CPU overhead
// no worries if this doesn't work
func rescaleCoreDNS(cc *config.ClusterConfig, runner command.Runner) {
kubectl := addons.KubectlBinaryPath(cc.KubernetesConfig.KubernetesVersion)
cmd := exec.Command("sudo", "KUBECONFIG=/var/lib/minikube/kubeconfig", kubectl, "scale", "deployment", "--replicas=1", "coredns", "-n=kube-system")
if _, err := runner.RunCmd(cmd); err != nil {
glog.Infof("unable to scale coredns replicas to 1: %v", err)
} else {
glog.Infof("successfully scaled coredns replicas to 1")
}
}