- Lab
- A Cloud Guru
CKAD Practice Exam - Part 2
This lab is designed to help prepare for the kinds of tasks and scenarios encountered during the Certified Kubernetes Application Developer (CKAD) exam. In this lab, we will practice working with multi-container pods by creating a pod that implements an adapter design pattern. We will create a pod that generates some log output and uses an adapter pod to format the output.
Path Info
Table of Contents
-
Challenge
Create a ConfigMap to Store the fluentd Configuration
-
Switch to
root
so you can read the config file:sudo -i
-
Get the contents of the config file:
cat /usr/ckad/fluent.conf
-
Create a descriptor for the ConfigMap with
vi fluentd-config.yml
:apiVersion: v1 kind: ConfigMap metadata: name: fluentd-config data: fluent.conf: | <source> type tail format none path /var/log/1.log pos_file /var/log/1.log.pos tag count.format1 </source> <source> type tail format none path /var/log/2.log pos_file /var/log/2.log.pos tag count.format2 </source> <match **> @type file path /var/logout/count time_slice_format %Y%m%d%H%M%S flush_interval 5s log_level trace </match>
-
Create the ConfigMap in the cluster:
kubectl apply -f fluentd-config.yml
-
-
Challenge
Create the Pod Descriptor
-
Switch to
root
so you can work with the descriptor file:sudo -i
-
Edit the descriptor file with
vi /usr/ckad/adapter-pod.yml
:apiVersion: v1 kind: Pod metadata: name: counter spec: containers: - name: count image: busybox args: - /bin/sh - -c - > i=0; while true; do echo "$i: $(date)" >> /var/log/1.log; echo "$(date) INFO $i" >> /var/log/2.log; i=$((i+1)); sleep 1; done volumeMounts: - name: varlog mountPath: /var/log - name: adapter image: k8s.gcr.io/fluentd-gcp:1.30 env: - name: FLUENTD_ARGS value: -c /fluentd/etc/fluent.conf volumeMounts: - name: varlog mountPath: /var/log - name: config-volume mountPath: /fluentd/etc - name: logout mountPath: /var/logout volumes: - name: varlog emptyDir: {} - name: config-volume configMap: name: fluentd-config - name: logout hostPath: path: /usr/ckad/log_output
-
-
Challenge
Create the Pod in the Cluster and Make Sure It Is Working
-
Create the pod:
kubectl apply -f /usr/ckad/adapter-pod.yml
-
Verify that the pod starts up:
kubectl get pod counter
-
You can also verify that everything is working by checking the output directory on the worker node. Log in to the worker from the master:
ssh [email protected]
-
Look for the
fluentd
output files in the output directory:ls /usr/ckad/log_output
-
What's a lab?
Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.
Provided environment for hands-on practice
We will provide the credentials and environment necessary for you to practice right within your browser.
Guided walkthrough
Follow along with the author’s guided walkthrough and build something new in your provided environment!
Did you know?
On average, you retain 75% more of your learning if you get time for practice.