World map

 

BM: Baca dalam Bahasa Melayu

World K5: Lunch Rush

Capstone mission 4: Run it

You will learn: to run Kedai Kancil in your kind cluster with overlays, a Gateway, probes and an HPA, then prove it survives.

Checked with Kubernetes 1.37 on 31 Oct 2026

The problem

Want 3, see 3. Delete a tray: the manager sees 2 and makes 1 more.

Want 3. See 3. All good.

Want3written on the order for shop
See33 ready
Do All goodGaps fixed: 0
Stalls: 3. Trays: 3 (3 ready). Waiting for a stall: 0.
dev-workerOpen
  • shop·d6b6z
  • shop·zbn9j
dev-worker2Open
  • shop·gnjxm

Mission 4: Run it. Kedai Kancil moves into your kind cluster. Goal: it survives a pod kill and a lunch rush. Kill a tray above to see the idea.

Watch

Your repo gets a k8s/ folder. The base holds what every kitchen shares. An overlay changes it for one kitchen: dev. Where does each piece go?

Drag a card into a box. Or tap the card, then tap the box.

      Watch

      The base only says kedai-kancil-web. The dev overlay below has an images: part. What does it do?

      Pick one answer.

      Here is the overlay. Put your GitHub name where it says YOU.

      apiVersion: kustomize.config.k8s.io/v1beta1
      kind: Kustomization
      namespace: kedai
      resources: [../../base, hpa.yaml, gateway.yaml]
      images:
        - { name: kedai-kancil-web, newName: ghcr.io/YOU/kedai-kancil-web, newTag: main }
        - { name: kedai-kancil-api, newName: ghcr.io/YOU/kedai-kancil-api, newTag: main }

      Try it

      Step 1: build it, on your machine. Your ticks are saved.

      Real mission

      1. mkdir -p k8s/base k8s/overlays/dev
      2. kubectl create namespace kedai
      3. kubectl apply -k k8s/overlays/dev --dry-run=server
      4. kubectl apply -k k8s/overlays/dev
      5. git add k8s && git commit -m "Run Kedai Kancil on Kubernetes" && git push

      0 of 11 steps done · Your ticks are saved.

      Predict

      api runs 2 ready trays. You delete one during the load test. What should a customer see?

      Pick one answer.

      Try it

      Step 2: prove it survives. Use a second terminal to watch.

      Real mission

      1. kubectl get pods -n kedai --watch
      2. kubectl delete pod -n kedai API_POD_NAME
      3. kubectl run load -n kedai --image=busybox:1.37 --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://api; done"
      4. kubectl get hpa -n kedai --watch
      5. kubectl delete pod load -n kedai

      0 of 6 steps done · Your ticks are saved.

      Check

      GitHub’s public API can see your files. Type your username, then check.

      Check it on GitHub

      Your username is sent only to api.github.com.

      • Your kedai-kancil repo is publicNot checked yet
      • It has a kustomization.yaml in k8s/baseNot checked yet
      • It has a kustomization.yaml in k8s/overlays/devNot checked yet

      Check

      The API can’t see your laptop’s cluster. Check these yourself.

      Real mission

      0 of 6 steps done · Your ticks are saved.

      You did it!

      You can now run Kedai Kancil on Kubernetes, and prove it heals and scales.

      Go deeper (optional)

      Safety: use a throwaway kind cluster. Run kubectl config current-context before every delete. The insecure metrics-server flag is for kind only. Your images are public, so never bake a secret into them. Make the database Secret with kubectl, and keep the password out of Git.