Ücretsiz ders · CKA Hazırlık Programı · Modül 3: İş yükleri ve zamanlama
Doğru İş Yükü Denetleyicisini Seçmek
Denetleyici podların çevresindeki sözdür: kaç tane, nerede, hangi kimlikle ve bitiş ne demek. Yanlış seçim tüm zamanlama sürprizlerinin yarısının kök nedenidir.
11 dk okuma
Kazanımlar
- Deployment, DaemonSet, StatefulSet ve Jobu iş yükü şekliyle eşleştirmek
- Her denetleyicinin kimlik, yerleşim ve tamamlanma garantisini söylemek
- Sade podu kapsayıcılarını değiştirmeden yönetilen iş yüküne çevirmek
- Her denetleyicide düğüm kaybında neyin yaşadığını öngörmek
Neden önemli
Deployment N aynı kopyayı çalışır tutar, ölüyü değiştirir. DaemonSet seçilen her düğümde bir pod koşturur; ajanlar ve sürücüler içindir. StatefulSet her poda sabit ad artı sabit depolama verir; veritabanları ve çekirdek sistemleri içindir. Job podları iş bitene koşturur, sonra durur. Bunlar birbirinin çeşidi değildir; her biri farklı soruyu yanıtlar ve sınav eşleştirmeyi acımasızca sorar.
Kavramlar
Deploymentler ReplicaSet sahibidir; yeni imajları revizyon geçmişi, duraklatma, sürdürme ve geri alma ile yayınlar. Podlar birbirinin yerini tutar: her kopya sunar, hiçbirinin adı hatırlanmaya değmez. Her durumsuz servis için Deployment al.
DaemonSetler seçilen her düğüme otomatik bir pod koyar; sonradan eklenen düğümler dahil. Log ajanları, izleme dışa aktarıcıları ve depolama sürücüleri burada yaşar. Toleranslar lekeli düğümlere de inmelerini sağlar; sistem DaemonSetleri tüm filoyu böyle kapsar.
StatefulSetler sıralı kimlik ekler: pod-0, pod-1, pod-2; sabit makine adları artı her birine bir KalıcıBirimTalebi şablon girdisi. Veritabanları, Kafka tipi aracılar ve çekirdek kurallı her şey bu kararlılığı ister. Sıralı ölçek ve sıralı güncelleme birlikte gelir; Deploymentten bilerek yavaştır.
Job ve CronJoblar sonlu işindir (ayrı derse bak): tamamlanmalar, paralellik, süreler. Toplu işi YAML tanıdık diye Deploymente park etme.
Uygulamalı örnek
Üç iş yükü, üç denetleyici, tek küme:
# durumsuz API: Deployment, birbirinin yerine geçen 3 kopya
kubectl create deployment api --image=api:2.4 --replicas=3
# düğüm başına log taşıyıcı: DaemonSet, otomatik kapsama
kubectl apply -f fluent-bit-daemonset.yaml
kubectl get pods -l app=fluent-bit -o wide # düğüm başına bir
# gece dışa aktarımı: Job, bir kez koşar, biter
kubectl create job nightly-export --image=exporter:1.0
kubectl wait --for=condition=complete job/nightly-export --timeout=300sDüğüm kaybı ayrıştırır: Deployment kopyaları yeniden zamanlar, DaemonSet kayıp düğüm podunu sonraki eşleşen düğümde yerine koyar, Job tamamlanmadıysa yeniden başlar.
Sınav notları
StatefulSet ile Deployment en çok sorulan seçimdir: sabit kimlik artı depolama StatefulSet demektir, gerisi Deploymente yaslanır. DaemonSet soruları otomatik düğüm başına yerleşim artı toleranslara dayanır. Ve CronJob zamanlamalı Jobdur, uyku döngülü Deployment asla.
Mini kontrol
4 soruluk öz kontrol. Yanıtların cihazında kalır, saklanmaz ve gönderilmez. Yalnızca geçen skor (ör. 4 soruda 3) kaydedilir ve yalnızca ders ilerlemesinin kilidini açmak için: bir dersin tamamlanmış sayılması için en az 3 doğru gerekir. Hiçbir sertifika değerlendirmesine sayılmaz.
Ders geri bildirimi
Henüz yayında geri bildirim yok.
Geri bildirim yazmak için giriş yap ve dersi tamamla.
Kaynaklar
Alıştırma
Dört kurgusal iş yükü için (herkese açık API, GPU metrik ajanı, üç düğümlü mesaj kuyruğu, saatlik fatura koşusu) denetleyiciyi adlandır, her seçimi tek cümleyle gerekçelendir. Sonra düğümü beklenmedik ölünce her birine ne olduğunu anlat.
Geçme kriterleri
Dört denetleyici de uyan gerekçeyle doğru; düğüm kaybı davranışı denetleyici başına doğru (yeniden zamanlama, yerine koyma, çekirdek bilinçli bekleme, tamamlanmadıysa yeniden başlatma).