Advanced Search
Search Results
190 total results found
Lesson: Multi-Service Apps with Compose
What you'll learn Explain what Docker Compose is and why a YAML file beats a pile of docker run commands. Read and write a compose.yaml with services, networks, volumes, and environment. Use up, down, logs, and ps to run a whole stack with one command. Contro...
Lesson: Dockerfiles & Best Practices
What you'll learn Write a Dockerfile using the core instructions (FROM, WORKDIR, COPY, RUN, ENV, EXPOSE, USER, CMD). Order instructions to exploit layer caching for fast rebuilds. Apply the lab's house conventions: multi-stage builds, a pinned base image, a n...
Assignment 1: Containerize an app and push it to the registry
Goal: Take a small application, write a house-style Dockerfile for it, build a small and secure image, and push that image to the lab's private registry at 10.100.100.6 — then prove it runs from the registry copy. Where: Any lab VM that has Docker installed (D...
Assignment 2: Compose a multi-service stack
Goal: Define and run a multi-service application with Docker Compose — your app from Assignment 1 plus a database — wired together on a user-defined network, with persistent data and proper readiness ordering, all from a single compose.yaml. Where: Any lab VM ...
Lesson: What Kubernetes Is and Why
What you'll learn The problems Kubernetes (often shortened to "k8s") solves that plain docker run cannot. What "declarative desired state" means and how the control loop keeps your apps running. The pieces of a cluster: the control plane and the worker nodes....
Lesson: Pods, Deployments, DaemonSets & StatefulSets
What you'll learn What a Pod is and why it is the smallest thing Kubernetes runs. How Deployments use ReplicaSets to keep copies running, scale, and roll out new versions. What a DaemonSet is and why "one per node" is useful. What a StatefulSet is and when st...
Lesson: One-Shot and Scheduled Work
What you'll learn The difference between work that runs forever and work that runs once and finishes. How a Job runs a task to completion and retries on failure. How completions and parallelism let a Job run many times. How a CronJob schedules Jobs on a timet...
Lesson: Sidecars & Init Containers
What you'll learn Why some Pods hold more than one container, and what those containers share. The sidecar pattern: a helper container that supports the main one. Init containers: setup steps that must finish before the app starts. How containers in a Pod tal...
Lesson: Services & Ingress
What you'll learn Why Pod IPs are not enough, and how labels/selectors connect things. The Service types: ClusterIP, NodePort, and LoadBalancer. What an Ingress does and how it routes by hostname/path. How the lab exposes apps through its Kong gateway. Skill...
Lesson: ConfigMaps & Secrets
What you'll learn Why configuration belongs outside your container image. How a ConfigMap stores non-secret settings, as env vars or mounted files. How a Secret stores sensitive values, and the base64 caveat. When to inject config as environment variables vs ...
Lesson: Volumes, PVs, PVCs & StorageClasses
What you'll learn The difference between ephemeral storage that dies with a Pod and persistent storage that survives. What PersistentVolumes (PV), PersistentVolumeClaims (PVC), and StorageClasses are. Access modes RWO vs RWX and why they matter. Reclaim polic...
Assignment 1: Deploy a stateless app and expose it
Goal: Deploy a stateless web app to the lab cluster as a Deployment, configure it with a ConfigMap, give it a stable internal address with a Service, and expose it on a hostname through the Kong ingress — the full stateless app chain. Where: From the Jumpbox, ...
Assignment 2: Run a stateful workload with a PVC
Goal: Run a workload that keeps its data by claiming persistent storage from the lab's NFS StorageClass, and prove the data survives the Pod being deleted and rescheduled. Where: From the Jumpbox (kubectl/helm/k9s ready). Persistent storage comes from the NFS ...
Lesson: Continuous Integration & Delivery
What you'll learn The difference between Continuous Integration (CI), Continuous Delivery, and Continuous Deployment — three terms that share the letters "CD" but mean different things. The standard stages of a pipeline (build → test → package → deploy) and w...
Lesson: Pipelines with GitHub Actions
What you'll learn The building blocks of GitHub Actions: workflows, jobs, steps, and runners — and how they nest. How triggers (the on: key) decide when a workflow runs. How to read and write a real workflow YAML file. How to build a container image and push ...
Lesson: Bitbucket Pipelines & Jenkins
What you'll learn What Bitbucket Pipelines is and how its YAML compares to GitHub Actions. The Jenkins server/agent model and what a "Jenkinsfile" pipeline looks like. When you'd reach for each tool, and the practical limitations and trade-offs of each versus...
Lesson: Pull-Based Deployment with Argo CD
What you'll learn The GitOps principle: Git as the single source of truth for what runs in your cluster. What an Argo CD Application is, what sync means, and how drift detection works. How pull-based deployment contrasts with the push-based CI you've seen so ...
Assignment 1: Build-and-push pipeline on the lab runner
Goal: Write a GitHub-Actions-style workflow that builds a container image from your app and pushes it to the lab's private registry, running for real on the lab's Gitea Actions runner. Where: A repository on the lab's Gitea server. The workflow executes on the...