Kubernetes 的相关内容非常庞大,作者团队能力有限,仓促成书的过程中难免出现纰漏。
如果在阅读本书的过程中,发现内容问题,还请使用勘误模板,留下您的宝贵意见。
Kubernetes 的相关内容非常庞大,作者团队能力有限,仓促成书的过程中难免出现纰漏。
如果在阅读本书的过程中,发现内容问题,还请使用勘误模板,留下您的宝贵意见。
p362
"主体"错误的输入成了"主题"
包括主体属性、资源属性、非资源属性这三个字段
151
倒数第10行,yaml语法错误,短横线“-”应该与“imagePullSecrets:”字段对齐。
664
第二段原文:Kubernetes的kubelet通过计算Pod中所有容器的Requests的总和来决定对Pod的调度。
此处的kubelet与kube-scheduler是否写混了呢?我认为“调度”是对于pod等资源被调度到某个node来说的,kubelet只能管理本node的资源对象,无法修改资源对象的node。
我觉得应该改为:Kubernetes的kub-scheduler通过计算Pod中所有容器的Requests的总和来决定对Pod的调度。
p362
"主体"错误的输入成了"主题"
216页
DayofMonth的有效范围为0~31的整数。
此处描述应该有误,正确的取值范围是1-31天。
https://kubernetes.io/zh/docs/concepts/workloads/controllers/cron-jobs/
266
使用kubectl create命令创建该headless Service而不是Storage Class
138
表 2.9 中nodes的字段重复出现了两次(第13行和第1616行),内容重复,建议合并去重
311
命令打印错误,kubectl get pods ,错写成kubectl get po
517页
“注意,PVC和PV都受限于Namespace,PVC在选择PV时受到Namespace的限制,只有相同Namespace中的PV才可能与PVC绑定” 这一说法不对,PV 是集群资源,没有namespace属性,任何namespace都可以使用
参考官网说明:
low-level resources, such as nodes and persistentVolumes, are not in any namespace.
原文中的 "2. 第175页最后1行:10257应改为10259"
勘误:第175页最后一行,并没有10257这个关键字
8
代码模块,image: mysql,实验后发现这个会拉去laster version,运行时有鉴权相关问题,为了demo简单起见,建议指定mysql版本,推荐使用image: mysql:5.6
699
699页第3段(未计算阴影部分)已说明initial-cluster-state参数值为exist,但阴影部分中写错为new,应用部分中应改为:
--initial-cluster-state="exist"
P66
/usr/lib/system/system 应该改为 /usr/lib/systemd/system
无
185
在185页中间部分 “查看 dapi-test-pod-volume 的日志” 的下一行出现错误。
应该将 “# k ...” 修改为 ”# kubectl ...“ 。
193
nginx-deployment.yaml文件缺少selector配置项,应在倒数第15行添加:
selector:
matchLabels:
app: nginx
否则无法创建Deployment,会提示missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec
的错误。(我使用的k8s版本:v1.14.1)
40
tomcat-service-multiple-ports.yaml的第7行至第10行,需往右再缩进两个空格,
否则执行kubectl create命令时,会提示解析错误:
error: error parsing tomcat_multipleport.yaml: error converting YAML to JSON: yaml: line 7: did not find expected key
198页
nodeAffinity 规则第三条: 如果nodeSelectorTrems中有多个matchExpressions 则节点必须满足所有matchExpressions才能运行该Pod。 实际上只要满足之一便可调度,实验结果如此,官方文档也是这么说的
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#node-affinity
386
第三个item应改为:OwnerReferencesPermissionEnforcement:... 。 文中Owner写成了Onwer
P338
对于资源对象的英文翻译也是Replication Controller,这部分存在着较大的误差。
第37页
则StatefulSet里的3个Pod的DNS名称为kafka-0.kafka、kafka-1.kafka、kafka-3.kafka,这些DNS名称可以直接在集群的配置文件中固定下来。
应该将 "Kafka-3.kafka” 改为 "kafka-2.kafka"
151、155
155页的livenessProbe的归属和151页的定义不一致
444
第444页第4段落(不包含代码)中的第2句原文如下:
然而,为什么不能只启动第1个Pod中的容器,而将第2个Pod中的容器关联到第1个容器呢?
我认为该句作者想表达的意思是,讨论“同一个Pod中” pause基础容器存在 的意义,并不存在跨Pod的情况,所以我觉得应该修改如下:
然而,为什么不能只启动1个容器,而将第2个容器关联到第1个容器呢?
216
第3、4行描述 “区别是第1位是分钟而不是秒” 有误,应该去掉。实际上Linux Cron的第1位也是分钟。而且Kuberentes的官方文档,描述也是“written in Cron format“。
第5行描述的格式应去掉最后的 Year
。
https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/
185页
第八行 Label列表->annotations列表
##下面半页, iptables-save显示的端口是59528,和下面描述的重定向端口33761不一致
P239
StatefulSet更新策略描述中,存在单词拼写错误
也将实现RollingUpdate、Paritioned、OnDelete
其中Paritioned拼写错误,正确应为:Partitioned
https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions
Hi Authors,
根据博文视点管理员邮件回复,找到了这里是提交勘误的地方,烦请更正以下错误(花了很多时间去记录、整理),谢谢。
这是我进入 K8s 世界的第一本书籍,从中学到了很多,也看到有些内容已经 Deprecated
,感谢作者们的心情付出。
祝再版错误更少,最新内容更多,越卖越好!
《K8s 权威指南》第4版-勘误列表:
page: 185 简写需要提前说明
中间:查看 dapi-xxx 日志:
k logs xxx => kubectl logs xxx
page: 357 单词错误
上面第 9 行:airpin-masquerade => hairpin-masquerade
page: 367 汉字错误
上面第 2 行:“运行访问” => “允许访问”
page: 385 单词错误
上面第 8 行:EventReateLimit => EventRateLimit
page: 390 单词错误
图中:Service Account->Tokens/Secret->两处TOCKEN => TOKEN
page: 393 单词错误
下半部分倒数第 10 行:(3)通过指定 Pod spc => spec
page: 394 单词错误
图中:TOCKEN => TOKEN
page: 401 设置 Group 不是 User
上半部分:(2)RunAsGroup: 第二点 MustRunAsNonRoot: securityContext
runAsUser 设置一个非 0 的用户 ID => runAsGroup 设置一个非0 的 Group ID
page: 414 中文字错误
中间部分:所有网站栈变量 => 所有网络栈变量
page: 416 编号有误
下面图片:右边 Namespace1 => Namespace2
page: 427 拼写错误
上面部分第四行:RPC1918 => RFC 1918(中间有空格)
page: 441 gw 错误
中间部分路由项:
gw 192.168.130 => gw 192.168.1.130
gw 192.168.131 => gw 192.168.1.131
page: 515 单词错误
底部倒数第二行:4个阶段(phaes)=> phase
page: 516 单复数错误
底部倒数第四行:request.storage => requests.storage
page: 538 单词错误
上面部分:“in-true”(树内)=> “in-tree”(树内)
page: 571 冒号改为 /
下半部分:apiVersion: extensions:v1beta1 => apiVersion: extensions/v1beta1
page: 590 单词大写、单数
最后一行:PersistentVolumeclaims => PersistentVolumeClaim
page: 598
下半部分:Fabric8 框架代码 IP 与 port 之间没有空格
"http://192.168.1.128: 8080" => "http://192.168.1.128:8080"
page: 621 单词错误
上面部分:stcatus => status
P.S. 可以建立一个读书反馈社群,方便有不懂的地方或勘误,可以及时提交反馈。
以上如是,盼复。
284页
第16行,关于Endpoint的配置文件内容:
- IP: 1.2.3.4
错误,IP 应为小写 ip
- ip: 1.2.3.4
416
Net_F_ETNS_Local改为netns_local
我的书版次为2019年6月第4版,2019年12月第5次印刷
650
Capacity的memory,Allocated的memory,两组数字应该是反了。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.