Merge pull request #27874 from ingvagabund/kubelet-kernel-tunning-behaviour-new-flags

Automatic merge from submit-queue

[kubelet] Introduce --protect-kernel-defaults flag to make the tunable behaviour configurable

Let's make the default behaviour of kernel tuning configurable. The default behaviour is kept modify as has been so far.
This commit is contained in:
Kubernetes Submit Queue
2016-08-12 14:11:26 -07:00
committed by GitHub
11 changed files with 2376 additions and 2317 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -397,6 +397,8 @@ type KubeletConfiguration struct {
// Currently only cpu and memory are supported. [default=none]
// See http://releases.k8s.io/HEAD/docs/user-guide/compute-resources.md for more detail.
KubeReserved utilconfig.ConfigurationMap `json:"kubeReserved"`
// Default behaviour for kernel tuning
ProtectKernelDefaults bool `json:"protectKernelDefaults"`
}
type KubeSchedulerConfiguration struct {

View File

@@ -452,4 +452,6 @@ type KubeletConfiguration struct {
// Currently only cpu and memory are supported. [default=none]
// See http://releases.k8s.io/HEAD/docs/user-guide/compute-resources.md for more detail.
KubeReserved map[string]string `json:"kubeReserved"`
// Default behaviour for kernel tuning
ProtectKernelDefaults bool `json:"protectKernelDefaults"`
}

View File

@@ -319,6 +319,7 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_componentconfig_KubeletConfigu
} else {
out.KubeReserved = nil
}
out.ProtectKernelDefaults = in.ProtectKernelDefaults
return nil
}
@@ -483,6 +484,7 @@ func autoConvert_componentconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigu
} else {
out.KubeReserved = nil
}
out.ProtectKernelDefaults = in.ProtectKernelDefaults
return nil
}

View File

@@ -377,6 +377,7 @@ func DeepCopy_v1alpha1_KubeletConfiguration(in interface{}, out interface{}, c *
} else {
out.KubeReserved = nil
}
out.ProtectKernelDefaults = in.ProtectKernelDefaults
return nil
}
}

View File

@@ -325,6 +325,7 @@ func DeepCopy_componentconfig_KubeletConfiguration(in interface{}, out interface
} else {
out.KubeReserved = nil
}
out.ProtectKernelDefaults = in.ProtectKernelDefaults
return nil
}
}

View File

@@ -39,12 +39,13 @@ type ContainerManager interface {
}
type NodeConfig struct {
RuntimeCgroupsName string
SystemCgroupsName string
KubeletCgroupsName string
ContainerRuntime string
CgroupsPerQOS bool
CgroupRoot string
RuntimeCgroupsName string
SystemCgroupsName string
KubeletCgroupsName string
ContainerRuntime string
CgroupsPerQOS bool
CgroupRoot string
ProtectKernelDefaults bool
}
type Status struct {

View File

@@ -199,7 +199,6 @@ func createManager(containerName string) *fs.Manager {
}
}
// TODO: plumb this up as a flag to Kubelet in a future PR
type KernelTunableBehavior string
const (
@@ -288,8 +287,11 @@ func (cm *containerManagerImpl) setupNode() error {
if !f.cpuHardcapping {
cm.status.SoftRequirements = fmt.Errorf("CPU hardcapping unsupported")
}
// TODO: plumb kernel tunable options into container manager, right now, we modify by default
if err := setupKernelTunables(KernelTunableModify); err != nil {
b := KernelTunableModify
if cm.GetNodeConfig().ProtectKernelDefaults {
b = KernelTunableError
}
if err := setupKernelTunables(b); err != nil {
return err
}