mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 19:01:49 +00:00
Moving Kubelet kernel-memgc-notification to configuration file
This commit is contained in:
parent
82d27aa030
commit
c39cf28ed3
@ -220,10 +220,10 @@ TEST_CLUSTER_API_CONTENT_TYPE=${TEST_CLUSTER_API_CONTENT_TYPE:-}
|
|||||||
|
|
||||||
KUBELET_TEST_ARGS="${KUBELET_TEST_ARGS:-} --serialize-image-pulls=false ${TEST_CLUSTER_API_CONTENT_TYPE}"
|
KUBELET_TEST_ARGS="${KUBELET_TEST_ARGS:-} --serialize-image-pulls=false ${TEST_CLUSTER_API_CONTENT_TYPE}"
|
||||||
if [[ "${NODE_OS_DISTRIBUTION}" = 'gci' ]] || [[ "${NODE_OS_DISTRIBUTION}" = 'ubuntu' ]] || [[ "${NODE_OS_DISTRIBUTION}" = 'custom' ]]; then
|
if [[ "${NODE_OS_DISTRIBUTION}" = 'gci' ]] || [[ "${NODE_OS_DISTRIBUTION}" = 'ubuntu' ]] || [[ "${NODE_OS_DISTRIBUTION}" = 'custom' ]]; then
|
||||||
NODE_KUBELET_TEST_ARGS="${NODE_KUBELET_TEST_ARGS:-} --experimental-kernel-memcg-notification=true"
|
NODE_KUBELET_TEST_ARGS="${NODE_KUBELET_TEST_ARGS:-} --kernel-memcg-notification=true"
|
||||||
fi
|
fi
|
||||||
if [[ "${MASTER_OS_DISTRIBUTION}" = 'gci' ]] || [[ "${MASTER_OS_DISTRIBUTION}" = 'ubuntu' ]]; then
|
if [[ "${MASTER_OS_DISTRIBUTION}" = 'gci' ]] || [[ "${MASTER_OS_DISTRIBUTION}" = 'ubuntu' ]]; then
|
||||||
MASTER_KUBELET_TEST_ARGS="${MASTER_KUBELET_TEST_ARGS:-} --experimental-kernel-memcg-notification=true"
|
MASTER_KUBELET_TEST_ARGS="${MASTER_KUBELET_TEST_ARGS:-} --kernel-memcg-notification=true"
|
||||||
fi
|
fi
|
||||||
APISERVER_TEST_ARGS="${APISERVER_TEST_ARGS:-} --runtime-config=extensions/v1beta1,scheduling.k8s.io/v1alpha1,settings.k8s.io/v1alpha1 ${TEST_CLUSTER_DELETE_COLLECTION_WORKERS} ${TEST_CLUSTER_MAX_REQUESTS_INFLIGHT}"
|
APISERVER_TEST_ARGS="${APISERVER_TEST_ARGS:-} --runtime-config=extensions/v1beta1,scheduling.k8s.io/v1alpha1,settings.k8s.io/v1alpha1 ${TEST_CLUSTER_DELETE_COLLECTION_WORKERS} ${TEST_CLUSTER_MAX_REQUESTS_INFLIGHT}"
|
||||||
CONTROLLER_MANAGER_TEST_ARGS="${CONTROLLER_MANAGER_TEST_ARGS:-} ${TEST_CLUSTER_RESYNC_PERIOD} ${TEST_CLUSTER_API_CONTENT_TYPE}"
|
CONTROLLER_MANAGER_TEST_ARGS="${CONTROLLER_MANAGER_TEST_ARGS:-} ${TEST_CLUSTER_RESYNC_PERIOD} ${TEST_CLUSTER_API_CONTENT_TYPE}"
|
||||||
|
@ -891,7 +891,7 @@ function construct-windows-kubelet-flags {
|
|||||||
flags+=" --cgroups-per-qos=false --enforce-node-allocatable="
|
flags+=" --cgroups-per-qos=false --enforce-node-allocatable="
|
||||||
|
|
||||||
# Turn off kernel memory cgroup notification.
|
# Turn off kernel memory cgroup notification.
|
||||||
flags+=" --experimental-kernel-memcg-notification=false"
|
flags+=" --kernel-memcg-notification=false"
|
||||||
|
|
||||||
# TODO(#78628): Re-enable KubeletPodResources when the issue is fixed.
|
# TODO(#78628): Re-enable KubeletPodResources when the issue is fixed.
|
||||||
# Force disable KubeletPodResources feature on Windows until #78628 is fixed.
|
# Force disable KubeletPodResources feature on Windows until #78628 is fixed.
|
||||||
|
@ -117,9 +117,6 @@ type KubeletFlags struct {
|
|||||||
RemoteImageEndpoint string
|
RemoteImageEndpoint string
|
||||||
// experimentalMounterPath is the path of mounter binary. Leave empty to use the default mount path
|
// experimentalMounterPath is the path of mounter binary. Leave empty to use the default mount path
|
||||||
ExperimentalMounterPath string
|
ExperimentalMounterPath string
|
||||||
// If enabled, the kubelet will integrate with the kernel memcg notification to determine if memory eviction thresholds are crossed rather than polling.
|
|
||||||
// +optional
|
|
||||||
ExperimentalKernelMemcgNotification bool
|
|
||||||
// This flag, if set, enables a check prior to mount operations to verify that the required components
|
// This flag, if set, enables a check prior to mount operations to verify that the required components
|
||||||
// (binaries, etc.) to mount the volume are available on the underlying node. If the check is enabled
|
// (binaries, etc.) to mount the volume are available on the underlying node. If the check is enabled
|
||||||
// and fails the mount operation fails.
|
// and fails the mount operation fails.
|
||||||
@ -189,7 +186,6 @@ func NewKubeletFlags() *KubeletFlags {
|
|||||||
MinimumGCAge: metav1.Duration{Duration: 0},
|
MinimumGCAge: metav1.Duration{Duration: 0},
|
||||||
NonMasqueradeCIDR: "10.0.0.0/8",
|
NonMasqueradeCIDR: "10.0.0.0/8",
|
||||||
RegisterSchedulable: true,
|
RegisterSchedulable: true,
|
||||||
ExperimentalKernelMemcgNotification: false,
|
|
||||||
RemoteRuntimeEndpoint: remoteRuntimeEndpoint,
|
RemoteRuntimeEndpoint: remoteRuntimeEndpoint,
|
||||||
NodeLabels: make(map[string]string),
|
NodeLabels: make(map[string]string),
|
||||||
RegisterNode: true,
|
RegisterNode: true,
|
||||||
@ -345,7 +341,6 @@ func (f *KubeletFlags) AddFlags(mainfs *pflag.FlagSet) {
|
|||||||
fs.Var(utiltaints.NewTaintsVar(&f.RegisterWithTaints), "register-with-taints", "Register the node with the given list of taints (comma separated \"<key>=<value>:<effect>\"). No-op if register-node is false.")
|
fs.Var(utiltaints.NewTaintsVar(&f.RegisterWithTaints), "register-with-taints", "Register the node with the given list of taints (comma separated \"<key>=<value>:<effect>\"). No-op if register-node is false.")
|
||||||
|
|
||||||
// EXPERIMENTAL FLAGS
|
// EXPERIMENTAL FLAGS
|
||||||
fs.BoolVar(&f.ExperimentalKernelMemcgNotification, "experimental-kernel-memcg-notification", f.ExperimentalKernelMemcgNotification, "If enabled, the kubelet will integrate with the kernel memcg notification to determine if memory eviction thresholds are crossed rather than polling.")
|
|
||||||
fs.StringVar(&f.RemoteRuntimeEndpoint, "container-runtime-endpoint", f.RemoteRuntimeEndpoint, "[Experimental] The endpoint of remote runtime service. Currently unix socket endpoint is supported on Linux, while npipe and tcp endpoints are supported on windows. Examples:'unix:///var/run/dockershim.sock', 'npipe:////./pipe/dockershim'")
|
fs.StringVar(&f.RemoteRuntimeEndpoint, "container-runtime-endpoint", f.RemoteRuntimeEndpoint, "[Experimental] The endpoint of remote runtime service. Currently unix socket endpoint is supported on Linux, while npipe and tcp endpoints are supported on windows. Examples:'unix:///var/run/dockershim.sock', 'npipe:////./pipe/dockershim'")
|
||||||
fs.StringVar(&f.RemoteImageEndpoint, "image-service-endpoint", f.RemoteImageEndpoint, "[Experimental] The endpoint of remote image service. If not specified, it will be the same with container-runtime-endpoint by default. Currently unix socket endpoint is supported on Linux, while npipe and tcp endpoints are supported on windows. Examples:'unix:///var/run/dockershim.sock', 'npipe:////./pipe/dockershim'")
|
fs.StringVar(&f.RemoteImageEndpoint, "image-service-endpoint", f.RemoteImageEndpoint, "[Experimental] The endpoint of remote image service. If not specified, it will be the same with container-runtime-endpoint by default. Currently unix socket endpoint is supported on Linux, while npipe and tcp endpoints are supported on windows. Examples:'unix:///var/run/dockershim.sock', 'npipe:////./pipe/dockershim'")
|
||||||
fs.BoolVar(&f.ExperimentalNodeAllocatableIgnoreEvictionThreshold, "experimental-allocatable-ignore-eviction", f.ExperimentalNodeAllocatableIgnoreEvictionThreshold, "When set to 'true', Hard Eviction Thresholds will be ignored while calculating Node Allocatable. See https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/ for more details. [default=false]")
|
fs.BoolVar(&f.ExperimentalNodeAllocatableIgnoreEvictionThreshold, "experimental-allocatable-ignore-eviction", f.ExperimentalNodeAllocatableIgnoreEvictionThreshold, "When set to 'true', Hard Eviction Thresholds will be ignored while calculating Node Allocatable. See https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/ for more details. [default=false]")
|
||||||
@ -519,6 +514,7 @@ func AddKubeletConfigFlags(mainfs *pflag.FlagSet, c *kubeletconfig.KubeletConfig
|
|||||||
fs.StringSliceVar(&c.AllowedUnsafeSysctls, "allowed-unsafe-sysctls", c.AllowedUnsafeSysctls, "Comma-separated whitelist of unsafe sysctls or unsafe sysctl patterns (ending in *). Use these at your own risk.")
|
fs.StringSliceVar(&c.AllowedUnsafeSysctls, "allowed-unsafe-sysctls", c.AllowedUnsafeSysctls, "Comma-separated whitelist of unsafe sysctls or unsafe sysctl patterns (ending in *). Use these at your own risk.")
|
||||||
|
|
||||||
fs.Int32Var(&c.NodeStatusMaxImages, "node-status-max-images", c.NodeStatusMaxImages, "The maximum number of images to report in Node.Status.Images. If -1 is specified, no cap will be applied.")
|
fs.Int32Var(&c.NodeStatusMaxImages, "node-status-max-images", c.NodeStatusMaxImages, "The maximum number of images to report in Node.Status.Images. If -1 is specified, no cap will be applied.")
|
||||||
|
fs.BoolVar(&c.KernelMemcgNotification, "kernel-memcg-notification", c.KernelMemcgNotification, "If enabled, the kubelet will integrate with the kernel memcg notification to determine if memory eviction thresholds are crossed rather than polling.")
|
||||||
|
|
||||||
// Flags intended for testing, not recommended used in production environments.
|
// Flags intended for testing, not recommended used in production environments.
|
||||||
fs.Int64Var(&c.MaxOpenFiles, "max-open-files", c.MaxOpenFiles, "Number of files that can be opened by Kubelet process.")
|
fs.Int64Var(&c.MaxOpenFiles, "max-open-files", c.MaxOpenFiles, "Number of files that can be opened by Kubelet process.")
|
||||||
@ -543,4 +539,7 @@ func AddKubeletConfigFlags(mainfs *pflag.FlagSet, c *kubeletconfig.KubeletConfig
|
|||||||
fs.StringSliceVar(&c.EnforceNodeAllocatable, "enforce-node-allocatable", c.EnforceNodeAllocatable, "A comma separated list of levels of node allocatable enforcement to be enforced by kubelet. Acceptable options are 'none', 'pods', 'system-reserved', and 'kube-reserved'. If the latter two options are specified, '--system-reserved-cgroup' and '--kube-reserved-cgroup' must also be set, respectively. If 'none' is specified, no additional options should be set. See https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/ for more details.")
|
fs.StringSliceVar(&c.EnforceNodeAllocatable, "enforce-node-allocatable", c.EnforceNodeAllocatable, "A comma separated list of levels of node allocatable enforcement to be enforced by kubelet. Acceptable options are 'none', 'pods', 'system-reserved', and 'kube-reserved'. If the latter two options are specified, '--system-reserved-cgroup' and '--kube-reserved-cgroup' must also be set, respectively. If 'none' is specified, no additional options should be set. See https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/ for more details.")
|
||||||
fs.StringVar(&c.SystemReservedCgroup, "system-reserved-cgroup", c.SystemReservedCgroup, "Absolute name of the top level cgroup that is used to manage non-kubernetes components for which compute resources were reserved via '--system-reserved' flag. Ex. '/system-reserved'. [default='']")
|
fs.StringVar(&c.SystemReservedCgroup, "system-reserved-cgroup", c.SystemReservedCgroup, "Absolute name of the top level cgroup that is used to manage non-kubernetes components for which compute resources were reserved via '--system-reserved' flag. Ex. '/system-reserved'. [default='']")
|
||||||
fs.StringVar(&c.KubeReservedCgroup, "kube-reserved-cgroup", c.KubeReservedCgroup, "Absolute name of the top level cgroup that is used to manage kubernetes components for which compute resources were reserved via '--kube-reserved' flag. Ex. '/kube-reserved'. [default='']")
|
fs.StringVar(&c.KubeReservedCgroup, "kube-reserved-cgroup", c.KubeReservedCgroup, "Absolute name of the top level cgroup that is used to manage kubernetes components for which compute resources were reserved via '--kube-reserved' flag. Ex. '/kube-reserved'. [default='']")
|
||||||
|
|
||||||
|
// Graduated experimental flags, kept for backward compatibility
|
||||||
|
fs.BoolVar(&c.KernelMemcgNotification, "experimental-kernel-memcg-notification", c.KernelMemcgNotification, "Use kernelMemcgNotification configuration, this flag will be removed in 1.23.")
|
||||||
}
|
}
|
||||||
|
@ -1109,7 +1109,7 @@ func RunKubelet(kubeServer *options.KubeletServer, kubeDeps *kubelet.Dependencie
|
|||||||
kubeServer.RegisterWithTaints,
|
kubeServer.RegisterWithTaints,
|
||||||
kubeServer.AllowedUnsafeSysctls,
|
kubeServer.AllowedUnsafeSysctls,
|
||||||
kubeServer.ExperimentalMounterPath,
|
kubeServer.ExperimentalMounterPath,
|
||||||
kubeServer.ExperimentalKernelMemcgNotification,
|
kubeServer.KernelMemcgNotification,
|
||||||
kubeServer.ExperimentalCheckNodeCapabilitiesBeforeMount,
|
kubeServer.ExperimentalCheckNodeCapabilitiesBeforeMount,
|
||||||
kubeServer.ExperimentalNodeAllocatableIgnoreEvictionThreshold,
|
kubeServer.ExperimentalNodeAllocatableIgnoreEvictionThreshold,
|
||||||
kubeServer.MinimumGCAge,
|
kubeServer.MinimumGCAge,
|
||||||
@ -1183,7 +1183,7 @@ func createAndInitKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
|
|||||||
registerWithTaints []api.Taint,
|
registerWithTaints []api.Taint,
|
||||||
allowedUnsafeSysctls []string,
|
allowedUnsafeSysctls []string,
|
||||||
experimentalMounterPath string,
|
experimentalMounterPath string,
|
||||||
experimentalKernelMemcgNotification bool,
|
kernelMemcgNotification bool,
|
||||||
experimentalCheckNodeCapabilitiesBeforeMount bool,
|
experimentalCheckNodeCapabilitiesBeforeMount bool,
|
||||||
experimentalNodeAllocatableIgnoreEvictionThreshold bool,
|
experimentalNodeAllocatableIgnoreEvictionThreshold bool,
|
||||||
minimumGCAge metav1.Duration,
|
minimumGCAge metav1.Duration,
|
||||||
@ -1215,7 +1215,7 @@ func createAndInitKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
|
|||||||
registerWithTaints,
|
registerWithTaints,
|
||||||
allowedUnsafeSysctls,
|
allowedUnsafeSysctls,
|
||||||
experimentalMounterPath,
|
experimentalMounterPath,
|
||||||
experimentalKernelMemcgNotification,
|
kernelMemcgNotification,
|
||||||
experimentalCheckNodeCapabilitiesBeforeMount,
|
experimentalCheckNodeCapabilitiesBeforeMount,
|
||||||
experimentalNodeAllocatableIgnoreEvictionThreshold,
|
experimentalNodeAllocatableIgnoreEvictionThreshold,
|
||||||
minimumGCAge,
|
minimumGCAge,
|
||||||
|
@ -59,6 +59,7 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} {
|
|||||||
obj.ImageMinimumGCAge = metav1.Duration{Duration: 2 * time.Minute}
|
obj.ImageMinimumGCAge = metav1.Duration{Duration: 2 * time.Minute}
|
||||||
obj.ImageGCHighThresholdPercent = 85
|
obj.ImageGCHighThresholdPercent = 85
|
||||||
obj.ImageGCLowThresholdPercent = 80
|
obj.ImageGCLowThresholdPercent = 80
|
||||||
|
obj.KernelMemcgNotification = false
|
||||||
obj.MaxOpenFiles = 1000000
|
obj.MaxOpenFiles = 1000000
|
||||||
obj.MaxPods = 110
|
obj.MaxPods = 110
|
||||||
obj.PodPidsLimit = -1
|
obj.PodPidsLimit = -1
|
||||||
|
@ -189,6 +189,7 @@ var (
|
|||||||
"ImageGCHighThresholdPercent",
|
"ImageGCHighThresholdPercent",
|
||||||
"ImageGCLowThresholdPercent",
|
"ImageGCLowThresholdPercent",
|
||||||
"ImageMinimumGCAge.Duration",
|
"ImageMinimumGCAge.Duration",
|
||||||
|
"KernelMemcgNotification",
|
||||||
"KubeAPIBurst",
|
"KubeAPIBurst",
|
||||||
"KubeAPIQPS",
|
"KubeAPIQPS",
|
||||||
"KubeReservedCgroup",
|
"KubeReservedCgroup",
|
||||||
|
@ -322,6 +322,9 @@ type KubeletConfiguration struct {
|
|||||||
// These sysctls are namespaced but not allowed by default. For example: "kernel.msg*,net.ipv4.route.min_pmtu"
|
// These sysctls are namespaced but not allowed by default. For example: "kernel.msg*,net.ipv4.route.min_pmtu"
|
||||||
// +optional
|
// +optional
|
||||||
AllowedUnsafeSysctls []string
|
AllowedUnsafeSysctls []string
|
||||||
|
// kernelMemcgNotification if enabled, the kubelet will integrate with the kernel memcg
|
||||||
|
// notification to determine if memory eviction thresholds are crossed rather than polling.
|
||||||
|
KernelMemcgNotification bool
|
||||||
|
|
||||||
/* the following fields are meant for Node Allocatable */
|
/* the following fields are meant for Node Allocatable */
|
||||||
|
|
||||||
|
@ -341,6 +341,7 @@ func autoConvert_v1beta1_KubeletConfiguration_To_config_KubeletConfiguration(in
|
|||||||
out.AllowedUnsafeSysctls = *(*[]string)(unsafe.Pointer(&in.AllowedUnsafeSysctls))
|
out.AllowedUnsafeSysctls = *(*[]string)(unsafe.Pointer(&in.AllowedUnsafeSysctls))
|
||||||
out.VolumePluginDir = in.VolumePluginDir
|
out.VolumePluginDir = in.VolumePluginDir
|
||||||
out.ProviderID = in.ProviderID
|
out.ProviderID = in.ProviderID
|
||||||
|
out.KernelMemcgNotification = in.KernelMemcgNotification
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -477,6 +478,7 @@ func autoConvert_config_KubeletConfiguration_To_v1beta1_KubeletConfiguration(in
|
|||||||
}
|
}
|
||||||
out.ConfigMapAndSecretChangeDetectionStrategy = v1beta1.ResourceChangeDetectionStrategy(in.ConfigMapAndSecretChangeDetectionStrategy)
|
out.ConfigMapAndSecretChangeDetectionStrategy = v1beta1.ResourceChangeDetectionStrategy(in.ConfigMapAndSecretChangeDetectionStrategy)
|
||||||
out.AllowedUnsafeSysctls = *(*[]string)(unsafe.Pointer(&in.AllowedUnsafeSysctls))
|
out.AllowedUnsafeSysctls = *(*[]string)(unsafe.Pointer(&in.AllowedUnsafeSysctls))
|
||||||
|
out.KernelMemcgNotification = in.KernelMemcgNotification
|
||||||
out.SystemReserved = *(*map[string]string)(unsafe.Pointer(&in.SystemReserved))
|
out.SystemReserved = *(*map[string]string)(unsafe.Pointer(&in.SystemReserved))
|
||||||
out.KubeReserved = *(*map[string]string)(unsafe.Pointer(&in.KubeReserved))
|
out.KubeReserved = *(*map[string]string)(unsafe.Pointer(&in.KubeReserved))
|
||||||
out.SystemReservedCgroup = in.SystemReservedCgroup
|
out.SystemReservedCgroup = in.SystemReservedCgroup
|
||||||
|
@ -363,7 +363,7 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
|
|||||||
registerWithTaints []api.Taint,
|
registerWithTaints []api.Taint,
|
||||||
allowedUnsafeSysctls []string,
|
allowedUnsafeSysctls []string,
|
||||||
experimentalMounterPath string,
|
experimentalMounterPath string,
|
||||||
experimentalKernelMemcgNotification bool,
|
kernelMemcgNotification bool,
|
||||||
experimentalCheckNodeCapabilitiesBeforeMount bool,
|
experimentalCheckNodeCapabilitiesBeforeMount bool,
|
||||||
experimentalNodeAllocatableIgnoreEvictionThreshold bool,
|
experimentalNodeAllocatableIgnoreEvictionThreshold bool,
|
||||||
minimumGCAge metav1.Duration,
|
minimumGCAge metav1.Duration,
|
||||||
@ -432,7 +432,7 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
|
|||||||
PressureTransitionPeriod: kubeCfg.EvictionPressureTransitionPeriod.Duration,
|
PressureTransitionPeriod: kubeCfg.EvictionPressureTransitionPeriod.Duration,
|
||||||
MaxPodGracePeriodSeconds: int64(kubeCfg.EvictionMaxPodGracePeriod),
|
MaxPodGracePeriodSeconds: int64(kubeCfg.EvictionMaxPodGracePeriod),
|
||||||
Thresholds: thresholds,
|
Thresholds: thresholds,
|
||||||
KernelMemcgNotification: experimentalKernelMemcgNotification,
|
KernelMemcgNotification: kernelMemcgNotification,
|
||||||
PodCgroupRoot: kubeDeps.ContainerManager.GetPodCgroupRoot(),
|
PodCgroupRoot: kubeDeps.ContainerManager.GetPodCgroupRoot(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -787,6 +787,13 @@ type KubeletConfiguration struct {
|
|||||||
// Default: ""
|
// Default: ""
|
||||||
// +optional
|
// +optional
|
||||||
ProviderID string `json:"providerID,omitempty"`
|
ProviderID string `json:"providerID,omitempty"`
|
||||||
|
// kernelMemcgNotification, if set, the kubelet will integrate with the kernel memcg notification
|
||||||
|
// to determine if memory eviction thresholds are crossed rather than polling.
|
||||||
|
// Dynamic Kubelet Config (beta): If dynamically updating this field, consider that
|
||||||
|
// it may impact the way Kubelet interacts with the kernel.
|
||||||
|
// Default: false
|
||||||
|
// +optional
|
||||||
|
KernelMemcgNotification bool `json:"kernelMemcgNotification,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type KubeletAuthorizationMode string
|
type KubeletAuthorizationMode string
|
||||||
|
@ -98,7 +98,7 @@ func prependCOSMounterFlag(args, host, workspace string) (string, error) {
|
|||||||
// prependMemcgNotificationFlag prepends the flag for enabling memcg
|
// prependMemcgNotificationFlag prepends the flag for enabling memcg
|
||||||
// notification to args and returns the result.
|
// notification to args and returns the result.
|
||||||
func prependMemcgNotificationFlag(args string) string {
|
func prependMemcgNotificationFlag(args string) string {
|
||||||
return "--kubelet-flags=--experimental-kernel-memcg-notification=true " + args
|
return "--kubelet-flags=--kernel-memcg-notification=true " + args
|
||||||
}
|
}
|
||||||
|
|
||||||
// updateOSSpecificKubeletFlags updates the Kubelet args with OS specific
|
// updateOSSpecificKubeletFlags updates the Kubelet args with OS specific
|
||||||
|
Loading…
Reference in New Issue
Block a user