Kubernetes Simulator

advanced · ~30 min

Launch the arena

Ticket GAME-7 — launch the arena. An empty cluster; the game studio launches its multiplayer servers today.

  • arena — 3 servers of ghcr.io/hackademy/arena-server:1.0 with names that never change (arena-0, arena-1, arena-2), each reachable by its own DNS name through a headless Service arena on port 7777.
  • Each server keeps its match saves on its own disk at /data (1Gi) — saves must survive a restart.
  • Maintenance must never take the arena below 2 servers.
  • Every worker node runs the studio's log shipper, log-shipper (busybox:1.36 running sh -c 'echo shipping logs; sleep infinity').
  • Watch for the 1.1 patch: it must reach one server before the others.

Names matter: the matchmaker looks for arena-0.arena, arena-1.arena and arena-2.arena.

Objectives

  • 3 arena servers ready, each with its own disk at /data
  • A headless Service arena gives each server a DNS name
  • Maintenance can't take the arena below 2 servers
  • log-shipper runs on every worker node
  • When the patch lands: arena-2 on 1.1, arena-0 and arena-1 still on 1.0
  • Bonus: Watch the canary roll out with kubectl rollout status

Best on a computer with a keyboard. It works on a phone, with shortcuts under the terminal.