Middle
Kubernetes'te limitler ve istekler nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kubernetes'te limits ve requests, konteynerler için kaynak tüketimini (CPU ve bellek) belirler.
requests: Konteynerin kullanmaya çalıştığı minimum garantili kaynak miktarıdır. Kubernetes planlayıcısı, talep edilen kaynakları dikkate alarak podları düğümlere dağıtır ve talep edilen kaynakların erişilebilirliğini sağlar.limits: Konteynerin kullanabileceği maksimum kaynak miktarıdır. Bellek sınırını aşmaya çalışırsa, sonlandırılır (OOMKilled). CPU sınırını aşmak performansını sınırlar, ancak sonlandırmaz.
Pod spesifikasyonundaki örnek:
# Konteyner tanımı
containers:
- name: my-app
image: my-image
resources:
requests:
memory: "64Mi" # 64 megabayt bellek talep eder
cpu: "250m" # 0.25 CPU çekirdeği talep eder (250 millicore)
limits:
memory: "128Mi" # 128 megabayt bellek limiti
cpu: "500m" # 0.5 CPU çekirdeği limiti (500 millicore)
Ölçü birimleri:
- CPU: Millicore (
m) cinsinden. 1000m = 1 çekirdek. - Bellek: Byte (B, kB, MB, GB, Ti, Pi...), tercihen ikili kuvvetler kullanılarak (Ki, Mi, Gi, Ti, Pi...).
Önemi:
- Planlama: Requests, Kubernetes'in podları düğümler arasında verimli bir şekilde dağıtmasına yardımcı olur ve aşırı yüklenmeyi önler.
- İstikrar: Limits, tek bir podun kaynakları tekelleştirmesini engeller ve kümenin istikrarını artırır.
- Maliyet Yönetimi: Kaynak tüketimini tahmin etmeye ve kontrol etmeye olanak tanır, bulut maliyetlerini etkiler.
Limits ve requests tanımlanmadığında, konteynerler sınırsız kaynak alabilir, bu da yüksek yük altında düğümlerin ve kümenin kararsızlığına yol açabilir.