115 lines
4.0 KiB
Markdown
115 lines
4.0 KiB
Markdown
---
|
||
id: act-02-working-with-pods-lab
|
||
title: "Unit 02 — Working with Pods"
|
||
mode: lab
|
||
open_at: "2026-02-01T00:00:00+01:00"
|
||
close_at: "2026-12-31T23:59:59+01:00"
|
||
retakes_enabled: true
|
||
max_attempts: 999
|
||
grade_max: 100
|
||
---
|
||
|
||
# Unit 02 — Working with Pods
|
||
|
||
## T1
|
||
Type: essay
|
||
Points: 10
|
||
Prompt: Explain why Pods are called “the atomic unit of scheduling” and why we typically avoid deploying Pods directly (mention what Controllers provide).
|
||
Refs:
|
||
- mat-03-working-with-pods#previously
|
||
- mat-03-working-with-pods#static-pods-vs-controllers
|
||
Rubric:
|
||
- Correctly explains “atomic unit of scheduling” (4)
|
||
- Explains why direct Pods are limited and what Controllers add (6)
|
||
|
||
## T2
|
||
Type: essay
|
||
Points: 15
|
||
Prompt: List at least 6 examples of “pod augmentation data” and explain (one sentence each) why they are useful.
|
||
Refs:
|
||
- mat-03-working-with-pods#pod-augmentation-data
|
||
- mat-03-working-with-pods#some-pod-features-why-they-matter
|
||
Rubric:
|
||
- ≥6 correct items listed (9)
|
||
- Each item has a correct purpose statement (6)
|
||
|
||
## T3
|
||
Type: essay
|
||
Points: 10
|
||
Prompt: Describe the high-level process of deploying a Pod from manifest to running state (use numbered steps).
|
||
Refs:
|
||
- mat-03-working-with-pods#deploying-pods-high-level
|
||
Rubric:
|
||
- Includes manifest creation + posting to API (3)
|
||
- Includes API authz/validation and scheduling (4)
|
||
- Includes kubelet monitoring/execution (3)
|
||
|
||
## T4
|
||
Type: essay
|
||
Points: 15
|
||
Prompt: Explain how networking works for single-container vs multi-container Pods, including how containers communicate inside the same Pod.
|
||
Refs:
|
||
- mat-04-pod-networking-lifecycle-and-patterns#pods-and-shared-networking
|
||
Rubric:
|
||
- Correctly states shared IP/ports/routing in multi-container pods (7)
|
||
- Correctly explains localhost communication within a pod (8)
|
||
|
||
## T5
|
||
Type: essay
|
||
Points: 10
|
||
Prompt: Summarize the Pod lifecycle phases and provide guidance on restartPolicy values for short-lived vs long-lived apps.
|
||
Refs:
|
||
- mat-04-pod-networking-lifecycle-and-patterns#pod-lifecycle
|
||
- mat-04-pod-networking-lifecycle-and-patterns#pod-restart-policy
|
||
Rubric:
|
||
- Lifecycle phases described correctly (5)
|
||
- Restart policy guidance correct (5)
|
||
|
||
## T6
|
||
Type: essay
|
||
Points: 10
|
||
Prompt: Define Pod immutability and explain what you should do when you need to change a Pod’s metadata.
|
||
Refs:
|
||
- mat-04-pod-networking-lifecycle-and-patterns#pod-immutability
|
||
Rubric:
|
||
- Correctly defines immutability (5)
|
||
- Correctly states “create a new Pod” approach (5)
|
||
|
||
## T7
|
||
Type: essay
|
||
Points: 10
|
||
Prompt: Describe at least two multi-container patterns (sidecar and init container) and give one realistic use case for each.
|
||
Refs:
|
||
- mat-04-pod-networking-lifecycle-and-patterns#multi-container-pod-patterns
|
||
Rubric:
|
||
- Correct pattern definitions (6)
|
||
- Appropriate use cases (4)
|
||
|
||
## T8
|
||
Type: file
|
||
Points: 20
|
||
Prompt: Create a lab write-up in @solutions/unit02-lab.md that includes: (1) creating a fresh k3d cluster (1 server + 1 agent), (2) deploying a Pod using a manifest, (3) verifying with kubectl get/watch, (4) inspecting with -o wide and -o yaml, (5) using kubectl describe, logs, and exec, and (6) cleaning up the cluster.
|
||
Refs:
|
||
- mat-05-kubectl-for-pods#apply-a-manifest
|
||
- mat-05-kubectl-for-pods#inspect-pods-with-kubectl-get
|
||
- mat-05-kubectl-for-pods#kubectl-describe
|
||
- mat-05-kubectl-for-pods#kubectl-logs
|
||
- mat-05-kubectl-for-pods#kubectl-exec
|
||
Rubric:
|
||
- Shows correct kubectl apply/get/watch usage (6)
|
||
- Includes -o wide and -o yaml output snippets (5)
|
||
- Includes describe + logs + exec evidence (6)
|
||
- Includes cluster delete and brief reflection (3)
|
||
|
||
## T9
|
||
Type: file
|
||
Points: 10
|
||
Prompt: Homework: Create an nginx image with static content, upload it to DockerHub, write a Pod manifest that uses it, deploy it to your cluster, and watch it being deployed. Submit a short report in @solutions/unit02-homework.md describing commands used and evidence (screenshots or pasted outputs).
|
||
Refs:
|
||
- mat-03-working-with-pods#deploying-pods-high-level
|
||
- mat-05-kubectl-for-pods#apply-a-manifest
|
||
Rubric:
|
||
- Describes image build and push steps (4)
|
||
- Pod manifest described correctly (3)
|
||
- Deployment + watch evidence included (3)
|