mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-03-22 19:35:03 -02:30
Systemd units, limits, and bin path fixes
* Add restart for weave service unit * Reuse docker_bin_dir everythere * Limit systemd managed docker containers by CPU/RAM. Do not configure native systemd limits due to the lack of consensus in the kernel community requires out-of-tree kernel patches. Signed-off-by: Bogdan Dobrelya <bdobrelia@mirantis.com>
This commit is contained in:
committed by
Bogdan Dobrelya
parent
6139ee3add
commit
a56d9de502
@@ -13,4 +13,16 @@ kube_apiserver_node_port_range: "30000-32767"
|
||||
etcd_config_dir: /etc/ssl/etcd
|
||||
etcd_cert_dir: "{{ etcd_config_dir }}/ssl"
|
||||
|
||||
|
||||
# Limits for kube components
|
||||
kube_controller_memory_limit: 512M
|
||||
kube_controller_cpu_limit: 250m
|
||||
kube_controller_memory_requests: 170M
|
||||
kube_controller_cpu_requests: 100m
|
||||
kube_scheduler_memory_limit: 512M
|
||||
kube_scheduler_cpu_limit: 250m
|
||||
kube_scheduler_memory_requests: 170M
|
||||
kube_scheduler_cpu_requests: 100m
|
||||
kube_apiserver_memory_limit: 2000M
|
||||
kube_apiserver_cpu_limit: 800m
|
||||
kube_apiserver_memory_requests: 256M
|
||||
kube_apiserver_cpu_requests: 300m
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
tags: k8s-pre-upgrade
|
||||
|
||||
- name: Copy kubectl from hyperkube container
|
||||
command: "/usr/bin/docker run --rm -v {{ bin_dir }}:/systembindir {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} /bin/cp /hyperkube /systembindir/kubectl"
|
||||
command: "{{ docker_bin_dir }}/docker run --rm -v {{ bin_dir }}:/systembindir {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} /bin/cp /hyperkube /systembindir/kubectl"
|
||||
register: kube_task_result
|
||||
until: kube_task_result.rc == 0
|
||||
retries: 4
|
||||
|
||||
@@ -12,6 +12,13 @@ spec:
|
||||
- name: kube-apiserver
|
||||
image: {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }}
|
||||
imagePullPolicy: {{ k8s_image_pull_policy }}
|
||||
resources:
|
||||
limits:
|
||||
cpu: {{ kube_apiserver_cpu_limit }}
|
||||
memory: {{ kube_apiserver_memory_limit }}
|
||||
requests:
|
||||
cpu: {{ kube_apiserver_cpu_requests }}
|
||||
memory: {{ kube_apiserver_memory_requests }}
|
||||
command:
|
||||
- /hyperkube
|
||||
- apiserver
|
||||
|
||||
@@ -11,6 +11,13 @@ spec:
|
||||
- name: kube-controller-manager
|
||||
image: {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }}
|
||||
imagePullPolicy: {{ k8s_image_pull_policy }}
|
||||
resources:
|
||||
limits:
|
||||
cpu: {{ kube_controller_cpu_limit }}
|
||||
memory: {{ kube_controller_memory_limit }}
|
||||
requests:
|
||||
cpu: {{ kube_controller_cpu_requests }}
|
||||
memory: {{ kube_controller_memory_requests }}
|
||||
command:
|
||||
- /hyperkube
|
||||
- controller-manager
|
||||
|
||||
@@ -11,6 +11,13 @@ spec:
|
||||
- name: kube-scheduler
|
||||
image: {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }}
|
||||
imagePullPolicy: {{ k8s_image_pull_policy }}
|
||||
resources:
|
||||
limits:
|
||||
cpu: {{ kube_scheduler_cpu_limit }}
|
||||
memory: {{ kube_scheduler_memory_limit }}
|
||||
requests:
|
||||
cpu: {{ kube_scheduler_cpu_requests }}
|
||||
memory: {{ kube_scheduler_memory_requests }}
|
||||
command:
|
||||
- /hyperkube
|
||||
- scheduler
|
||||
|
||||
@@ -9,6 +9,18 @@ kube_proxy_mode: iptables
|
||||
# If using the pure iptables proxy, SNAT everything
|
||||
kube_proxy_masquerade_all: true
|
||||
|
||||
# Limits for kube components and nginx load balancer app
|
||||
kubelet_memory_limit: 512M
|
||||
kubelet_cpu_limit: 100m
|
||||
kube_proxy_memory_limit: 2000M
|
||||
kube_proxy_cpu_limit: 500m
|
||||
kube_proxy_memory_requests: 256M
|
||||
kube_proxy_cpu_requests: 150m
|
||||
nginx_memory_limit: 512M
|
||||
nginx_cpu_limit: 300m
|
||||
nginx_memory_requests: 64M
|
||||
nginx_cpu_requests: 50m
|
||||
|
||||
# kube_api_runtime_config:
|
||||
# - extensions/v1beta1/daemonsets=true
|
||||
# - extensions/v1beta1/deployments=true
|
||||
|
||||
@@ -39,7 +39,7 @@ DAEMON_USER=root
|
||||
#
|
||||
do_start()
|
||||
{
|
||||
/usr/bin/docker rm -f kubelet &>/dev/null || true
|
||||
{{ docker_bin_dir }}/docker rm -f kubelet &>/dev/null || true
|
||||
sleep 1
|
||||
# Return
|
||||
# 0 if daemon has been started
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
/usr/bin/docker run --privileged \
|
||||
{{ docker_bin_dir }}/docker run --privileged \
|
||||
--net=host --pid=host --name=kubelet --restart=on-failure:5 \
|
||||
-v /etc/cni:/etc/cni:ro \
|
||||
-v /opt/cni:/opt/cni:ro \
|
||||
@@ -9,6 +9,7 @@
|
||||
-v {{ docker_daemon_graph }}:/var/lib/docker \
|
||||
-v /var/run:/var/run \
|
||||
-v /var/lib/kubelet:/var/lib/kubelet \
|
||||
--memory={{ kubelet_memory_limit|regex_replace('Mi', 'M') }} --cpu-shares={{ kubelet_cpu_limit|regex_replace('m', '') }} \
|
||||
{{ hyperkube_image_repo }}:{{ hyperkube_image_tag}} \
|
||||
nsenter --target=1 --mount --wd=. -- \
|
||||
./hyperkube kubelet \
|
||||
|
||||
@@ -23,8 +23,8 @@ ExecStart={{ bin_dir }}/kubelet \
|
||||
$DOCKER_SOCKET \
|
||||
$KUBELET_NETWORK_PLUGIN \
|
||||
$KUBELET_CLOUDPROVIDER
|
||||
ExecStartPre=-/usr/bin/docker rm -f kubelet
|
||||
ExecReload=/usr/bin/docker restart kubelet
|
||||
ExecStartPre=-{{ docker_bin_dir }}/docker rm -f kubelet
|
||||
ExecReload={{ docker_bin_dir }}/docker restart kubelet
|
||||
Restart=always
|
||||
RestartSec=10s
|
||||
|
||||
|
||||
@@ -11,6 +11,13 @@ spec:
|
||||
- name: kube-proxy
|
||||
image: {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }}
|
||||
imagePullPolicy: {{ k8s_image_pull_policy }}
|
||||
resources:
|
||||
limits:
|
||||
cpu: {{ kube_proxy_cpu_limit }}
|
||||
memory: {{ kube_proxy_memory_limit }}
|
||||
requests:
|
||||
cpu: {{ kube_proxy_cpu_requests }}
|
||||
memory: {{ kube_proxy_memory_requests }}
|
||||
command:
|
||||
- /hyperkube
|
||||
- proxy
|
||||
|
||||
@@ -11,6 +11,13 @@ spec:
|
||||
- name: nginx-proxy
|
||||
image: {{ nginx_image_repo }}:{{ nginx_image_tag }}
|
||||
imagePullPolicy: {{ k8s_image_pull_policy }}
|
||||
resources:
|
||||
limits:
|
||||
cpu: {{ nginx_cpu_limit }}
|
||||
memory: {{ nginx_memory_limit }}
|
||||
requests:
|
||||
cpu: {{ nginx_cpu_requests }}
|
||||
memory: {{ nginx_memory_requests }}
|
||||
securityContext:
|
||||
privileged: true
|
||||
volumeMounts:
|
||||
|
||||
Reference in New Issue
Block a user