Peta dunia

 

EN: Read in English

Dunia K7: Pandu Sendiri

Misi capstone 6: Lepas tangan

Anda akan belajar: biar Argo CD jalankan Kedai Kancil dari repo Git, supaya satu perubahan Git sampai ke kluster tanpa kubectl.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Kubernetes 1.37 pada 31 Okt 2026

Masalahnya

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

Git (papan pesanan)

apps/deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: kedai-kancil
spec:
replicas: 2
# selector dan template: sama seperti tadi
image:
Tunjuk seluruh fail
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kedai-kancil
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: kedai-kancil
  template:
    metadata:
      labels:
        app: kedai-kancil
    spec:
      containers:
        - name: web
          image: nginx:1.30-alpine

Commit

  1. c7c258e Add kedai-kancildalam kluster

Kluster · namespace default

Sync: SyncedHealth: Healthy

Deployment kedai-kancil: 2/2 sedia · image 1.30-alpine

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/you/kedai-kancil.git"
    path: apps
    targetRevision: main
  destination:
    server: "https://kubernetes.default.svc"
    namespace: default
  syncPolicy:
    automated:
      selfHeal: true
Tiada kerja. Git dan kluster sama.

Misi 6: Lepas tangan. Matlamat anda: satu baris yang diubah dalam Git sampai ke kluster anda. Tiada kubectl untuk perubahan itu. Cuba di sini dulu.

Cuba

Langkah 1: kluster pakai buang dengan Argo CD. Guna manifest rasmi sahaja. Baca papan “anda di sini” sebelum setiap arahan.

Misi sebenar

  1. kind create cluster --name kedai
  2. kubectl config current-context
  3. kubectl create namespace argocd
  4. kubectl apply -n argocd --server-side --force-conflicts -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
  5. kubectl wait --for=condition=Available deployment --all -n argocd --timeout=300s

0 daripada 5 langkah siap · Tanda anda disimpan.

Tengok

Langkah 2: papan pesanan. Dalam repo kedai-kancil anda, buat apps/kedai-kancil.yaml dengan YAML di bawah. Baris mana yang anda akan tukar dalam langkah 4?

Pilih satu jawapan.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kedai-kancil
spec:
  replicas: 2
  selector:
    matchLabels:
      app: kedai-kancil
  template:
    metadata:
      labels:
        app: kedai-kancil
    spec:
      containers:
        - name: web
          image: nginx:1.30-alpine

Cuba

Langkah 3: halakan Argo CD ke Git. Simpan YAML di bawah sebagai argocd/application.yaml. Letak nama pengguna anda dalam repoURL.

Misi sebenar

  1. git add apps argocd && git commit -m "Add GitOps app" && git push
  2. kubectl apply -f argocd/application.yaml
  3. kubectl get deployment kedai-kancil

0 daripada 3 langkah siap · Tanda anda disimpan.

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: kedai-kancil
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/YOUR-USERNAME/kedai-kancil.git
    path: apps
  destination:
    server: https://kubernetes.default.svc
    namespace: default
  syncPolicy:
    automated:
      selfHeal: true

Teka

Anda push replicas: 3. Siapa yang ubah kluster?

Pilih satu jawapan.

Cuba

Langkah 4: perubahan satu baris. Tiada kubectl dibenarkan untuknya.

Misi sebenar

  1. git commit -am "Scale kedai-kancil to 3" && git push
  2. kubectl get deployment kedai-kancil

0 daripada 4 langkah siap · Tanda anda disimpan.

Semak

Biar API awam GitHub sahkan papan pesanan anda. Taip nama pengguna anda, kemudian semak.

Semak di GitHub

Nama pengguna anda dihantar ke api.github.com sahaja.

  • Repo Kedai Kancil anda awamBelum disemak
  • Ia ada apps/kedai-kancil.yamlBelum disemak
  • Ia ada argocd/application.yamlBelum disemak

Semak

API itu tak boleh lihat ke dalam kluster anda. Semak sendiri perkara ini.

Misi sebenar

  1. kubectl get applications -n argocd
  2. kubectl scale deployment kedai-kancil --replicas=1
  3. kind delete cluster --name kedai

0 daripada 5 langkah siap · Tanda anda disimpan.

Anda berjaya!

Kini anda boleh jalankan Kedai Kancil dengan GitOps, lepas tangan.

Nak tahu lebih (pilihan)

Di mana seluruh cerita medan selera tak tepat. Gerai sebenar tak berpindah, tetapi pod berpindah dan dapat nama baharu. Pengurus sebenar boleh ubah rancangan; controller hanya ikut papan. Papan pesanan pula ialah kod: disemak, berversi dan boleh diundur. Keselamatan: kluster pakai buang sahaja. Guna image Misi 2 hanya jika pakejnya awam.