0Pricing
DevOps Bootcamp · Ders

Taint'ler ve Toleration'lar

Taint'leri kullanarak Pod'ların belirli düğümlerde zamanlanmasını önleyin ve belirli Pod'ların bunlara tolerans göstermesine izin verin.

Taint'ler ve Toleration'lar, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 3. 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, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

Kirletmeler Nedir?

Kubernetes kümenizde, belki GPU gibi özel donanımlara sahip veya belirli iş yükleri için ayrılmış özel düğümler olduğunu düşünün. Herhangi bir Pod'un oraya yerleşmesini istemezsiniz, değil mi?

İşte Kirletmeler burada devreye girer! Kirletme, bir düğüme uygulanan ve Pod'ların üzerinde zamanlanmasını engelleyen bir özelliktir; ancak Pod bu kirletmeyi açıkça "tolere ederse" zamanlanabilir.

Kirletmeleri Kullanma Nedenleri

Kirletmeler, Pod'ların nerede çalışacağını yönetmek için çok kullanışlıdır:

  • Ayrılmış Düğümler: Düğümleri belirli ekipler veya uygulamalar için ayırın.
  • Özel Donanım: GPU veya yüksek performanslı SSD içeren düğümleri, bunlara ihtiyaç duyan Pod'lar için yalıtın.
  • Bakım: Bir düğümü bakım için işaretleyerek yeni Pod'ların geçici olarak orada zamanlanmasını engelleyin.

Kirletmeler Nasıl Çalışır?

Kirletmeyi bir düğümdeki "girilmez" tabelası gibi düşünün. Bir Pod, ancak Tolerans adı verilen eşleşen bir "izin"e sahipse bu tabelayı yok sayabilir.

Kirletme bir anahtar, bir değer ve bir etkiden oluşur. Örneğin: key=value:effect.

Kirletme Etkilerini Anlama

Kirletmenin "etki" bölümü, Kubernetes'e onu tolere etmeyen Pod'larla ne yapacağını söyler. Üç ana etki vardır:

  • NoSchedule
  • PreferNoSchedule
  • NoExecute

Şimdi her birine bakalım.

Kirletme Etkisi: NoSchedule

NoSchedule etkisi en katı etkidir. Bir düğümde NoSchedule kirletmesi varsa eşleşen toleransa sahip olmayan hiçbir Pod bu düğümde zamanlanmaz.

Düğümde hâlihazırda çalışan Pod'lar yeni bir NoSchedule kirletmesinden etkilenmez.

Kirletme Etkisi: PreferNoSchedule

PreferNoSchedule, NoSchedule'un "yumuşak" sürümüdür. Kubernetes, Pod'ları kirletilmiş bir düğümde zamanlamaktan mümkün olduğunca kaçınır; ancak bu kesin bir gereksinim değildir.

Başka uygun düğüm yoksa bir Pod, toleransı olmasa bile PreferNoSchedule kirletmesine sahip bir düğümde yine de zamanlanabilir.

Kirletme Etkisi: NoExecute

NoExecute etkisi, *zaten çalışmakta olan* Pod'ları da etkilemesi bakımından özeldir. Bir düğümde NoExecute kirletmesi varsa:

  • Eşleşen toleransı olmayan Pod'lar *hemen tahliye edilir*.
  • Eşleşen toleransı olmayan yeni Pod'lar zamanlanamaz.

Bu etki genellikle düğümleri boşaltmak veya düğüm arızalarını yönetmek için kullanılır.

Toleranslara Giriş

Kirletmeler düğümlere uygulanırken Toleranslar Pod'lara uygulanır. Bir Pod'un toleransı, eşleşen bir kirletmeye sahip düğümde zamanlanmasına izin verir.

Eşleşen bir tolerans olmadan Pod, kirletilmiş bir düğümde zamanlanamaz (veya zamanlanmayı tercih etmez).

Pod Bildirimlerinde Toleranslar

Toleransları bir Pod'un YAML bildiriminde, spec bölümünün altında tanımlarsınız. Bir Pod'un key=value:NoSchedule kirletmesini tolere etmesi şöyledir:

apiVersion: v1
kind: Pod
metadata:
  name: my-tolerated-pod
spec:
  containers:
  - name: nginx
    image: nginx
  tolerations:
  - key: "special-purpose"
    operator: "Equal"
    value: "gpu"
    effect: "NoSchedule"

Kirletmeler ve Toleranslar Nasıl Eşleşir?

Bir Pod'un kirletilmiş bir düğümde zamanlanabilmesi için toleransının düğümün kirletmesiyle eşleşmesi gerekir. Eşleşme şunları kapsar:

  • Anahtar: Aynı olmalıdır.
  • Değer: operator: Equal kullanılıyorsa aynı olmalıdır.
  • Etki: Aynı olmalıdır.
  • İşleç: Equal veya Exists olabilir (anahtar için herhangi bir değer anlamına gelir).

key: "" operator: Exists biçimindeki özel bir tolerans *herhangi bir* kirletmeyi tolere eder.

Hızlı Denetim: Kirletmeler

Bir düğümde env=production:NoSchedule kirletmesi vardır. Hangi Pod yapılandırması bu düğümde zamanlanmasına izin verir?

Özet: Kirletmeler ve Toleranslar

Kirletmeler ve toleranslar hakkında bilgi edindiniz!

  • Kirletmeler, Pod'ları uzaklaştırmak için düğümlere uygulanır.
  • Toleranslar, Pod'ların kirletilmiş düğümlerde zamanlanmasına izin vermek için Pod'lara uygulanır.
  • Temel kirletme etkileri NoSchedule, PreferNoSchedule ve NoExecute değerleridir.
  • Bir Pod'un zamanlanabilmesi için toleransların kirletmenin anahtarıyla, değeriyle ve etkisiyle eşleşmesi gerekir.

Bu araçlar, Pod yerleşimi üzerinde ayrıntılı denetim sağlar!

Sıkça Sorulan Sorular

“Taint'ler ve Toleration'lar” dersi ücretsiz mi?

Evet — “Taint'ler ve Toleration'lar” 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 DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

“Taint'ler ve Toleration'lar” dersinde ne öğreneceğim?

Taint'leri kullanarak Pod'ların belirli düğümlerde zamanlanmasını önleyin ve belirli Pod'ların bunlara tolerans göstermesine izin verin. DevOps Bootcamp 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.

DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, 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 3. dersidir.

“Taint'ler ve Toleration'lar” 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 DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?

Evet. Her DevOps Bootcamp 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

  1. Kaynak İstekleri ve Sınırları
  2. Düğüm Seçicileri ve Yakınlık
  3. Taint'ler ve Toleration'lar
  4. Pod Önceliği ve Öncelik Geri Alma
← DevOps Bootcamp Sayfasına Dön