Skip to content

Commit 04477b1

Browse files
tghartlandstrigazi
authored andcommitted
Add resource requests for system components
Set resource requests for system pods to guarantee at least some amount of resources. This prevents them from being starved of CPU/memory when running alongside resource intensive workloads in the cluster and gives them a higher quality of service class. metrics-server: 100m/200Mi recommended for up to 100 node clusters. https://github.com/kubernetes-sigs/metrics-server#scaling openstack-cloud-controller-manager: 200m CPU taken from example manifests. kubernetes-dashboard: 100m/100Mi taken from helm chart defaults. heapster: 100m/128Mi taken from helm chart defaults. influxdb: 100m/256Mi taken from influx helm chart defaults. grafana (for influxdb): 100m/200Mi same as monitoring grafana. ingress-traefik: 100m/50Mi taken from helm chart defaults. cluster-autoscaler: 100m/300Mi taken from helm chart defaults. csi-cinder-nodeplugin: 25m CPU on both containers to ensure Burstable QoS class. csi-cinder-controllerplugin: 20m CPU on all containers to ensure Burstable QoS class. tiller-deploy: 25m CPU to ensure it can always handle the readiness probe. octavia-ingress-controller: 50m CPU, just a guess really. Story: 2008825 Task: 42290 Change-Id: Ifcd764c00d7046744ba63609078cc6c5d02fdc1c
1 parent 5f9bfe3 commit 04477b1

File tree

8 files changed

+61
-1
lines changed

8 files changed

+61
-1
lines changed

magnum/drivers/common/templates/kubernetes/fragments/enable-auto-scaling.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,10 @@ spec:
148148
- --scale-down-unneeded-time=10m
149149
- --scale-down-delay-after-failure=3m
150150
- --scale-down-delay-after-add=10m
151+
resources:
152+
requests:
153+
cpu: 100m
154+
memory: 300Mi
151155
ports:
152156
- containerPort: 8085
153157
name: metrics

magnum/drivers/common/templates/kubernetes/fragments/enable-cinder-csi.sh

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,9 @@ spec:
262262
- "--v=5"
263263
- "--csi-address=\$(ADDRESS)"
264264
- "--timeout=3m"
265+
resources:
266+
requests:
267+
cpu: 20m
265268
env:
266269
- name: ADDRESS
267270
value: /var/lib/csi/sockets/pluginproxy/csi.sock
@@ -274,6 +277,9 @@ spec:
274277
args:
275278
- "--csi-address=\$(ADDRESS)"
276279
- "--timeout=3m"
280+
resources:
281+
requests:
282+
cpu: 20m
277283
env:
278284
- name: ADDRESS
279285
value: /var/lib/csi/sockets/pluginproxy/csi.sock
@@ -285,6 +291,9 @@ spec:
285291
image: ${CONTAINER_INFRA_PREFIX:-quay.io/k8scsi/}csi-snapshotter:${CSI_SNAPSHOTTER_TAG}
286292
args:
287293
- "--csi-address=\$(ADDRESS)"
294+
resources:
295+
requests:
296+
cpu: 20m
288297
env:
289298
- name: ADDRESS
290299
value: /var/lib/csi/sockets/pluginproxy/csi.sock
@@ -297,6 +306,9 @@ spec:
297306
args:
298307
- "--v=5"
299308
- "--csi-address=\$(ADDRESS)"
309+
resources:
310+
requests:
311+
cpu: 20m
300312
env:
301313
- name: ADDRESS
302314
value: /var/lib/csi/sockets/pluginproxy/csi.sock
@@ -312,6 +324,9 @@ spec:
312324
- "--endpoint=\$(CSI_ENDPOINT)"
313325
- "--cloud-config=\$(CLOUD_CONFIG)"
314326
- "--cluster=\$(CLUSTER_NAME)"
327+
resources:
328+
requests:
329+
cpu: 20m
315330
env:
316331
- name: NODE_ID
317332
valueFrom:
@@ -401,6 +416,9 @@ spec:
401416
args:
402417
- "--csi-address=\$(ADDRESS)"
403418
- "--kubelet-registration-path=\$(DRIVER_REG_SOCK_PATH)"
419+
resources:
420+
requests:
421+
cpu: 25m
404422
lifecycle:
405423
preStop:
406424
exec:
@@ -432,6 +450,9 @@ spec:
432450
- "--nodeid=\$(NODE_ID)"
433451
- "--endpoint=\$(CSI_ENDPOINT)"
434452
- "--cloud-config=\$(CLOUD_CONFIG)"
453+
resources:
454+
requests:
455+
cpu: 25m
435456
env:
436457
- name: NODE_ID
437458
valueFrom:

magnum/drivers/common/templates/kubernetes/fragments/enable-helm-tiller.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,9 @@ spec:
130130
port: 44135
131131
initialDelaySeconds: 1
132132
timeoutSeconds: 1
133-
resources: {}
133+
resources:
134+
requests:
135+
cpu: 25m
134136
volumeMounts:
135137
- mountPath: /etc/certs
136138
name: tiller-certs

magnum/drivers/common/templates/kubernetes/fragments/enable-ingress-octavia.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ spec:
8989
args:
9090
- /bin/octavia-ingress-controller
9191
- --config=/etc/config/octavia-ingress-controller-config.yaml
92+
resources:
93+
requests:
94+
cpu: 50m
9295
volumeMounts:
9396
- mountPath: /etc/kubernetes
9497
name: kubernetes-config

magnum/drivers/common/templates/kubernetes/fragments/enable-ingress-traefik.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ spec:
7070
containers:
7171
- image: ${CONTAINER_INFRA_PREFIX:-docker.io/}traefik:${TRAEFIK_INGRESS_CONTROLLER_TAG}
7272
name: ingress-traefik-backend
73+
resources:
74+
requests:
75+
cpu: 100m
76+
memory: 50Mi
7377
ports:
7478
- name: http
7579
containerPort: 80

magnum/drivers/common/templates/kubernetes/fragments/kube-apiserver-to-kubelet-role.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,9 @@ spec:
370370
- --cluster-name=${CLUSTER_UUID}
371371
- --use-service-account-credentials=true
372372
- --bind-address=127.0.0.1
373+
resources:
374+
requests:
375+
cpu: 200m
373376
volumeMounts:
374377
- name: cloudconfig
375378
mountPath: /etc/kubernetes

magnum/drivers/common/templates/kubernetes/fragments/kube-dashboard-service.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,10 @@ spec:
216216
# If not specified, Dashboard will attempt to auto discover the API server and connect
217217
# to it. Uncomment only if the default does not work.
218218
# - --apiserver-host=http://my-address:port
219+
resources:
220+
requests:
221+
cpu: 100m
222+
memory: 100Mi
219223
volumeMounts:
220224
- name: kubernetes-dashboard-certs
221225
mountPath: /certs
@@ -292,6 +296,9 @@ spec:
292296
ports:
293297
- containerPort: 8000
294298
protocol: TCP
299+
resources:
300+
requests:
301+
cpu: 50m
295302
livenessProbe:
296303
httpGet:
297304
scheme: HTTP
@@ -354,6 +361,10 @@ spec:
354361
containers:
355362
- name: influxdb
356363
image: ${INFLUX_IMAGE}
364+
resources:
365+
requests:
366+
cpu: 100m
367+
memory: 256Mi
357368
volumeMounts:
358369
- mountPath: /data
359370
name: influxdb-storage
@@ -405,6 +416,10 @@ spec:
405416
containers:
406417
- name: grafana
407418
image: ${GRAFANA_IMAGE}
419+
resources:
420+
requests:
421+
cpu: 100m
422+
memory: 200Mi
408423
ports:
409424
- containerPort: 3000
410425
protocol: TCP
@@ -508,6 +523,10 @@ spec:
508523
command:
509524
- /heapster
510525
- --source=kubernetes:https://kubernetes.default?insecure=false&useServiceAccount=true&kubeletPort=10250&kubeletHttps=true
526+
resources:
527+
requests:
528+
cpu: 100m
529+
memory: 128Mi
511530
${INFLUX_SINK}
512531
---
513532
apiVersion: v1

magnum/drivers/common/templates/kubernetes/helm/metrics-server.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ EOF
2020
metrics-server:
2121
image:
2222
repository: ${CONTAINER_INFRA_PREFIX:-gcr.io/google_containers/}metrics-server-${ARCH}
23+
resources:
24+
requests:
25+
cpu: 100m
26+
memory: 200Mi
2327
args:
2428
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
2529
EOF

0 commit comments

Comments
 (0)