Errata

Certified Kubernetes Application Developer (CKAD) Study Guide

Errata for Certified Kubernetes Application Developer (CKAD) Study Guide

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Retrieving high-level information
First command line output of "kubectl get pods"

The output shows "pod/misbehaving-pod", however, when running the command "kubectl get pods", the output should not include the "pod/" prefix. The output should look, as follows:

```
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
misbehaving-pod 0/1 ErrImagePull 0 2s
```

Benjamin Muschko
Benjamin Muschko
 
Apr 20, 2023 
Page Ch 6 Horizontal Pod Autoscaler
Figure 6-7 Autoscaling a Deployment horizontally

The diagram has added the CPU % across the pods in the deployment instead of calculating the average. 22% and 55% CPU = 38.5% average, not 80%. Kubernetes HPA docs state: "When a targetAverageValue or targetAverageUtilization is specified, the currentMetricValue is computed by taking the average of the given metric across all Pods in the HorizontalPodAutoscaler's scale target."

Note from the Author or Editor:
The numbers in the example figure are not correct as-is. They need to be changed as follows:

1. Pod 1: 32%, Pod 2: 12%, 22% average
2. Pod 1: 66%, Pod 2: 89%, 77.5% average
3. Pod 1: 31%, Pod 2: 12%, Pod 3: 14%, 19% average

Grant Young  Jun 14, 2023 
Page Ch 6, Job Operation Types
2nd Paragraph

Mentions adjusting spec.template.spec.completions & spec.template.spec.parallelism, but paths are actually spec.completions & spec.parallelism.

Note from the Author or Editor:
Thanks. You are absolutely correct. For reference, those attributes have been described here: https://kubernetes.io/docs/concepts/workloads/controllers/job/#parallel-jobs

Grant Young  Jun 19, 2023 
Page 3
Creating a ResourceQuota

Chapter: ch03.html#configuration

Paragraph: Creating a ResourceQuota

There are wrong description about "Example 3-10" yaml to create ResourceQuota

Current: Define the minimum resources requested by a Pod to 1 CPU and 1024m of RAM.
Correct: requests.cpu: "1" and requests.memory: 1024m => These configs are the maximum of CPU requests and Memory requests across all pods; Document from kubernetest.io: "requests.cpu: Across all pods in a non-terminal state, the sum of CPU requests cannot exceed this value."

Current: Define the maximum resources used by a Pod to 4 CPUs and 4096m of RAM.
Correct: limits.cpu: "4" and limits.memory: 4096m => These configs are the maximum of CPU limits and Memory limits across all pods; Document from kubernetest.io: "limits.cpu: Across all pods in a non-terminal state, the sum of CPU limits cannot exceed this value.
"

Note from the Author or Editor:
Thanks for reporting this. You are correct. I am going to fix this in the next edition of the book.

Duy Nguyen  Mar 28, 2021 
Printed
Page 14
Figure 2-2

The line "resources {}" on the right hand side "YAML manifest" isn't correct. It is missing the colon character. It should say "resources: {}".

Benjamin Muschko
Benjamin Muschko
 
Nov 01, 2022 
Printed
Page 69
3nd paragraph

"talking" instead of "ttalking". Additional letter "t".

Benjamin Muschko
Benjamin Muschko
 
Mar 04, 2023 
Printed
Page 69
Second paragraph, last sentence

"We’ll round out the chapter by ttalking about monitoring cluster nodes and Pods."

There's a typo in the word "ttalking". The word has an additional "t" letter.

Benjamin Muschko
Benjamin Muschko
 
May 08, 2023 
Printed
Page 76
Paragraph "Debugging YAML Manifests"

The Kubernetes ecosystem is constantly changing and evolving. Unfortunately, the webpage "Kube YAML" for validating Kubernetes YAML manifests has been taken down. The next edition of the book will feature a different tool that fulfills the requirement.

Benjamin Muschko
Benjamin Muschko
 
Oct 26, 2022 
Page 82
4th paragraph

In the sentence, 'By default, the Service type is ClusterIP, which means that a Pod can only be reached through the Service if queried from the same node inside of the cluster.'
It should say, 'from the nodes inside of the same cluster', instead.

Note from the Author or Editor:
Thanks for your comment. That definitely sounds more correct.

Chi Kim  Apr 01, 2024 
Page 84
3rd paragraph

The book suggests that the Metrics Server is used by external monitoring tools. According to its documentation it’s only supposed to be used for autoscaling purposes. The /metrics/resource endpoint is for other purposes.

Note from the Author or Editor:
There are other uses cases than just autoscaling that come into play for the metrics server, e.g. reaction to resource boundaries.

According to https://kubernetes.io/docs/concepts/cluster-administration/system-metrics/, you are right that external systems will use the system component's /metrics endpoint for parsing the metrics data.

Taco Witte  Mar 27, 2023 
Printed
Page 88
Figure 6-1

The "frontend" Pod should use the label "tier: frontend". The "backend" Pod should use the label "tier: backend". At the moment, the assignment is inverted and confusing.

Benjamin Muschko
Benjamin Muschko
 
Feb 08, 2023 
Printed
Page 93
First paragraph under "Declaring Annotations"

The sentence "You will have to start by writing a YAML manifest and adding the desired annotations under metadata.annotation, as shown in Example 6-2." uses an incorrect attribute name. The attribute name should be "metadata.annotations".

Benjamin Muschko
Benjamin Muschko
 
Jul 29, 2023 
Printed
Page 96
Console command output under "Rendering Deployment Details"

Some of the abbreviations to indicate hidden console output text, usually rendered as "..." (three dots), have been rendered as "...." (four dots). The three dot-notation should always be used.

Benjamin Muschko
Benjamin Muschko
 
Oct 26, 2022 
Printed
Page 100
Console output text at the beginning of the page

All commands execution lines in the book have been rendered in bold. The line "$ kubectl get replicasets" should have been rendered in bold. At this time, it is formatted as regular text. This could make the reader believe that the line is output text instead of a command.

Benjamin Muschko
Benjamin Muschko
 
Oct 26, 2022 
Printed
Page 122
Second terminal command, middle of the page

The Pod run by the command is called "coffeeshop". The last sentence in the command output, pod "coffeshop" deleted, is missing a second "e" letter.

Benjamin Muschko
Benjamin Muschko
 
May 07, 2023 
Printed
Page 130
Table 8-1

The last row of the table (persistentVolumeClaim) contains a typo in the sentence "Fore more information, see ...". The first word should be "For" without the "e".

Benjamin Muschko
Benjamin Muschko
 
Jul 10, 2023 
Printed
Page 133
Creating PersistentVolumes, first sentence

> A PersistentVolume can only be created using the mainfest-first approach.

The word should be "manifest".

Benjamin Muschko
Benjamin Muschko
 
Oct 24, 2022