Ücretsiz ders · CKA Hazırlık Programı · Modül 5: Depolama
Durumlu İşleri StatefulSet ile Koşturmak
Veritabanları ve çekirdek sistemler yapışan adlar ve izleyen diskler ister. StatefulSetler ikisini de sıralı garantilerle verir; bu ders büyütme ve güvenli güncelleme dahil uçtan uca koşturur.
13 dk okuma
Kazanımlar
- Sabit kimlik artı sabit depolamayı ve onlar olmadan neyin kırılacağını açıklamak
- Pod başına karşılayan volumeClaimTemplate şablonlu StatefulSet yazmak
- Veriyi büyütmek ve korumak: talepleri genişletmek, hikâyeyi anlık görüntülemek, çekirdeği tutmak
- Gereken özenle bölümlü denetimle durumlu güncellemeyi döndürmek
Neden önemli
Diskini veya adını yeniden zamanlamada kaybeden veritabanı, zamanlama kostümlü veri kaybı olayıdır. StatefulSetler kimliği (web-0, web-1) depolamaya (şablondan pod başına bir KBT) bağlar; yeniden zamanlama yeniden icat yerine yeniden bağlanır. Sıralama garantileri bilerek yavaşlatır: önce veri güvenliği, sonra hız.
Kavramlar
Her kopya sabit makine adı artı sabit talep alır: volumeClaimTemplates pod başına bir KBT karşılar (data-web-0, data-web-1), adlandırılmış Depolama Sınıfından; yeniden oluşan podlar kendi talebini geri alır. Ölçekleme sıralıdır (yukarı 0dan, aşağı Nden), güncellemeler isteğe bağlı bölümlenmiş (updateStrategy.rollingUpdate.partition) sıralıdır; duruma da canary tarzı özen uygulanır. Başsız Servis üyeliği eş keşfi için sabit DNS adları verir.
Büyüme her talebi genişletmek demektir (önceki dersteki genişletme alıştırması, pod başına), dosya sistemi izler. Koruma küme dışı yedekler artı kıymetli her şeyde geri alma Koru demektir: StatefulSet silmek KBTleri asla silmez ve asimetri her çalıştırma kitabından fazla veri kurtarmıştır.
Uygulamalı örnek
Üç kopya, başlangıçta her biri bir gigabayt, sıralı ve sabit:
apiVersion: apps/v1
kind: StatefulSet
metadata: { name: data, namespace: demo }
spec:
serviceName: data-peers
replicas: 3
selector: { matchLabels: { app: data } }
template:
metadata: { labels: { app: data } }
spec:
containers:
- name: store
image: store:1.0
volumeMounts: [{ name: data, mountPath: /var/lib/store }]
volumeClaimTemplates:
- metadata: { name: data }
spec:
accessModes: [ReadWriteOnce]
resources: { requests: { storage: 1Gi } }kubectl get pvc data-data-0 ile data-data-2 arasını gösterir. data-1 podunu sil, aynı talep ve aynı veriyle dönüşünü izle: kimlik artı depolamanın yeniden zamanlamayı atlatması kanıtın tamamıdır.
Sınav notları
Başsız Servis podlardan önce var olmalı, yoksa DNS adları geriden gelir: hep önce oluştur. Sıfıra ölçekleme her KBTyi tutar: veri bekler, bedeller işler, hiçbir şey kaybolmaz. Ve bölümlü güncellemeler (partition: 2) kuyruğu tutarken baş yeni sürümü kanıtlar: fazladan aletsiz durumlu canary.
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
Pod başına talepli kurgusal 3 kopya StatefulSet yaz, kimlik artı depolamanın pod silmeyi atlattığını kanıtla, bir talebi pod içi kanıtla genişlet ve bir kopyayı geride tutan bölümlü güncellemeyi anlat.
Geçme kriterleri
Bildirim şablon artı başsız servisli geçerli; silme-dönüş aynı taleple kanıtlı; genişletme gösterilmiş; bölüm güncellemesi doğru anlamla anlatılmış.