Course Project: Multi-Pod Multi-Container Pipeline on Kubernetes


Introduction

Motivation

The goal of this class is to equip students with not only theory but also technical skills that are applicable to real world problems. To accomplish this, we will follow a project-based learning approach, where students start with a top-down project idea and gradually acquire the necessary knowledge to implement this project over the duration of the course.

Project idea

The project idea should evolve around a full stack pipeline that involves multiple pods with at least one of which contains multiple containers. The deployment of this pipeline will be carried out on Kubernetes, with consideration for authentication and authorization aspects. This deployment process will teach students the concept of infrastructure as code and improve their administrative automation and scripting skills.


Example Project Idea

While groups are free to select their own project ideas, these selections need to reflect the complexity of the pipeline. To that end, we have the following template project idea: Image Classification Pipeline on Kubernetes

Project Overview

Design and deploy a simplified image classification pipeline on Kubernetes. The system demonstrates multi-pod orchestration and possibly multi-container pods using sidecars. At minimum, include:

It is possible to have in-depth projects that veer away from the multi-pod/multi-container requirements. All project selections need to be approved by the professor.


Milestone 1: Team Formation & Architecture (Design Only)

Goal
Requirements
Deliverables

Milestone 2: Core Implementation:

Goal

Stand up the pipeline with proper service discovery and resilience. No persistence yet.

What to build
Deliverables

Milestone 3: Persistence & Full Integration (Demo)

Goal

Add persistent storage, verify data survives restarts, and deliver a clean demo.

Adding final components
Deliverables

Constraints & Hints