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.