Sobes.tech
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í.