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