Merge pull request #36800 from mdshuai/update-cgroups-per-qos
Automatic merge from submit-queue [kubelet]update some --cgroups-per-qos to --experimental-cgroups-per-qos Follow https://github.com/kubernetes/kubernetes/pull/36767, there are some fields still need update in docs or hack/local-up-cluster.sh
This commit is contained in:
		
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @@ -181,7 +181,7 @@ test-e2e: ginkgo generated_files | |||||||
| # Example: | # Example: | ||||||
| #   make test-e2e-node FOCUS=Kubelet SKIP=container | #   make test-e2e-node FOCUS=Kubelet SKIP=container | ||||||
| #   make test-e2e-node REMOTE=true DELETE_INSTANCES=true | #   make test-e2e-node REMOTE=true DELETE_INSTANCES=true | ||||||
| #   make test-e2e-node TEST_ARGS="--cgroups-per-qos=true" | #   make test-e2e-node TEST_ARGS="--experimental-cgroups-per-qos=true" | ||||||
| # Build and run tests. | # Build and run tests. | ||||||
| .PHONY: test-e2e-node | .PHONY: test-e2e-node | ||||||
| test-e2e-node: ginkgo generated_files | test-e2e-node: ginkgo generated_files | ||||||
|   | |||||||
| @@ -208,10 +208,10 @@ make test_e2e_node TEST_ARGS="--disable-kubenet=false" # disable kubenet | |||||||
|  |  | ||||||
| ## Additional QoS Cgroups Hierarchy level testing | ## Additional QoS Cgroups Hierarchy level testing | ||||||
|  |  | ||||||
| For testing with the QoS Cgroup Hierarchy enabled, you can pass --cgroups-per-qos flag as an argument into Ginkgo using TEST_ARGS | For testing with the QoS Cgroup Hierarchy enabled, you can pass --experimental-cgroups-per-qos flag as an argument into Ginkgo using TEST_ARGS | ||||||
|  |  | ||||||
| ```sh | ```sh | ||||||
| make test_e2e_node TEST_ARGS="--cgroups-per-qos=true" | make test_e2e_node TEST_ARGS="--experimental-cgroups-per-qos=true" | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| # Notes on tests run by the Kubernetes project during pre-, post- submit. | # Notes on tests run by the Kubernetes project during pre-, post- submit. | ||||||
|   | |||||||
| @@ -341,7 +341,7 @@ $ROOT | |||||||
| ## Implementation Plan | ## Implementation Plan | ||||||
|  |  | ||||||
| The implementation plan is outlined in the next sections. | The implementation plan is outlined in the next sections. | ||||||
| We will have a 'cgroups-per-qos' flag to specify if the user wants to use the QoS based cgroup hierarchy. The flag would be set to false by default at least in v1.4. | We will have a 'experimental-cgroups-per-qos' flag to specify if the user wants to use the QoS based cgroup hierarchy. The flag would be set to false by default at least in v1.5. | ||||||
|  |  | ||||||
| #### Top level Cgroups for QoS tiers | #### Top level Cgroups for QoS tiers | ||||||
|  |  | ||||||
|   | |||||||
| @@ -33,9 +33,9 @@ NET_PLUGIN_DIR=${NET_PLUGIN_DIR:-""} | |||||||
| KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. | KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. | ||||||
| SERVICE_CLUSTER_IP_RANGE=${SERVICE_CLUSTER_IP_RANGE:-10.0.0.0/24} | SERVICE_CLUSTER_IP_RANGE=${SERVICE_CLUSTER_IP_RANGE:-10.0.0.0/24} | ||||||
| # if enabled, must set CGROUP_ROOT | # if enabled, must set CGROUP_ROOT | ||||||
| CGROUPS_PER_QOS=${CGROUPS_PER_QOS:-false} | EXPERIMENTAL_CGROUPS_PER_QOS=${EXPERIMENTAL_CGROUPS_PER_QOS:-false} | ||||||
| # this is not defaulted to preserve backward compatibility. | # this is not defaulted to preserve backward compatibility. | ||||||
| # if CGROUPS_PER_QOS is enabled, recommend setting to / | # if EXPERIMENTAL_CGROUPS_PER_QOS is enabled, recommend setting to / | ||||||
| CGROUP_ROOT=${CGROUP_ROOT:""} | CGROUP_ROOT=${CGROUP_ROOT:""} | ||||||
| # name of the cgroup driver, i.e. cgroupfs or systemd | # name of the cgroup driver, i.e. cgroupfs or systemd | ||||||
| CGROUP_DRIVER=${CGROUP_DRIVER:-""} | CGROUP_DRIVER=${CGROUP_DRIVER:-""} | ||||||
| @@ -502,7 +502,7 @@ function start_kubelet { | |||||||
|         --feature-gates="${FEATURE_GATES}" \ |         --feature-gates="${FEATURE_GATES}" \ | ||||||
|         --cpu-cfs-quota=${CPU_CFS_QUOTA} \ |         --cpu-cfs-quota=${CPU_CFS_QUOTA} \ | ||||||
|         --enable-controller-attach-detach="${ENABLE_CONTROLLER_ATTACH_DETACH}" \ |         --enable-controller-attach-detach="${ENABLE_CONTROLLER_ATTACH_DETACH}" \ | ||||||
|         --cgroups-per-qos=${CGROUPS_PER_QOS} \ |         --experimental-cgroups-per-qos=${EXPERIMENTAL_CGROUPS_PER_QOS} \ | ||||||
|         --cgroup-driver=${CGROUP_DRIVER} \ |         --cgroup-driver=${CGROUP_DRIVER} \ | ||||||
|         --cgroup-root=${CGROUP_ROOT} \ |         --cgroup-root=${CGROUP_ROOT} \ | ||||||
|         ${auth_args} \ |         ${auth_args} \ | ||||||
|   | |||||||
| @@ -307,7 +307,7 @@ type KubeletConfiguration struct { | |||||||
| 	// +optional | 	// +optional | ||||||
| 	SystemCgroups string `json:"systemCgroups,omitempty"` | 	SystemCgroups string `json:"systemCgroups,omitempty"` | ||||||
| 	// CgroupRoot is the root cgroup to use for pods. | 	// CgroupRoot is the root cgroup to use for pods. | ||||||
| 	// If CgroupsPerQOS is enabled, this is the root of the QoS cgroup hierarchy. | 	// If ExperimentalCgroupsPerQOS is enabled, this is the root of the QoS cgroup hierarchy. | ||||||
| 	// +optional | 	// +optional | ||||||
| 	CgroupRoot string `json:"cgroupRoot,omitempty"` | 	CgroupRoot string `json:"cgroupRoot,omitempty"` | ||||||
| 	// containerRuntime is the container runtime to use. | 	// containerRuntime is the container runtime to use. | ||||||
|   | |||||||
| @@ -2630,7 +2630,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{ | |||||||
| 					}, | 					}, | ||||||
| 					"cgroupRoot": { | 					"cgroupRoot": { | ||||||
| 						SchemaProps: spec.SchemaProps{ | 						SchemaProps: spec.SchemaProps{ | ||||||
| 							Description: "CgroupRoot is the root cgroup to use for pods. If CgroupsPerQOS is enabled, this is the root of the QoS cgroup hierarchy.", | 							Description: "CgroupRoot is the root cgroup to use for pods. If ExperimentalCgroupsPerQOS is enabled, this is the root of the QoS cgroup hierarchy.", | ||||||
| 							Type:        []string{"string"}, | 							Type:        []string{"string"}, | ||||||
| 							Format:      "", | 							Format:      "", | ||||||
| 						}, | 						}, | ||||||
|   | |||||||
| @@ -209,7 +209,7 @@ func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.I | |||||||
| 	if nodeConfig.CgroupsPerQOS { | 	if nodeConfig.CgroupsPerQOS { | ||||||
| 		// this does default to / when enabled, but this tests against regressions. | 		// this does default to / when enabled, but this tests against regressions. | ||||||
| 		if nodeConfig.CgroupRoot == "" { | 		if nodeConfig.CgroupRoot == "" { | ||||||
| 			return nil, fmt.Errorf("invalid configuration: cgroups-per-qos was specified and cgroup-root was not specified. To enable the QoS cgroup hierarchy you need to specify a valid cgroup-root") | 			return nil, fmt.Errorf("invalid configuration: experimental-cgroups-per-qos was specified and cgroup-root was not specified. To enable the QoS cgroup hierarchy you need to specify a valid cgroup-root") | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		// we need to check that the cgroup root actually exists for each subsystem | 		// we need to check that the cgroup root actually exists for each subsystem | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Kubernetes Submit Queue
					Kubernetes Submit Queue