Sobes.tech
Middle

Šta su limiti i zahtevi u Kubernetesu?

sobes.tech АИ

Одговор од АИ

Ograničenja (limits) i zahtevi (requests) u Kubernetes-u određuju potrošnju resursa (CPU i memorije) za kontejnere.

  • requests: Minimalni garantovani broj resursa koje će pokušati da koristi kontejner. Planer Kubernetes-a uzima u obzir zahteve prilikom raspoređivanja podova na čvorove, kako bi obezbedio dostupnost deklarisanih resursa.
  • limits: Maksimalni broj resursa koje kontejner može koristiti. Ako kontejner pokuša da prekorači limit memorije, biće završен (OOMKilled). Prekoračenje limita CPU ograničava njegovu performansu, ali ne dovodi do završetka.

Primer u specifikaciji poda:

# Specifikacija kontejnera
containers:
  - name: my-app
    image: my-image
    resources:
      requests:
        memory: "64Mi" # Zahteva 64 megabajta memorije
        cpu: "250m"   # Zahteva 0,25 CPU jezgra (250 milicore)
      limits:
        memory: "128Mi" # Limit od 128 megabajta memorije
        cpu: "500m"   # Limit od 0,5 CPU jezgra (500 milicore)

Jedinice mere:

  • CPU: U millicore-ima (m). 1000m = 1 jezgro.
  • Memorija: U bajtovima (B, kB, MB, GB, Ti, Pi...), po mogućstvu koristeći stepeni dvojke (Ki, Mi, Gi, Ti, Pi...).

Značaj:

  • Planiranje: Requests pomažu Kubernetes-u da efikasno rasporedi podove po čvorovima, sprečavajući preopterećenje.
  • Stabilnost: Limits sprečavaju monopolizaciju resursa od strane jednog poda, povećavajući stabilnost klastera.
  • Upravljanje troškovima: Omogućavaju procenu i kontrolu potrošnje resursa, utičući na troškove u oblaku.

Bez definisanja limita i zahteva, kontejneri mogu dobiti neograničene resurse, što može dovesti do nestabilnosti čvorova i celog klastera pri velikom opterećenju.