Skip to content
This repository was archived by the owner on Jan 9, 2023. It is now read-only.

Commit 2749415

Browse files
author
Luke Addison
committed
Run kube services under /system.slice
1 parent 1f97e08 commit 2749415

File tree

8 files changed

+55
-14
lines changed

8 files changed

+55
-14
lines changed

puppet/modules/kubernetes/manifests/kubelet.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
default => 'cgroupfs',
3131
},
3232
String $cgroup_root = '/',
33-
Optional[String] $cgroup_kube_name = '/podruntime.slice',
33+
Optional[String] $cgroup_kube_name = undef,
3434
Optional[String] $cgroup_kube_reserved_memory = '256Mi',
3535
Optional[String] $cgroup_kube_reserved_cpu = '10m',
3636
Optional[String] $cgroup_system_name = '/system.slice',

puppet/modules/kubernetes/spec/classes/kubelet_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@
211211

212212
context 'with both cpu and memory a supplied' do
213213
let(:params) { {
214+
"cgroup_kube_name" => "/podruntime.slice",
214215
"cgroup_#{cgroup_type}_reserved_cpu" => '100m',
215216
"cgroup_#{cgroup_type}_reserved_memory" => '128Mi',
216217
}}
@@ -221,6 +222,7 @@
221222

222223
context 'with only cpu supplied' do
223224
let(:params) { {
225+
"cgroup_kube_name" => "/podruntime.slice",
224226
"cgroup_#{cgroup_type}_reserved_cpu" => '100m',
225227
"cgroup_#{cgroup_type}_reserved_memory" => nil,
226228
}}
@@ -231,6 +233,7 @@
231233

232234
context 'with only memory supplied' do
233235
let(:params) { {
236+
"cgroup_kube_name" => "/podruntime.slice",
234237
"cgroup_#{cgroup_type}_reserved_cpu" => nil,
235238
"cgroup_#{cgroup_type}_reserved_memory" => '128Mi',
236239
}}
@@ -241,6 +244,7 @@
241244

242245
context 'with nothing supplied' do
243246
let(:params) { {
247+
"cgroup_kube_name" => "/podruntime.slice",
244248
"cgroup_#{cgroup_type}_reserved_cpu" => nil,
245249
"cgroup_#{cgroup_type}_reserved_memory" => nil,
246250
}}

puppet/modules/kubernetes/templates/kube-apiserver.service.erb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ Documentation=https://github.com/GoogleCloudPlatform/kubernetes
44
<%= scope.function_template(['kubernetes/_systemd_unit.erb']) %>
55

66
[Service]
7-
Slice=podruntime.slice
7+
<%
8+
if scope['kubernetes::kubelet::cgroup_kube_name']
9+
@cgroup_kube_basename = scope.call_function('regsubst', [scope['kubernetes::kubelet::cgroup_kube_name'], '^\/', ''])
10+
-%>
11+
Slice=<%= @cgroup_kube_basename %>
12+
<% end -%>
813
User=<%= scope['kubernetes::user'] %>
914
Group=<%= scope['kubernetes::group'] %>
1015
<%- if scope['kubernetes::_service_account_key_file'] and scope['kubernetes::service_account_key_generate'] -%>

puppet/modules/kubernetes/templates/kube-controller-manager.service.erb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ Documentation=https://github.com/GoogleCloudPlatform/kubernetes
44
<%= scope.function_template(['kubernetes/_systemd_unit.erb']) %>
55

66
[Service]
7-
Slice=podruntime.slice
7+
<%
8+
if scope['kubernetes::kubelet::cgroup_kube_name']
9+
@cgroup_kube_basename = scope.call_function('regsubst', [scope['kubernetes::kubelet::cgroup_kube_name'], '^\/', ''])
10+
-%>
11+
Slice=<%= @cgroup_kube_basename %>
12+
<% end -%>
813
User=<%= scope['kubernetes::user'] %>
914
Group=<%= scope['kubernetes::group'] %>
1015
<%- if scope['kubernetes::_service_account_key_file'] and scope['kubernetes::service_account_key_generate'] -%>

puppet/modules/kubernetes/templates/kube-proxy.service.erb

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,17 @@ ExecStartPre=/sbin/sysctl -w net.bridge.bridge-nf-call-ip6tables=1
1010
ExecStart=<%= scope['kubernetes::_dest_dir'] %>/proxy \
1111
--v=<%= scope['kubernetes::log_level'] %> \
1212
--cluster-cidr=<%= scope['kubernetes::pod_network'] %> \
13-
--resource-container=podruntime.slice \
13+
<%
14+
if scope['kubernetes::kubelet::cgroup_kube_name']
15+
@cgroup_kube_basename = scope.call_function('regsubst', [scope['kubernetes::kubelet::cgroup_kube_name'], '^\/', ''])
16+
-%>
17+
--resource-container=<%= @cgroup_kube_basename %> \
18+
<%
19+
elsif scope['kubernetes::kubelet::cgroup_system_name']
20+
@cgroup_system_basename = scope.call_function('regsubst', [scope['kubernetes::kubelet::cgroup_system_name'], '^\/', ''])
21+
-%>
22+
--resource-container=<%= @cgroup_system_basename %> \
23+
<% end -%>
1424
<% if @kubeconfig_path -%>
1525
--kubeconfig=<%= @kubeconfig_path %> \
1626
<% end -%>

puppet/modules/kubernetes/templates/kube-scheduler.service.erb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ Documentation=https://github.com/GoogleCloudPlatform/kubernetes
44
<%= scope.function_template(['kubernetes/_systemd_unit.erb']) %>
55

66
[Service]
7-
Slice=podruntime.slice
7+
<%
8+
if scope['kubernetes::kubelet::cgroup_kube_name']
9+
@cgroup_kube_basename = scope.call_function('regsubst', [scope['kubernetes::kubelet::cgroup_kube_name'], '^\/', ''])
10+
-%>
11+
Slice=<%= @cgroup_kube_basename %>
12+
<% end -%>
813
User=<%= scope['kubernetes::user'] %>
914
Group=<%= scope['kubernetes::group'] %>
1015
ExecStart=<%= scope['kubernetes::_dest_dir'] %>/scheduler \

puppet/modules/kubernetes/templates/kubelet.service.erb

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ Documentation=https://github.com/GoogleCloudPlatform/kubernetes
44
<%= scope.function_template(['kubernetes/_systemd_unit.erb']) %>
55

66
[Service]
7-
Slice=podruntime.slice
7+
<%
8+
if @cgroup_kube_name
9+
@cgroup_kube_basename = scope.call_function('regsubst', [@cgroup_kube_name, '^\/', ''])
10+
-%>
11+
Slice=<%= @cgroup_kube_basename %>
12+
<% end -%>
813
WorkingDirectory=<%= @kubelet_dir %>
914
<% if @cloud_provider == 'aws' -%>
1015
# prevent metadata service access on AWS
@@ -73,16 +78,16 @@ ExecStart=<%= scope['kubernetes::_dest_dir'] %>/kubelet \
7378
--cgroup-driver=<%= @cgroup_driver %> \
7479
--cgroup-root=<%= @cgroup_root %> \
7580
<% if @cgroup_kube_name -%>
76-
--kube-reserved-cgroup=<%= @cgroup_kube_name %> \
77-
--runtime-cgroups=<%= @cgroup_kube_name %> \
78-
--kubelet-cgroups=<%= @cgroup_kube_name %> \
7981
<%
8082
# build kube reserved command line
8183
@cgroup_kube_reserved = []
8284
@cgroup_kube_reserved << "cpu=#{@cgroup_kube_reserved_cpu}" unless @cgroup_kube_reserved_cpu.nil? or @cgroup_kube_reserved_cpu == 'nil'
8385
@cgroup_kube_reserved << "memory=#{@cgroup_kube_reserved_memory}" unless @cgroup_kube_reserved_memory.nil? or @cgroup_kube_reserved_memory == 'nil'
8486
if @cgroup_kube_reserved.length > 0
8587
-%>
88+
--kube-reserved-cgroup=<%= @cgroup_kube_name %> \
89+
--runtime-cgroups=<%= @cgroup_kube_name %> \
90+
--kubelet-cgroups=<%= @cgroup_kube_name %> \
8691
"--kube-reserved=<%= @cgroup_kube_reserved.join(',') %>" \
8792
<% end -%>
8893
<% end -%>

puppet/modules/site_module/manifests/docker_config.pp

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,17 @@
33
ensure => file,
44
content => template('site_module/docker.erb'),
55
}
6-
file { '/etc/systemd/system/docker.service.d':
7-
ensure => directory,
8-
} -> file { '/etc/systemd/system/docker.service.d/10-slice.conf':
9-
ensure => directory,
10-
content => '[Service]\nSlice=podruntime.slice\n',
6+
7+
if $kubernetes::kubelet::cgroup_kube_name {
8+
9+
$cgroup_kube_basename = regsubst( $kubernetes::kubelet::cgroup_kube_name, '^\/', '')
10+
11+
file { '/etc/systemd/system/docker.service.d':
12+
ensure => directory,
13+
} -> file { '/etc/systemd/system/docker.service.d/10-slice.conf':
14+
ensure => directory,
15+
content => "[Service]\nSlice=${cgroup_kube_basename}\n",
16+
}
17+
1118
}
1219
}

0 commit comments

Comments
 (0)