Peta dunia

 

EN: Read in English

Dunia K7: Pandu Sendiri · Cabaran bos

Lepas tangan

Anda akan belajar: jalankan Kedai Kancil dari Git sahaja, kemudian tangkap dan undur suntingan manual.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Kubernetes 1.37 pada 31 Okt 2026

Masalahnya

Waktu puncak, hari Sabtu. Kedai Kancil kini berjalan dengan GitOps. Misi boss: jangan sentuh kluster. Git yang memandu. Anda perlukan lebih banyak dulang. Di mana anda minta?

Pilih satu jawapan.

Cuba

Bilik 1: tukar satu baris dalam Git. Minta 5 dulang, kemudian perhati kluster ikut.

Tukar satu baris dalam Git dan commit. Lihat kluster mengikutnya.

Git (papan pesanan)

apps/kedai-kancil/deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: shop
spec:
replicas: 3
# selector dan template: sama seperti tadi
image:
Tunjuk seluruh fail
apiVersion: apps/v1
kind: Deployment
metadata:
  name: shop
  namespace: shop
spec:
  replicas: 3
  selector:
    matchLabels:
      app: shop
  template:
    metadata:
      labels:
        app: shop
    spec:
      containers:
        - name: web
          image: ghcr.io/kedai-kancil/shop:1.4.0

Commit

  1. c7c258e Add shopdalam kluster

Kluster · namespace shop

Sync: SyncedHealth: Healthy

Deployment shop: 3/3 sedia · image 1.4.0

Perubahan manual (drift)
syncPolicy:
  automated:
    selfHeal: true
Tunjuk Application Argo CD
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: kedai-kancil
  namespace: argocd
spec:
  project: default
  source:
    repoURL: "https://github.com/kedai-kancil/gitops.git"
    path: apps/kedai-kancil
    targetRevision: main
  destination:
    server: "https://kubernetes.default.svc"
    namespace: shop
  syncPolicy:
    automated:
      selfHeal: true
Tiada kerja. Git dan kluster sama.

Cuba

Bilik 2: Argo CD pastikan pesanan sama dengan Git. Deployment pula jaga dulang. Satu dulang jatuh. Perhati gelung dalam membaikinya.

Mahu 5, nampak 5. Satu dulang dipadam: nampak 4, buat 1 lagi.

Mahu 5. Nampak 5. Semua okey.

Mahu5tertulis pada pesanan shop
Nampak55 sedia
Buat Semua okeyKekurangan dibaiki: 0
Gerai: 3. Dulang: 5 (5 sedia). Menunggu gerai: 0.
dev-workerBuka
  • shop·4j5fz
  • shop·k7hl8
  • shop·zdbvc
dev-worker2Buka
  • shop·8slqz
  • shop·vblr4

Cuba

Bilik 3: hantar versi 1.5.0, cara GitOps.

Tukar satu baris dalam Git dan commit. Lihat kluster mengikutnya.

Git (papan pesanan)

apps/kedai-kancil/deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: shop
spec:
replicas: 5
# selector dan template: sama seperti tadi
image:
Tunjuk seluruh fail
apiVersion: apps/v1
kind: Deployment
metadata:
  name: shop
  namespace: shop
spec:
  replicas: 5
  selector:
    matchLabels:
      app: shop
  template:
    metadata:
      labels:
        app: shop
    spec:
      containers:
        - name: web
          image: ghcr.io/kedai-kancil/shop:1.4.0

Commit

  1. c7c258e Add shopdalam kluster

Kluster · namespace shop

Sync: SyncedHealth: Healthy

Deployment shop: 5/5 sedia · image 1.4.0

Perubahan manual (drift)
syncPolicy:
  automated:
    selfHeal: true
Tunjuk Application Argo CD
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: kedai-kancil
  namespace: argocd
spec:
  project: default
  source:
    repoURL: "https://github.com/kedai-kancil/gitops.git"
    path: apps/kedai-kancil
    targetRevision: main
  destination:
    server: "https://kubernetes.default.svc"
    namespace: shop
  syncPolicy:
    automated:
      selfHeal: true
Tiada kerja. Git dan kluster sama.

Cuba

Bilik 4: commit rakan sepasukan rosakkan sync. Baca ralat sebenar. Baiki fail itu dalam Git.

Baiki manifest ini, kemudian tekan Apply.

shop.yaml18 baris

Cuba

Bilik 5: self-heal dimatikan pada aplikasi ini. Seseorang scale secara manual. Tangkap drift itu dan undurkannya.

Tukar kluster secara manual. Kemudian pastikan perubahan itu dibatalkan.

Git (papan pesanan)

apps/kedai-kancil/deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: shop
spec:
replicas: 5
# selector dan template: sama seperti tadi
image:
Tunjuk seluruh fail
apiVersion: apps/v1
kind: Deployment
metadata:
  name: shop
  namespace: shop
spec:
  replicas: 5
  selector:
    matchLabels:
      app: shop
  template:
    metadata:
      labels:
        app: shop
    spec:
      containers:
        - name: web
          image: ghcr.io/kedai-kancil/shop:1.5.0

Commit

  1. c7c258e Add shopdalam kluster

Kluster · namespace shop

Sync: SyncedHealth: Healthy

Deployment shop: 5/5 sedia · image 1.5.0

Perubahan manual (drift)
syncPolicy:
  automated:
    selfHeal: false
Tunjuk Application Argo CD
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: kedai-kancil
  namespace: argocd
spec:
  project: default
  source:
    repoURL: "https://github.com/kedai-kancil/gitops.git"
    path: apps/kedai-kancil
    targetRevision: main
  destination:
    server: "https://kubernetes.default.svc"
    namespace: shop
  syncPolicy:
    automated:
      selfHeal: false
Tiada kerja. Git dan kluster sama.

Semak

Semakan terakhir. Leret: betul atau belum tepat?

Leret ke kanan untuk bagus, ke kiri untuk perlu baiki. Atau guna butang.

1 / 3

Setiap perubahan hari ini ialah commit yang boleh dibaca dan di-revert.

Setiap perubahan hari ini ialah commit yang boleh dibaca dan di-revert.

Anda berjaya!

Kini anda boleh jalankan kluster dari Git sahaja, lepas tangan.