Add cgroup driver and cgroups-per-qos flags to kubelet
This commit is contained in:
		@@ -164,7 +164,8 @@ func (s *KubeletServer) AddFlags(fs *pflag.FlagSet) {
 | 
				
			|||||||
	fs.MarkDeprecated("system-container", "Use --system-cgroups instead. Will be removed in a future version.")
 | 
						fs.MarkDeprecated("system-container", "Use --system-cgroups instead. Will be removed in a future version.")
 | 
				
			||||||
	fs.StringVar(&s.SystemCgroups, "system-cgroups", s.SystemCgroups, "Optional absolute name of cgroups in which to place all non-kernel processes that are not already inside a cgroup under `/`. Empty for no container. Rolling back the flag requires a reboot. (Default: \"\").")
 | 
						fs.StringVar(&s.SystemCgroups, "system-cgroups", s.SystemCgroups, "Optional absolute name of cgroups in which to place all non-kernel processes that are not already inside a cgroup under `/`. Empty for no container. Rolling back the flag requires a reboot. (Default: \"\").")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//fs.BoolVar(&s.CgroupsPerQOS, "cgroups-per-qos", s.CgroupsPerQOS, "Enable creation of QoS cgroup hierarchy, if true top level QoS and pod cgroups are created.")
 | 
						fs.BoolVar(&s.CgroupsPerQOS, "cgroups-per-qos", s.CgroupsPerQOS, "Enable creation of QoS cgroup hierarchy, if true top level QoS and pod cgroups are created.")
 | 
				
			||||||
 | 
						fs.StringVar(&s.CgroupDriver, "cgroup-driver", s.CgroupDriver, "Driver that the kubelet uses to manipulate cgroups on the host.  Possible values: 'cgroupfs', 'systemd'")
 | 
				
			||||||
	fs.StringVar(&s.CgroupRoot, "cgroup-root", s.CgroupRoot, "Optional root cgroup to use for pods. This is handled by the container runtime on a best effort basis. Default: '', which means use the container runtime default.")
 | 
						fs.StringVar(&s.CgroupRoot, "cgroup-root", s.CgroupRoot, "Optional root cgroup to use for pods. This is handled by the container runtime on a best effort basis. Default: '', which means use the container runtime default.")
 | 
				
			||||||
	fs.StringVar(&s.ContainerRuntime, "container-runtime", s.ContainerRuntime, "The container runtime to use. Possible values: 'docker', 'rkt'. Default: 'docker'.")
 | 
						fs.StringVar(&s.ContainerRuntime, "container-runtime", s.ContainerRuntime, "The container runtime to use. Possible values: 'docker', 'rkt'. Default: 'docker'.")
 | 
				
			||||||
	fs.DurationVar(&s.RuntimeRequestTimeout.Duration, "runtime-request-timeout", s.RuntimeRequestTimeout.Duration, "Timeout of all runtime requests except long running request - pull, logs, exec and attach. When timeout exceeded, kubelet will cancel the request, throw out an error and retry later. Default: 2m0s")
 | 
						fs.DurationVar(&s.RuntimeRequestTimeout.Duration, "runtime-request-timeout", s.RuntimeRequestTimeout.Duration, "Timeout of all runtime requests except long running request - pull, logs, exec and attach. When timeout exceeded, kubelet will cancel the request, throw out an error and retry later. Default: 2m0s")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -279,7 +279,9 @@ type KubeletConfiguration struct {
 | 
				
			|||||||
	// Enable QoS based Cgroup hierarchy: top level cgroups for QoS Classes
 | 
						// Enable QoS based Cgroup hierarchy: top level cgroups for QoS Classes
 | 
				
			||||||
	// And all Burstable and BestEffort pods are brought up under their
 | 
						// And all Burstable and BestEffort pods are brought up under their
 | 
				
			||||||
	// specific top level QoS cgroup.
 | 
						// specific top level QoS cgroup.
 | 
				
			||||||
	CgroupsPerQOS bool `json:"CgroupsPerQOS,omitempty"`
 | 
						CgroupsPerQOS bool `json:"cgroupsPerQOS,omitempty"`
 | 
				
			||||||
 | 
						// driver that the kubelet uses to manipulate cgroups on the host (cgroupfs or systemd)
 | 
				
			||||||
 | 
						CgroupDriver string `json:"cgroupDriver,omitempty"`
 | 
				
			||||||
	// Cgroups that container runtime is expected to be isolated in.
 | 
						// Cgroups that container runtime is expected to be isolated in.
 | 
				
			||||||
	RuntimeCgroups string `json:"runtimeCgroups,omitempty"`
 | 
						RuntimeCgroups string `json:"runtimeCgroups,omitempty"`
 | 
				
			||||||
	// SystemCgroups is absolute name of cgroups in which to place
 | 
						// SystemCgroups is absolute name of cgroups in which to place
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -351,6 +351,13 @@ func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) {
 | 
				
			|||||||
		temp := int32(defaultIPTablesDropBit)
 | 
							temp := int32(defaultIPTablesDropBit)
 | 
				
			||||||
		obj.IPTablesDropBit = &temp
 | 
							obj.IPTablesDropBit = &temp
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if obj.CgroupDriver == "" {
 | 
				
			||||||
 | 
							obj.CgroupDriver = "cgroupfs"
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if obj.CgroupsPerQOS == nil {
 | 
				
			||||||
 | 
							temp := false
 | 
				
			||||||
 | 
							obj.CgroupsPerQOS = &temp
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func boolVar(b bool) *bool {
 | 
					func boolVar(b bool) *bool {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -343,7 +343,9 @@ type KubeletConfiguration struct {
 | 
				
			|||||||
	// Enable QoS based Cgroup hierarchy: top level cgroups for QoS Classes
 | 
						// Enable QoS based Cgroup hierarchy: top level cgroups for QoS Classes
 | 
				
			||||||
	// And all Burstable and BestEffort pods are brought up under their
 | 
						// And all Burstable and BestEffort pods are brought up under their
 | 
				
			||||||
	// specific top level QoS cgroup.
 | 
						// specific top level QoS cgroup.
 | 
				
			||||||
	CgroupsPerQOS *bool `json:"CgroupsPerQOS,omitempty"`
 | 
						CgroupsPerQOS *bool `json:"cgroupsPerQOS,omitempty"`
 | 
				
			||||||
 | 
						// driver that the kubelet uses to manipulate cgroups on the host (cgroupfs or systemd)
 | 
				
			||||||
 | 
						CgroupDriver string `json:"cgroupDriver,omitempty"`
 | 
				
			||||||
	// containerRuntime is the container runtime to use.
 | 
						// containerRuntime is the container runtime to use.
 | 
				
			||||||
	ContainerRuntime string `json:"containerRuntime"`
 | 
						ContainerRuntime string `json:"containerRuntime"`
 | 
				
			||||||
	// remoteRuntimeEndpoint is the endpoint of remote runtime service
 | 
						// remoteRuntimeEndpoint is the endpoint of remote runtime service
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user