Peta dunia

 

EN: Read in English

Dunia K4: Nota, Loker & Pakej

Storan untuk StatefulSet

Anda akan belajar: cara StatefulSet beri setiap pod loker sendiri, dan menyimpannya.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Kubernetes 1.37 pada 31 Okt 2026

Masalahnya

Anda di sini: kluster kind-dev namespace default
kubectl get pods tunjuk ledger-0 dan ledger-1, kedua-duanya Running. Output terminal: $ kubectl get pods -l app=ledger NAME READY STATUS RESTARTS AGE ledger-0 1/1 Running 0 28s ledger-1 1/1 Running 0 26s

Dua dulang lejar, ledger-0 dan ledger-1. Setiap satu simpan buku pesanan sendiri. Satu loker kongsi akan campur buku-buku itu. Macam mana setiap satu dapat loker sendiri?

Tengok

Tekan baris tempat borang loker bermula.

0 daripada 1 dijumpai

StatefulSet bawa borang loker: volumeClaimTemplates: Borang loker StatefulSet: setiap pod dapat claim sendiri, contohnya data-ledger-0.. Untuk setiap dulang, ia isi satu claim, dinamakan sempena dulang itu.

Cuba

Buka lejar. Kemudian senaraikan claim yang ia buat.

Anda di sini: kluster kind-dev namespace default
Gerai: 3. Dulang: 0 (0 sedia). Menunggu gerai: 0.
dev-control-planeBukaPengurus

Tiada dulang di sini.

dev-workerBuka

Tiada dulang di sini.

dev-worker2Buka

Tiada dulang di sini.

Masa: +0s (dipercepat)

Teka

Anda skala lejar kepada 3 dulang. Apa nama claim dulang baharu?

Pilih satu jawapan.

Semak

Anda di sini: kluster kind-dev namespace default
Lejar diskala kepada 3. get pvc kini senaraikan data-ledger-0, data-ledger-1 dan data-ledger-2, semua Bound. Output terminal: $ kubectl scale statefulset ledger --replicas=3 statefulset.apps/ledger scaled $ kubectl rollout status statefulset/ledger --timeout=180s Waiting for 1 pods to be ready... partitioned roll out complete: 3 new pods have been updated... $ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE data-ledger-0 Bound pvc-12275be8-489d-4e5b-9103-3244568e6d85 1Gi RWO standard <unset> 29s data-ledger-1 Bound pvc-b5053239-899f-40a2-a64f-ef861fce2de1 1Gi RWO standard <unset> 27s data-ledger-2 Bound pvc-3730202e-598b-41af-996a-21fec8857129 1Gi RWO standard <unset> 1s

data-ledger-2 muncul, Bound kepada PV baharu. Dulang naik ikut urutan: 0, kemudian 1, kemudian 2.

Teka

ledger-0 sudah tulis page 1 dalam bukunya. Sekarang anda padam seluruh StatefulSet. Apa jadi pada claim?

Pilih satu jawapan.

Semak

Anda di sini: kluster kind-dev namespace default
StatefulSet dipadam. get pvc masih senaraikan kedua-dua claim. Bila di-apply semula, ledger-0 baca page 1 daripada loker lamanya. Output terminal: $ kubectl delete statefulset ledger statefulset.apps "ledger" deleted from default namespace $ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE data-ledger-0 Bound pvc-12275be8-489d-4e5b-9103-3244568e6d85 1Gi RWO standard <unset> 28s data-ledger-1 Bound pvc-b5053239-899f-40a2-a64f-ef861fce2de1 1Gi RWO standard <unset> 26s $ kubectl apply -f ledger.yaml statefulset.apps/ledger created $ kubectl rollout status statefulset/ledger --timeout=180s Waiting for 2 pods to be ready... Waiting for 1 pods to be ready... partitioned roll out complete: 2 new pods have been updated... $ kubectl exec ledger-0 -- cat /data/book.txt page 1

Claim itu menunggu. ledger-0 yang baharu dapat semula loker lamanya, dan baca page 1.

Anda berjaya!

Kini anda boleh beri setiap pod StatefulSet loker sendiri yang kekal.

Nak tahu lebih (pilihan)

Mahu claim dibersihkan? Tetapkan persistentVolumeClaimRetentionPolicy. whenDeleted dan whenScaled masing-masing terima Retain (lalai) atau Delete. Ia stabil sejak Kubernetes 1.32. Padam claim bermakna padam data, jadi fikir dua kali.

Latihan sebenar (pilihan), pada kluster kind untuk latihan:

Misi sebenar

  1. kubectl apply -f ledger.yaml
  2. kubectl get pvc
  3. kubectl delete statefulset ledger
  4. kubectl delete pvc data-ledger-0 data-ledger-1

0 daripada 5 langkah siap · Tanda anda disimpan.