Advanced Search
Search Results
228 total results found
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 ...
Module 8 — CI/CD
Automate build→test→deploy: CI/CD concepts, GitHub Actions on the lab runner, Bitbucket Pipelines and Jenkins at a glance, and GitOps with Argo CD.
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...
Assignment 2: GitOps-deploy your app with Argo CD
Goal: Use Argo CD to deploy the image you built in Assignment 1 onto the lab's live Kubernetes cluster, the pull-based GitOps way — without ever running kubectl apply against production yourself. Where: A Git repo on the lab's Gitea server holds your Kubernete...
Module 9 — Infrastructure as Code
Define infrastructure in version-controlled files: Terraform (provisioning), Ansible (configuration), cloud-init (first-boot), and Pulumi — and when to use each.
Lesson: What Infrastructure as Code Means
What you'll learn The difference between configuring servers by hand and defining them in code. What "declarative" and "imperative" mean, and why declarative tools dominate IaC. Why idempotency and state matter, with plain-language definitions. The three jobs...