be smarter about allocating memory for multinode clusters

pull/7928/head
Sharif Elgamal 2020-04-28 10:10:02 -07:00
parent f33de7fd11
commit e61a18cbaa
3 changed files with 12 additions and 1 deletions

View File

@ -18,6 +18,7 @@ package cmd
import (
"github.com/spf13/cobra"
"github.com/spf13/viper"
"k8s.io/minikube/pkg/minikube/config"
"k8s.io/minikube/pkg/minikube/driver"
"k8s.io/minikube/pkg/minikube/exit"
@ -54,6 +55,11 @@ var nodeAddCmd = &cobra.Command{
KubernetesVersion: cc.KubernetesConfig.KubernetesVersion,
}
// Make sure to decrease the default amount of memory we use per VM if this is the first worker node
if len(cc.Nodes) == 1 && viper.GetString(memory) == "" {
cc.Memory = 2200
}
if err := node.Add(cc, n); err != nil {
_, err := maybeDeleteAndRetry(*cc, n, nil, err)
if err != nil {

View File

@ -737,6 +737,10 @@ func suggestMemoryAllocation(sysLimit int, containerLimit int) int {
// Suggest 25% of RAM, rounded to nearest 100MB. Hyper-V requires an even number!
suggested := int(float32(sysLimit)/400.0) * 100
if nodes := viper.GetInt(nodes); nodes > 1 {
suggested = suggested / nodes
}
if suggested > maximum {
return maximum
}

View File

@ -239,7 +239,8 @@ func configureRuntimes(runner cruntime.CommandRunner, cc config.ClusterConfig, k
disableOthers = false
}
// Preload is overly invasive for bare metal, and caching is not meaningful. KIC handled elsewhere.
// Preload is overly invasive for bare metal, and caching is not meaningful.
// KIC handles preload elsewhere.
if driver.IsVM(cc.Driver) {
if err := cr.Preload(cc.KubernetesConfig); err != nil {
switch err.(type) {