View on GitHub

kubernetes-learning-gitbook

Kubernetes advance: Resources

   
Title K8 Advance Resources
Category Course
Level proficient
Duration ?
YouTube https://youtube.com/crankzone/xxx
Blog https://muellermh.wordpress.com/k8s-advance-training-resources
Author Manuel H. “Onko” Müller
Mail mm@kubernauts.de
Resource https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Description Diese Lektion vermittelt alle Informationen zum Thema Resource Requests und Limits

Resources

Für jeden Container in einem Pod lassen sich CPU- und Memory-Bedarf über requests und limits angeben. Beide steuern unterschiedliche Dinge und werden an unterschiedlichen Stellen im Cluster ausgewertet.

Resources beschreiben

apiVersion: v1
kind: Pod
metadata:
  name: resource-demo
spec:
  containers:
  - name: app
    image: nginx
    resources:
      requests:
        cpu: 250m
        memory: 128Mi
      limits:
        cpu: 500m
        memory: 256Mi

CPU wird in Cores angegeben, wobei 1 einem vollen Core entspricht. 250m steht für 250 Millicores, also ein Viertel Core. Memory wird in Bytes angegeben, üblicherweise mit Suffixen wie Mi (Mebibyte) oder Gi (Gibibyte).

Auswirkung bei Überschreitung

CPU und Memory verhalten sich bei Überschreitung des limits Werts unterschiedlich:

Verhältnis requests zu limits

Nur wenn für jeden Container im Pod sowohl bei CPU als auch bei Memory requests und limits gesetzt und jeweils identisch sind, erhält der Pod die Quality of Service Klasse Guaranteed und läuft damit am stabilsten unter Ressourcendruck auf dem Node. Ist requests niedriger als limits, kann der Container kurzfristig mehr Ressourcen nutzen als angefordert, solange auf dem Node Kapazität frei ist, riskiert bei Memory-Überschreitung aber weiterhin ein OOMKill.