Errata
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 |
---|---|---|---|---|---|
Safari Books Online | In chapter 12 the random_generator service has: port: 80 targetPort: 8080 But in the exmple of environmnet variable I read: Example 12-2. Service-related environment variables set automatically in Pod RANDOM_GENERATOR_SERVICE_HOST=10.109.72.32 RANDOM_GENERATOR_SERVICE_PORT=8080 Is the port 8080 correct? Should it be 80? Thanks, Luigi Note from the Author or Editor: |
Luigi | Dec 20, 2019 | Apr 02, 2021 | |
Page 6 very end of the page, final bullet point |
I have ISBN 9781492050285, but it looks like it's actually 978-1-492-07665-0. Whichever. On page 6, at the bottom, in the final bullet point, it says, "A Pod ensures colocation of containers. Thanks to the collocation, containers..." I believe the word "colocation" is correct, and "collocation" (a different word) is not what was meant. Note from the Author or Editor: |
Todd Walton | Aug 11, 2020 | Apr 02, 2021 | |
Printed | Page 19 1st |
Speaking of "capacity" in the paragraph, it might be worth pointing out that this is allocatable capacity on the node, not node_capacity. Also a hint that InitContainers contribute to resource requirements (and thus scheduling) would be nice. Note from the Author or Editor: |
Michael Gasch | May 27, 2019 | Apr 02, 2021 |
Printed | Page 19 Best-Effort |
It is not true that best-effort pods are evicted before other classes, i.e. burstable. The memory pressure rank (and eviction) logic has changed since v1.9: https://github.com/kubernetes/kubernetes/blob/da31c50da191ae1c055069b936d9e549741e3e8a/pkg/kubelet/eviction/helpers.go#L667 Pods with high resource consumption above requests will be evicted first, which not necessarily implies they're best-effort. E.g. a burstable pod with low requests but high mem usage will be evicted first: https://github.com/kubernetes/kubernetes/blob/da31c50da191ae1c055069b936d9e549741e3e8a/pkg/kubelet/eviction/helpers.go#L524 Note from the Author or Editor: |
Michael Gasch | May 27, 2019 | Apr 02, 2021 |
Printed | Page 21 4th |
Related to my previous comment on QoS and eviction, the Kubelet eviction logic has changed from QoS only to more complex since v1.9: 1) usage > requests 2) priority 3) mem usage compared to requests https://github.com/kubernetes/kubernetes/blob/da31c50da191ae1c055069b936d9e549741e3e8a/pkg/kubelet/eviction/helpers.go#L667 Note from the Author or Editor: |
Michael Gasch | May 27, 2019 | Apr 02, 2021 |
Printed | Page 32 First paragraph |
The word "Secrete" should be "Secret". Note from the Author or Editor: |
ContinualIntegration.com | Feb 07, 2021 | Apr 02, 2021 |
Printed | Page 32 Fig 3-5 |
These diagrams would be a more clear if you add a vertical line to show when the release process starts and stops. This will make the whole section more clear. Also the diagram for canary release is wrong. At the end of the release the new release version line should go up and the old version should go down. Maybe you need to highlight a manual step that is required in the diagram. But as the diagram stands we never complete the release Note from the Author or Editor: |
Deepak Dhayatker | Feb 11, 2021 | Apr 02, 2021 |
Printed | Page 36 Second Paragraph |
In the second line of section "Process health Checks" you write 'If the container process is not running, the probing is restarted'. It should say 'If the container process is not running, the container is restarted' Note from the Author or Editor: |
Deepak Dhayatker | Feb 11, 2021 | Apr 02, 2021 |
Printed | Page 37 Last paragraph |
In the second last line it says "It is also useful for shielding the services from traffic...." I think It should say "It is also useful for shielding the container from traffic...." To shield the kubernetes service from traffic will be different. Note from the Author or Editor: |
Deepak Dhayatker | Feb 11, 2021 | Apr 02, 2021 |
Printed | Page 48 Second last Paragraph, Last Line |
The line says "Also keep in mind that if containers are running on a node that is not managed by kubernetes, reflected in the node capacity calculations by kubernetes." I believe you are missing 'the resources used by these containers are not ' after the comma. So it becomes "Also keep in mind that if containers are running on a node that is not managed by kubernetes, the resources used by these containers are not reflected in the node capacity calculations by kubernetes." Note from the Author or Editor: |
Deepak Dhayatker | Feb 12, 2021 | Apr 02, 2021 |
Printed | Page 55 Second Last paragragh , first line |
The line says " You can influence the placement based on the application's high availability and performance needs, but try not to limit the scheduler much and back your self into a corner where no more pods can be scheduled." I believe you are missing a 'too' "You can influence the placement based on the application's high availability and performance needs, but try not to limit the scheduler too much and back your self into a corner where no more pods can be scheduled." Note from the Author or Editor: |
Deepak Dhayatker | Feb 12, 2021 | Apr 02, 2021 |
Printed | Page 76 top |
A list has "Push". I do not see why it is in a list of ways to *reach* a pod. The thing described is a way to communicate from a pod to something else. Note from the Author or Editor: |
Continualintegration.com | Feb 07, 2021 | Apr 02, 2021 |
Printed | Page 83 Middle of the page |
Shouldn't the word "we's" be "we"? Note from the Author or Editor: |
Continualintegration.com | Feb 07, 2021 | Apr 02, 2021 |
Printed | Page 91 Third point |
The third numbered point says "Two pods members in the StatefulSet named ng-0 and ng-1" It should say "Two pods members in the StatefulSet named rg-0 and rg-1" According to yml shown in Example 11-1. Looking at metadata.name Note from the Author or Editor: |
Deepak Dhayatker | Feb 15, 2021 | Apr 02, 2021 |
Printed, PDF, ePub, Mobi, Safari Books Online, Other Digital Version | Page 95 last paragraph |
"When a node fails, it schedules new Pods on a different node unless Kubernetes can confirm that the Pods (and maybe the whole node) are shut down." I think, corresponding with the "at most once" guarantee of stateful sets described in the chapter, this should read: "When a node fails, it ***does not*** schedule new Pods on a different node unless Kubernetes can confirm that the Pods (and maybe the whole node) are shut down." Note from the Author or Editor: |
Michael Gasch | May 27, 2019 | Apr 02, 2021 |
Printed | Page 101 second paragraph - "Internal Service Discovery" section |
In the section, "Internal Service Discovery" it says, "As soon as we create a Deployment with a few replicas, the scheduler places the Pods on the suitable nodes, and each Pod gets a *cluster IP* address assigned before starting up.". This should read, "...each Pod gets a *Pod IP* address...", not a cluster IP. Note from the Author or Editor: |
Ryan Chase | Aug 05, 2020 | Apr 02, 2021 |
Printed | Page 119 code snippet top of the page |
looks like the YAML formatting got messed up in the code snippet: "resource: limits.memory" is not correctly intended IMHO. Note from the Author or Editor: |
Michael Gasch | May 27, 2019 | Apr 02, 2021 |
Page 138 More Information section |
I'm referring to the More Information section of the Adapter pattern. The second link titled The Distributed System Toolkit: Container Patterns for Modular Distributed System Design points to a private YouTube video https://www.youtube.com/watch?v=Ph3t8jIt894 Note from the Author or Editor: |
Daniel Pacak | Mar 08, 2020 | Apr 02, 2021 | |
Printed | Page 149 second paragraph from top |
The phrase "The patters Configuration Resource" should say "The patterns Configuration Resource". Note from the Author or Editor: |
Continualintegration.com | Feb 07, 2021 | Apr 02, 2021 |
Printed | Page 153 Second paragraph and the Example 19-2 |
In the second paragraph on the last line you say " For the preceding example, the equivalent kubectl command looks like that in Example 19-2. And the Example 19-2 has this kubectl create cm spring-boot-config \ --from-literal=JAVA_OPTIONS=-Djava.security.egd=file:/dev/urandom \ --from-file=application.properties This does not match yml in Example 19-1 It should say kubectl create cm random-generator-config \ --from-literal=PATTERN="Configuration Resource" \ --from-literal=EXTRA_OPTIONS="high-secure,native" \ --from-literal=SEED="432576345" \ --from-file=application.properties Note from the Author or Editor: |
Deepak Dhayatker | Feb 21, 2021 | Apr 02, 2021 |
Page 154 Pre last paragraph |
It is said: The configuration in Example 19-1 that is mounted as a volume results in two files ..." I think it should say four files instead (EXTRA_OPTIONS and SEED are not being considered...by mistake) Note from the Author or Editor: |
Antonio Alonso | Nov 21, 2019 | Apr 02, 2021 | |
Printed | Page 156 middle of page |
The word "limt" should be "limit". Note from the Author or Editor: |
Continualintegration.com | Feb 07, 2021 | Apr 02, 2021 |
Printed | Page 161 Figure 20-2 |
In the diagram, for the box labelled Application container the folder is value wrong. It currently says '/var/config/ but it should say '/config'. This is based on the text in the previous paragraph and yml code in Example 20-6 under containers.volumeMounts.mounthpath Note from the Author or Editor: |
Deepak Dhayatker | Feb 21, 2021 | Apr 02, 2021 |
Printed, PDF, ePub, Mobi, Safari Books Online, Other Digital Version | Page 208 last paragraph in "custom metrics" |
Instead of ".spec.metrics.resource[*].type" it must be ".spec.metrics.resource[:].type" like in the paragraph above. Note from the Author or Editor: |
Anonymous | Apr 18, 2019 | Apr 02, 2021 |
Printed | Page 210 last paragraph |
"which influences where the managing Pods will be scheduled": Should be either "where the *managed* Pods will be scheduled" or just "where the Pods will be scheduled" ---- Fixed in source (2019-12-12) |
![]() Roland Huß |
May 05, 2019 | Apr 02, 2021 |
Printed | Page 226 Third paragraph from the bottom |
The word "thisi" should be "this". Note from the Author or Editor: |
Continualintegration.com | Feb 07, 2021 | Apr 02, 2021 |