Skip to content

πŸͺ Learn Container Orchestration & Kubernetes by building a hit counter with Flask, Redis, and bouncing planets

Notifications You must be signed in to change notification settings

Keyukemi/Jupiter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸͺ Jupiter

A multi-container hit counter application built to learn containers, Kubernetes, and cloud-native development.

Python Flask Redis Kubernetes Podman


What is this?

A simple web app that counts page visits. Each refresh increments the counter and spawns a bouncing "Jupiter" ball on screen.

But the real purpose? Learning how containers and orchestration work by building something hands-on.


Why I built this

I wanted to understand:

  • How containers actually work (not just docker run)
  • Why we need orchestration tools like Kubernetes
  • The difference between local memory and external state (Redis)
  • How multi-container applications communicate

Instead of just reading docs, I built something.


Tech Stack

Component Technology
Backend Python 3.11 + Flask
Database Redis
Container Runtime Podman
Orchestration Kubernetes (Minikube / Kind)

What I learned

Containers

  • Writing Dockerfiles with multi-stage builds
  • Why entrypoint.sh exists (runtime configuration)
  • Container networking β€” why localhost doesn't work across containers

Kubernetes

  • Pods, Deployments, Services, Namespaces
  • How Services provide stable DNS names for ephemeral pods
  • The difference between Minikube and Kind
  • Using kubectl to debug running applications

Architecture

  • Why external state (Redis) matters β€” containers are ephemeral
  • How pods share network namespaces (pause containers)
  • The declarative model: describe desired state, let K8s handle the rest

Quick Start

# With Podman
podman build -t jupiter-frontend .
podman pod create --name jupiter -p 5000:5000
podman run -d --pod jupiter --name redis redis:7-alpine
podman run -d --pod jupiter --name flask-app jupiter-frontend

# Visit http://localhost:5000

Project Structure

Jupiter/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ app.py              # Flask application
β”‚   β”œβ”€β”€ requirements.txt    # Dependencies
β”‚   └── templates/
β”‚       └── index.html      # Frontend with bouncing Jupiters
β”œβ”€β”€ k8s/
β”‚   β”œβ”€β”€ deployment.yaml     # Kubernetes Deployments
β”‚   └── service.yaml        # Kubernetes Services
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ entrypoint.sh
└── README.md

Screenshots

Jupiter Hit Counter

Refresh the page to add more bouncing planets!


About

πŸͺ Learn Container Orchestration & Kubernetes by building a hit counter with Flask, Redis, and bouncing planets

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published