Peta dunia

 

EN: Read in English

Dunia K4: Nota, Loker & Pakej

Base dan overlay Kustomize

Anda akan belajar: jalankan satu aplikasi di dua dapur dengan base dan overlay, guna kubectl apply -k.

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
ls tunjuk dua folder, base dan overlays. overlays ada dev dan prod. prod ada kustomization.yaml, namespace.yaml dan settings-patch.yaml. Output terminal: $ ls base overlays $ ls overlays dev prod $ ls overlays/prod kustomization.yaml namespace.yaml settings-patch.yaml

Kedai sama, dua dapur. Dev mahu 1 dulang dan log yang banyak cakap. Prod mahu 3 dulang dan log yang senyap. Salin semua YAML dua kali? Nanti setiap pepijat perlu dibaiki dua kali.

Tengok

Ini overlays/prod/kustomization.yaml. Tekan tiga baris yang buat prod berbeza.

0 daripada 3 dijumpai

Kustomize: Satu resepi asas dan satu nota lekat untuk setiap dapur. Terbina dalam kubectl (kubectl apply -k). simpan satu resepi asas (base). Setiap overlay: Nota lekat untuk satu dapur: ia ubah base untuk dev, staging atau prod. ialah nota lekat di atasnya, untuk satu dapur. Base tak pernah berubah.

Cuba

Pratonton prod dahulu. Ini cuma cetak YAML. Tiada apa sampai ke kluster.

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 baru jalankan kubectl kustomize overlays/prod. Berapa dulang prod sedang berjalan sekarang?

Pilih satu jawapan.

Cuba

Sekarang buka dapur prod betul-betul.

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)

Semak

Anda di sini: kluster kind-dev namespace default
Kedua-dua overlay di-apply. Dulang dev cetak debug. Dulang prod cetak warn. Output terminal: $ kubectl apply -k overlays/dev namespace/dev created configmap/settings created deployment.apps/shop created $ kubectl apply -k overlays/prod namespace/prod created configmap/settings created deployment.apps/shop created $ kubectl rollout status deployment/shop -n prod --timeout=120s Waiting for deployment "shop" rollout to finish: 0 of 3 updated replicas are available... deployment "shop" successfully rolled out $ kubectl exec -n dev deploy/shop -- printenv LOG_LEVEL debug $ kubectl exec -n prod deploy/shop -- printenv LOG_LEVEL warn

Satu base, dua dapur. Dev kata debug, prod kata warn. Patch itu cuma ubah satu baris nota.

Semak

Bina arahan yang buka dapur dev.

Ketik kepingan ikut turutan yang betul.

…

Anda berjaya!

Kini anda boleh jalankan satu aplikasi di banyak dapur dengan Kustomize.

Nak tahu lebih (pilihan)

Overlay boleh buat lebih: images: tukar tag, namePrefix: tukar nama, labels: tambah label. configMapGenerator tambah hash pada nama nota, jadi perubahan akan gulung semula dulang. kubectl diff -k overlays/prod tunjuk perubahan dahulu.

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

Misi sebenar

  1. kubectl kustomize overlays/prod
  2. kubectl apply -k overlays/prod
  3. kubectl diff -k overlays/prod
  4. kubectl delete -k overlays/prod

0 daripada 5 langkah siap · Tanda anda disimpan.