LPIC-3 Virtualization and Containerization study plan
LPIC-3 Virtualization and Containerization · Give each week a clear focus.
8 weeks · About 6 hours per week
Virtualization
Install the KVM/QEMU/libvirt stack on a spare host and run virt-host-validate until every check passes and /dev/kvm is accessible to your user.
Create a Linux bridge for guest traffic and install two guests from an ISO using virt-install, saving the exact command lines you used.
Translate every objective in Domain 1 into a lab artifact you still owe, and rank the gaps by how often they appear in practice (storage, networking, migration, tuning).
Practise virsh basics until you can start, stop, autostart, console into, and undefine a domain without consulting notes.
Your checkpoint
A notes file containing virt-host-validate output, two SSH-reachable guests, and a ranked Domain 1 gap checklist with at least 10 entries.
Virtualization
Create qcow2 and raw disks with qemu-img, convert between formats, and resize a guest disk so the guest sees the new size after a reboot.
Configure an LVM thin pool as a libvirt storage pool and define a third VM directly on it, confirming the volume appears in virsh vol-list.
Take an internal snapshot, corrupt the guest, then revert it; repeat the exercise with an external snapshot and merge it back using blockcommit.
Build three network paths for guests (NAT, routed bridge, macvtap) and verify each with ip a, ip r, and a ping from inside the guest.
Enable vhost-net on a guest interface and confirm the change with virsh dumpxml.
Your checkpoint
A reproducible shell script that creates a storage pool, a VM on thin LVM, a snapshot, and a revert, plus a table comparing the three network modes and their host-side commands.
Virtualization
Tune guest memory with ballooning and static hugepages, then read the effect from inside the guest via free and /proc/meminfo.
Pin vCPUs to host cores and set an explicit CPU topology in the domain XML, then verify the mapping with virsh vcpuinfo.
Migrate a running guest between two libvirt hosts, first with shared storage and then with block migration, and record what breaks each time.
Dump, hand-edit, and redefine domain XML to add a device (second disk or NIC) without recreating the VM.
Break one VM on purpose (wrong bridge, missing disk path) and diagnose it from libvirtd logs and virsh domstate.
Your checkpoint
A migration run log with source and destination XML, elapsed times for both migration types, and a short write-up of the failure modes you hit and how you fixed them.
Virtualization & Containerization
Answer 30 self-written questions on Domain 1 and score above 80 percent before moving on to containers.
Install a container engine and run a container that mounts a host directory and publishes a port, confirming both from the host.
Compare LXC/LXD and application containers by launching one LXD system container and one Docker container and documenting where their isolation and lifecycle differ.
Explain, in your own notes, how namespaces and cgroups v2 produce the isolation you just observed.
Your checkpoint
A closed-book Domain 1 self-test scored and corrected, plus a one-page comparison of LXD system containers versus Docker application containers.
Containerization
Write a multi-stage Dockerfile that builds a small image, and shrink it by switching the base or stripping build tooling.
Push and pull your image through a local registry container, tagging with both a version and latest.
Inspect a running container's namespaces with lsns and nsenter, and cap its memory and CPU with cgroup v2 limits that you verify under load.
Change the storage driver or volume layout so container data survives container removal and explain the difference between a volume and a bind mount.
Prune dangling images, stopped containers, and unused volumes, and document the disk reclaimed.
Your checkpoint
A versioned Dockerfile in a git repo, an image published to a local registry, and a measurements note showing image size before and after optimisation plus cgroup limit behaviour.
Containerization
Build a user-defined bridge network and a container that resolves peers by name across it, then contrast that with the default bridge.
Harden a container by dropping Linux capabilities, applying a seccomp or AppArmor profile, and running it as a non-root user.
Run a rootless container as an unprivileged user and note which host settings were required.
Use LXD profiles to apply CPU, memory, and disk quotas to a system container and verify them from inside.
Diagnose a container that exits immediately by reading its logs, exit code, and inspect output.
Your checkpoint
A security checklist for container deployment in which every item is backed by a command you actually ran and its observed output.
Container Orchestration
Describe a three-service stack (web, app, database) in Compose, bring it up and down, and persist database data through a named volume and a .env file.
Create a single-node cluster with kubeadm and schedule your week-5 image as a Deployment behind a Service.
Inspect and modify running objects with kubectl get, describe, logs, and exec, and roll back a bad image update.
Inject configuration through a ConfigMap and a Secret and confirm the pod picks them up.
Compare Swarm services and Kubernetes objects by deploying the same image on both and tabulating the differences.
Your checkpoint
A working Compose file and a Kubernetes manifest set for the same three-service stack, both runnable from a README, plus the Swarm-versus-Kubernetes comparison table.
Container Orchestration & Virtualization & Containerization
Expose a stateful workload with persistent storage in Kubernetes and scale it up and back down while watching pod status.
Break and repair a cluster or stack failure (unschedulable pod, bad image pull, crashed service) and write the diagnostic path you followed.
Sit a full timed mock exam weighted 34/33/33 across the three domains and score it objectively.
Re-drill only the objectives you missed, re-running the related labs rather than re-reading notes.
Your checkpoint
A timed mock exam result with per-domain scores and a remediation log for every miss, closing out any gap that scored below 75 percent.
Milestones
Week 2: You can create, snapshot, revert, and network a KVM guest from the command line without notes, and you have a script that repeats it from scratch.
Week 4: Domain 1 self-test scored at or above 80 percent, and at least one container runs with a bind mount and a published port.
Week 6: You can build, publish, network, and harden a container image, and you have run an unprivileged rootless container successfully.
Week 8: Mock exam complete with every domain at or above 75 percent and a written remediation log proving each miss was re-drilled in the lab.