I passed LPIC-305

Nice to meet you, I'm Shirasaka, a muscle training engineer in the System Solutions Department

Summer has officially begun and it's time for strength training, so I'm excited

This may be a sudden question, but do you all know about LPIC?

It is one of the most well-known IT qualifications, and I'm sure many engineers have taken the exam

Last year, Level 3 was revised, abolishing LPIC304 and splitting it into 305 (Virtualization and Containerization) and 306 (High Availability and Storage Clusters)

Since the content of 305 was related to containers, which I like, I took the exam last month and would like to share with you what I studied to pass and my impressions of the exam!

1. Overview of LPIC-305

The main exam scope covers virtualization technologies such as KVM, container technologies such as Docker, and provisioning tools such as Packer

Questions included how KVM and Xen achieve virtualization, concepts behind container technology such as namespaces, and the actual behavior of Docker and Kubernetes

*Please refer to the official website below for a detailed overview

https://www.lpi.org/en/exam-305-objectives

Also, since this is a new exam established in 2022, there are no ping-t or black books published like the previous LPIC-304 (as of July 2023)

Therefore, when studying for exams, you need to memorize important words in your notebook and actually use your hands to check the behavior

I think it's best to set aside at least a month to study

2. What I studied for the exam

Broadly speaking, I focused on four things, so I will explain each one below

・Repeatedly solve LPIC-304 problem sets using ping-t

・Study the basic concepts of containers

・Learn Docker, LXD, and Kubernetes through hands-on experience

・Studying Packer etc

Repeatedly solving LPIC-304 practice questions with ping-t

Since the general scope of virtualization technology overlapped between LPIC-305 and 304, I focused on studying only that part using ping-t, and was able to consistently score 100%

In particular, at first I had no idea what Xen and QEMU were, so I made sure to repeatedly read the illustrations in the ping-t explanations every time I solved a problem

In addition to the above, I memorized specific steps such as emulating hardware with QEMU and supporting CPU virtualization with KVM until I could recite them

As a result, I was able to use the process of elimination to eliminate words that were not related to the content of the questions in the actual exam

Learn the basic concepts of containers

Since there are no exam preparation books or dedicated websites available for this test, I first compiled the important terms listed on the official website, then dug deeper by searching Docker books and the Internet

In particular, the most basic functions for implementing container technology, such as "namespace", "cgroups", "capability", and "seccomp", have been studied in detail in several books

After actually building the Docker environment, I created a namespace using the nsenter and unshare commands

In addition to the above, I studied in great detail the relationship between runc and containerd, and the behavior when a Kubernetes pod goes down

Learn Docker, LXD, and Kubernetes by doing

Since this test was quite heavy, I created a Docker and LXD environment on a local Vagrant + VirtualBox and simply created and deleted containers repeatedly

The exam will ask questions about the contents of the Dockerfile, which command to mount a local directory and start a container, etc

I tried to execute the run command under various assumptions and also memorized relatively commonly used options such as --volumes-from

I also made sure to memorize the default path to the daemon.json file, which allows you to specify various Docker options

▼ Specify the --volumes-from option

 docker run --volumes-from 【container name】 -d -p 8080:80 centos7:latest 

Next, although it is less familiar than Docker, we also studied LXD containers, which are virtual machines that have been turned into containers. We learned a wide range of things, such as commands to pull OS images and setting up port forwarding so that pages inside the container can be viewed from a browser

▼ Port forwarding settings

lxc config device add centos http proxy listen=tcp:127.0.0.1:50005 connect=tcp:【Container IP】:80 bind=host

Since building your own Kubernetes environment can be somewhat complicated, we used Docker Desktop to practice commands and check their behavior

Specifically, we created a pod containing multiple containers, and demonstrated what happens when one of the containers is deleted, as well as creating a WordPress page by combining multiple pods

Studying Packer et al

In addition to the above, I also studied "Packer", "cloud-init", and "Docker Swarm" by getting my hands dirty

For example, cloud-init can be used in combination with LXD containers, with the cloud-init file specified in the config file to start the LXD container

▼ Specify cloud-init file in config file to start LXD container

lxc config set ubuntu-container user.user-data - < cloud-init-config.yml

 

Also, since Docker Swarm is not as complicated to set up as Kubernetes, I set up the environment myself, verified the commands to pull Docker images, and checked whether containers are automatically created on another worker node when a worker node goes down

However, since the test weight here is not that high, I only touched it lightly

The above is a summary of what I learned, but I also tried to study comprehensively other things, such as changing the capability of Docker containers to limit the services that can be run

The study period is approximately one and a half months

3. Take the exam

Here are my thoughts on taking the exam:

・You can get through the scope of virtualization technology by repeatedly studying past questions from LPIC-304

・Learn the basic concepts of containers and Docker by simply getting hands-on and learning various options

・There is no need to dig too deep into tests with low weight

Of the above, it seems like about one-third of the questions were about Docker (from personal experience), so if you study with the determination to fully understand it, I think you won't find any words you don't understand

Also, there will be one or two questions on each of the lower-level items in the exam, so make sure to remember basic commands such as the build command

4. Summary

This exam was a good opportunity to learn about the basic concepts of virtualization and containers

And because I was able to learn by actually doing the things, the study itself wasn't a chore; rather, I was able to learn new knowledge while having fun

There is little information about LPIC-305, so you will be learning by trial and error, so I hope this article will be of some help to you

If you found this article useful, please click [Like]!
30
Loading...
30 votes, average: 1.00 / 130
5,836
X Facebook Hatena Bookmark pocket

The person who wrote this article

About the author

Shirasaka

I'm a Muscle Hula Engineer in the System Solutions Department.
My favorite exercise for home training is the deadlift.
My latest obsession is eating chikuwa to replenish my protein.