Kaynak İstekleri ve Sınırları
Verimli kaynak tahsisi sağlamak ve kaynak tükenmesini önlemek için Pod'lar için CPU ve bellek isteklerini ve sınırlarını tanımlayın.
Kaynak İstekleri ve Sınırları, CoddyKit'te ücretsiz bir Kubernetes Basics dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kubernetes Basics öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kubernetes Basics kursu toplamda 4 dersten oluşur.
Kubernetes'te Kaynak Gereksinimleri
Her uygulama gibi Pod'larınızın da çalışmak için kaynaklara ihtiyacı vardır. Kubernetes, Kaynak İstekleri ve Kaynak Sınırları kullanarak bu kaynakları verimli bir şekilde yönetmenize yardımcı olur.
Bu ayarlar, Pod'larınızın ne kadar CPU ve bellek gerektirdiğini ve ne kadar kullanmasına izin verildiğini Kubernetes'e bildirerek kaynakların adil dağıtılmasını sağlar.
CPU İstekleri: CPU'yu Garanti Etme
CPU isteği, Kubernetes'e Pod'unuzun rahatça çalışmak için ihtiyaç duyduğu minimum CPU miktarını bildirir. Bu bir garantidir!
- Kubernetes, istekleri kullanarak Pod'ları yeterli kullanılabilir kaynağa sahip düğümlerde zamanlar.
- Bir düğümde istenen CPU miktarı kadar kaynak yoksa Pod orada zamanlanmaz.
- Bu, kritik uygulamalarınızın kaynak yoksunluğu yaşamasını önlemeye yardımcı olur.
CPU Birimleri ve İstek Örneği
CPU, 'çekirdek' veya 'millicore' (m) cinsinden ölçülür. 1000m, 1 CPU çekirdeğine eşittir. Bu nedenle 500m, yarım çekirdektir.
Bir Pod tanımında 0,5 CPU çekirdeği istemek için örnek şöyledir:
apiVersion: v1
kind: Pod
metadata:
name: cpu-request-pod
spec:
containers:
- name: my-container
image: nginx
resources:
requests:
cpu: "500m"CPU Sınırları: Aşırı Kullanımı Önleme
CPU sınırı, bir Pod'un kullanabileceği en yüksek CPU miktarını belirler. Bu bir üst sınırdır.
- Bir Pod, sınırından daha fazla CPU kullanmaya çalışırsa Kubernetes onu kısıtlar.
- Bu, Pod'un CPU kullanımının kısıtlanacağı ve aynı düğümdeki diğer Pod'ların kaynaklarını aşırı tüketmesinin önleneceği anlamına gelir.
CPU Sınırı Uygulamada
CPU sınırı belirlemeye ilişkin bir örnek şöyledir. Bu Pod 1 CPU çekirdeğinden fazlasını kullanmaya çalışırsa kısıtlanır; yani performansı sınırlandırılır.
apiVersion: v1
kind: Pod
metadata:
name: cpu-limit-pod
spec:
containers:
- name: my-container
image: nginx
resources:
limits:
cpu: "1"Bellek İstekleri: RAM'i Garanti Etme
CPU'ya benzer şekilde, bir bellek isteği Pod'unuzun çalışması için ihtiyaç duyduğu minimum RAM miktarını belirtir.
- Kubernetes bunu, Pod'unuz için yeterli boş belleğe sahip bir düğüm bulmak amacıyla kullanır.
- Bir düğümde bellek tükenirse istek belirtmeyen Pod'lar, yer açmak için genellikle sonlandırılan (zorla çıkarılan) ilk Pod'lar olur.
Bellek Birimleri ve İstek Örneği
Bellek, bayt cinsinden ölçülür. Yaygın birimler Mi (mebibayt) ve Gi (gibibayt) değerleridir.
100Mi, 100 mebibayta eşittir. 256 MiB bellek istemenin yolu şöyledir:
apiVersion: v1
kind: Pod
metadata:
name: mem-request-pod
spec:
containers:
- name: my-container
image: nginx
resources:
requests:
memory: "256Mi"Bellek Sınırları: OOM'dan Kaçınma
Bellek Sınırı, bir Pod'un kullanabileceği maksimum belleği tanımlar.
- Bir Pod bellek sınırını aşarsa işletim sistemi tarafından 'Out Of Memory' (OOM) hatasıyla hemen sonlandırılır. Bu durum genellikle 'OOMKilled' olarak görülür.
- Bu, tek bir kontrolden çıkan Pod'un düğüm belleğinin tamamını tüketerek düğümün çökmesine neden olmasını önler.
Bellek Sınırı Uygulamada
Bu Pod'un bellek sınırı 512 MiB'dir. Daha fazlasını kullanmaya çalışırsa diğer iş yüklerini ve düğümü korumak için sonlandırılır (OOMKilled).
apiVersion: v1
kind: Pod
metadata:
name: mem-limit-pod
spec:
containers:
- name: my-container
image: nginx
resources:
limits:
memory: "512Mi"En İyi Uygulamalar: İstekler ve Sınırlar
Tüm Pod'larınız için hem istekleri hem de sınırları tanımlamanız en iyi uygulamadır. Bu, kümeniz için kararlılık ve öngörülebilirlik sağlar.
- İstekler, Pod'larınızın zamanlama için gereken minimum kaynakları almasını sağlar.
- Sınırlar, diğer Pod'ların ve düğümün kendisinin kaynak yoksunluğu yaşamasını önler.
Eksiksiz bir örnek şöyledir:
apiVersion: v1
kind: Pod
metadata:
name: full-resource-pod
spec:
containers:
- name: my-app
image: my-registry/my-app:1.0
resources:
requests:
cpu: "200m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "256Mi"Kaynak Denetimi
CPU isteği 200m ve CPU sınırı 1 (yani 1000m) olan bir Pod tanımladınız.
Bu Pod 1.5 CPU çekirdeği kullanmaya çalışırsa ne olur?
Özet: Kaynak Yönetimi
Bu derste Kubernetes'teki Kaynak İstekleri ve Kaynak Sınırları hakkında bilgi edindiniz.
- İstekler (CPU ve Bellek), Pod zamanlaması için minimum kaynakları garanti eder.
- Sınırlar (CPU ve Bellek), kaynak çekişmesini önlemek için maksimum kullanımı kısıtlar.
- CPU sınırlarının aşılması kısıtlamaya, bellek sınırlarının aşılması ise sonlandırmaya (OOMKilled) yol açar.
- Uygulama performansının kararlı ve öngörülebilir olması için her zaman hem istekleri hem de sınırları tanımlayın!
Sıkça Sorulan Sorular
“Kaynak İstekleri ve Sınırları” dersi ücretsiz mi?
Evet — “Kaynak İstekleri ve Sınırları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kubernetes Basics kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kubernetes Basics kursu toplamda 4 dersten oluşur.
“Kaynak İstekleri ve Sınırları” dersinde ne öğreneceğim?
Verimli kaynak tahsisi sağlamak ve kaynak tükenmesini önlemek için Pod'lar için CPU ve bellek isteklerini ve sınırlarını tanımlayın. Kubernetes Basics ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Kubernetes Basics öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Kubernetes Basics, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Kaynak İstekleri ve Sınırları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Kubernetes Basics dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Kubernetes Basics dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Kaynak İstekleri ve Sınırları
- Düğüm Seçicileri ve Yakınlık
- Taint'ler ve Toleration'lar
- Pod Önceliği ve Öncelik Geri Alma