Middle
Čo sú limity a požiadavky v Kubernetes?
sobes.tech AI
Odpoveď od AI
Obmedzenia (limits) a požiadavky (requests) v Kubernetes určujú spotrebu zdrojov (CPU a pamäť) pre kontajnery.
requests: Minimálne garantované množstvo zdrojov, ktoré sa pokúsi kontajner použiť. Plánovač Kubernetes zohľadňuje požiadavky pri rozdeľovaní podov na uzly, aby zabezpečil dostupnosť deklarovaných zdrojov.limits: Maximálne množstvo zdrojov, ktoré môže kontajner použiť. Ak sa pokúsi prekročiť limit pamäte, bude ukončený (OOMKilled). Prekročenie limitu CPU obmedzuje jeho výkon, ale nevedie k ukončeniu.
Príklad v špecifikácii poda:
# Špecifikácia kontajnera
containers:
- name: my-app
image: my-image
resources:
requests:
memory: "64Mi" # Požaduje 64 megabajtov pamäte
cpu: "250m" # Požaduje 0,25 CPU jadra (250 milicore)
limits:
memory: "128Mi" # Limit 128 megabajtov pamäte
cpu: "500m" # Limit 0,5 CPU jadra (500 milicore)
Jednotky merania:
- CPU: V millicore (
m). 1000m = 1 jadro. - Pamäť: V bajtoch (B, kB, MB, GB, Ti, Pi...), najlepšie s mocninami dvoch (Ki, Mi, Gi, Ti, Pi...).
Význam:
- Plánovanie: Requests pomáhajú Kubernetes efektívne rozdeľovať pody na uzly, aby sa predišlo preťaženiu.
- Stabilita: Limits zabraňujú monopolizácii zdrojov jedným podom, zvyšujúc stabilitu klastru.
- Riadenie nákladov: Umožňujú odhadnúť a kontrolovať spotrebu zdrojov, ovplyvňujúc náklady na cloud.
Bez definovania limitov a požiadaviek môžu kontajnery získať neobmedzené zdroje, čo môže viesť k nestabilite uzlov a celého klastru pri vysokom zaťažení.