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 <tao.liu@windriver.com>
This commit is contained in:
Tao Liu 2019-08-15 10:24:40 -04:00
parent af1d792ae2
commit 2265ba2a65
3 changed files with 3 additions and 7 deletions
puppet-manifests/src/modules/platform

@ -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'),

@ -41,8 +41,6 @@ apiVersion: kubelet.config.k8s.io/v1beta1
configMapAndSecretChangeDetectionStrategy: Cache
nodeStatusUpdateFrequency: "4s"
failSwapOn: false
featureGates:
HugePages: false
cgroupRoot: "/k8s-infra"
---
kind: KubeProxyConfiguration

@ -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 %>