From 2265ba2a65b5dc5797605d557dfe556b6882f60a Mon Sep 17 00:00:00 2001 From: Tao Liu Date: Thu, 15 Aug 2019 10:24:40 -0400 Subject: [PATCH] Support Single huge page size for openstack worker node Kubernetes only supports a single huge page size per worker node. Prior to kubernetes 1.15, the huge page feature could be disabled via a feature gate. In kubernetes 1.15, the feature gate has been removed so huge page support is always on in k8s. This update removes the conditional disabling of the hugepage feature and enforces the provisioning of a single page size per worker. When vswitch type is set to ovs-dpdk or avs, the application huge pages size goes with the vswitch huge pages size. This update also changes the auto-provisioning of VM huge pages to 1G as there is no auto-provisioning in virtual environment. Story: 2006295 Task: 36006 Change-Id: I84d4959b420584fdcdf8a8664a6f4855c08ec989 Signed-off-by: Tao Liu --- .../src/modules/platform/manifests/kubernetes.pp | 6 ++---- .../src/modules/platform/templates/kubeadm.yaml.erb | 2 -- .../src/modules/platform/templates/kubelet.conf.erb | 2 +- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/puppet-manifests/src/modules/platform/manifests/kubernetes.pp b/puppet-manifests/src/modules/platform/manifests/kubernetes.pp index 950f25113..e57c38980 100644 --- a/puppet-manifests/src/modules/platform/manifests/kubernetes.pp +++ b/puppet-manifests/src/modules/platform/manifests/kubernetes.pp @@ -115,11 +115,10 @@ class platform::kubernetes::kubeadm { $k8s_registry = 'k8s.gcr.io' } - # Configure kubelet hugepage and cpumanager options + # Configure kubelet cpumanager options if str2bool($::is_worker_subfunction) and !('openstack-compute-node' in $host_labels) { - $k8s_hugepage = true $k8s_cpu_manager_opts = join([ '--cpu-manager-policy=static', '--system-reserved-cgroup=/system.slice', @@ -129,12 +128,11 @@ class platform::kubernetes::kubeadm { "memory=${k8s_reserved_mem}Mi"]) ], ' ') } else { - $k8s_hugepage = false $k8s_cpu_manager_opts = '--cpu-manager-policy=none' } # Enable kubelet extra parameters that are node specific such as - # hugepages and cpumanager + # cpumanager file { '/etc/sysconfig/kubelet': ensure => file, content => template('platform/kubelet.conf.erb'), diff --git a/puppet-manifests/src/modules/platform/templates/kubeadm.yaml.erb b/puppet-manifests/src/modules/platform/templates/kubeadm.yaml.erb index a965f1342..42c7ddc58 100644 --- a/puppet-manifests/src/modules/platform/templates/kubeadm.yaml.erb +++ b/puppet-manifests/src/modules/platform/templates/kubeadm.yaml.erb @@ -41,8 +41,6 @@ apiVersion: kubelet.config.k8s.io/v1beta1 configMapAndSecretChangeDetectionStrategy: Cache nodeStatusUpdateFrequency: "4s" failSwapOn: false -featureGates: - HugePages: false cgroupRoot: "/k8s-infra" --- kind: KubeProxyConfiguration diff --git a/puppet-manifests/src/modules/platform/templates/kubelet.conf.erb b/puppet-manifests/src/modules/platform/templates/kubelet.conf.erb index 898254bcc..9eabca34a 100644 --- a/puppet-manifests/src/modules/platform/templates/kubelet.conf.erb +++ b/puppet-manifests/src/modules/platform/templates/kubelet.conf.erb @@ -1,2 +1,2 @@ # Overrides config file for kubelet -KUBELET_EXTRA_ARGS=--node-ip=<%= @node_ip %> --feature-gates=HugePages=<%= @k8s_hugepage %> <%= @k8s_cpu_manager_opts %> +KUBELET_EXTRA_ARGS=--node-ip=<%= @node_ip %> <%= @k8s_cpu_manager_opts %>