具体描述
在本书中,作者提供了在开发环境和产品环境中安装、使用Kubernetes以及与之交互的具体解决方案。并介绍了如何改造系统来满足具体的需求,以及熟悉Kubernetes更广泛的生态环境。每个章节介绍的技巧都以常用的“问题-解决方案-讨论”的过程来描述。
·创建Kubernetes集群。
·使用Kubernetes命令行界面。
·管理基本的workload类型。
·使用服务。
·探索Kubernetes API。
·管理有状态的非云端原生应用。
·使用卷与配置数据。
·集群别与应用程序别的规模伸缩。
·应用程序的安全。
·监视与日志。
·维护与排除故障。
作者简介
Sébastien Goasguen是拥有20年开源经验的资深专家,而且还是Kubernetes早期的代码贡献者。他创建了Skippbox,这家创业公司开发了kompose和Cabin等Kubernetes工具。他目前在Bitnami担任高云科技总监。
Michael Hausenblas是Go、Kubernetes和Red Hat的OpenShift的先驱开发者,他曾在Red Hat帮助AppOps建立和运营分发服务。在Red Hat之前,Michael从业于Mesosphere、MapR,并在爱尔兰和澳大利亚的研究机构担任要职。
目录信息
前言 ..1
第1章 初识Kubernetes .9
1.1 无需安装即可使用Kubernetes ..9
1.2 安装Kubernetes的命令行界面和kubectl ..10
1.3 安装Minikube并运行本地的Kubernetes实例 12
1.4 在本地使用Minikube进行开发 ..14
1.5 在Minikube上运行应用程序 15
1.6 使用Minikube访问仪表盘 ..16
第2章 创建Kubernetes集群 ..20
2.1 安装kubeadm以创建Kubernetes集群 .20
2.2 使用kubeadm创建Kubernetes集群22
2.3 从GitHub上下载Kubernetes .24
2.4 下载客户端和服务器端可执行文件 ..25
2.5 使用hyperkube映像通过Docker运行Kubernetes主节点 26
2.6 编写systemd单元文件来运行Kubernetes的组件 ..29
2.7 在Google Kubernetes引擎上创建Kubernetes集群 ..32
2.8 在Azure容器服务上创建Kubernetes集群 .34
第3章 学习使用Kubernetes客户端 39
3.1 查看资源 39
3.2 删除资源 41
3.3 使用kubectl观察资源的变化 42
3.4 使用kubectl编辑资源 .43
3.5 通过kubectl解释资源和字段 44
第4章 创建与修改基础的工作负载 .46
4.1 通过kubectl run创建部署 ..46
4.2 通过清单文件创建对象 47
4.3 从零创建pod的清单文件 48
4.4 通过kubectl run创建部署 ..50
4.5 更新部署 54
第5章 使用服务 .58
5.1 通过创建服务来公布应用程序 ..59
5.2 验证服务的DNS注册项 .61
5.3 改变服务类型 62
5.4 在Minikube上配置ingress controller 64
5.5 从集群外部访问服务 ..65
第6章 探索Kubernetes的API与关键元数据 69
6.1 发现Kubernetes上API的访问点 .69
6.2 掌握Kubernetes清单文件的结构 .71
6.3 通过创建命名空间避免命名冲突 .73
6.4 设置命名空间的配额 ..74
6.5 给对象贴标签 75
6.6 使用标签进行查询 76
6.7 通过命令注解资源 78
第7章 管理具体的工作负载 ..80
7.1 运行批处理 .80
7.2 在Pod内按照计划时间运行任务 ..82
7.3 在每个节点上运行基础设施的服务 ..83
7.4 管理有状态的主从应用 85
7.5 影响Pod的启动行为 89
第8章 卷与配置数据 .91
8.1 通过本地卷在容器间交换数据 ..91
8.2 通过Secret类型的卷将API的访问密钥传递给pod .93
8.3 提供配置数据给应用程序 ..97
8.4 在Minkube内使用持久卷 .100
8.5 掌握Minikube上数据的持久性 104
8.6 在GKE上动态配置持久性存储空间..107
第9章 伸缩 109
9.1 部署的伸缩 ..110
9.2 在GKE中自动调整集群的大小 .110
9.3 在AWS中自动调整集群的大小 114
9.4 在GKE上使用pod的横向自动伸缩 114
第10章 安全 .118
10.1 赋予应用程序唯一的身份 .118
10.2 列举并查看访问控制信息 .121
10.3 控制资源的访问权限 125
10.4 加强pod的安全 ..128
第11章 监控与日志 130
11.1 访问容器的日志 130
11.2 使用存活探针修复失败状态 ..131
11.3 使用就绪探针来控制pod的访问流 ..133
11.4 向部署添加存活探针和就绪探针 ..134
11.5 在Minikube上激活Heapster监视资源 137
11.6 在Minikube上使用Prometheus 139
11.7 在Minikube上使用Elasticsearch-Fluentd-Kibana ..144
第12章 维护与故障排除 ..149
12.1 启用kubectl的自动补齐 .149
12.2 删除服务上的pod 150
12.3 从集群外部访问集群IP的服务 ..152
12.4 掌握并解析资源的状态 ..153
12.5 调试pod 155
12.6 集群状态的详细快照 160
12.7 添加Kubernetes工作节点 .161
12.8 抽出Kubernetes节点以实施维护 163
12.9 管理etcd ..165
第13章 Kubernetes开发 .168
13.1 编译源代码 168
13.2 编译特定的组件 169
13.3 如何使用Python客户端与Kubernetes API交互..170
13.4 使用自定义的资源扩展API ..171
第14章 Kubernetes的生态系统 177
14.1 安装Helm(Kubernetes的包管理器) ..177
14.2 利用Helm安装应用程序 .178
14.3 利用Helm创建自己的图表打包应用程序 180
14.4 将Docker Compose文件转换成Kubernetes清单文件 ..182
14.5 使用kubicorn创建Kubernetes集群 ..183
14.6 在版本控制中保存加密的secret .188
14.7 利用kubeless部署函数 191
附录A 资源 195
· · · · · · (收起)
读后感
用户评价
作为一名初次接触Kubernetes的运维新人,我抱着忐忑的心情买下了《Kubernetes经典实例》,生怕自己无法理解那些复杂的概念。然而,这本书彻底打消了我的顾虑!它的语言风格非常平实易懂,没有使用大量晦涩难懂的专业术语,即使是我这样的新手,也能轻松跟上作者的思路。书中每一个章节都像是为我量身定制的“小课堂”,从Kubernetes的起源、发展,到它在现代云原生架构中的地位,都进行了深入浅出的介绍。最让我惊喜的是,书中列举的那些“经典实例”,真的非常贴合实际工作场景。我特别喜欢关于“微服务化改造”的那一部分,作者一步步地演示了如何将传统的单体应用拆分成多个微服务,并使用Kubernetes进行有效的编排和管理。这对于我们公司正在进行的数字化转型非常有借鉴意义。而且,书中关于“CI/CD流水线构建”的章节,也为我提供了很多宝贵的实践经验,让我能够更有效地实现应用的持续集成和持续交付。读完这本书,我感觉自己对Kubernetes的理解不再是停留在表面,而是真正掌握了其核心思想和实践方法。这本书不仅仅是一本技术书籍,更像是一位经验丰富的导师,带领我一步步走向Kubernetes的世界。
这本《Kubernetes经典实例》简直就是为我量身打造的!作为一名在微服务领域摸爬滚打多年的开发者,我一直对Kubernetes这个强大的容器编排工具心向往之,但又苦于不知从何下手。市面上虽然有不少Kubernetes的书籍,但往往要么过于理论化,要么例子太过于简单,难以触及实际应用中的复杂场景。直到我翻开这本《Kubernetes经典实例》,我才找到了那束照亮我前行道路的光。书中详尽的章节,从最基础的Pod、Deployment、Service讲起,逐步深入到StatefulSet、DaemonSet、Ingress等核心组件,每一个概念的讲解都辅以清晰易懂的架构图和实际操作步骤。我尤其喜欢书中针对不同场景设计的“经典实例”,例如如何搭建高可用的Kubernetes集群、如何实现应用的自动化部署和滚动更新、如何进行细粒度的网络策略配置等等。这些实例不仅仅是简单的代码堆砌,更是将理论知识与实战经验巧妙结合,让我能够边学边练,快速掌握Kubernetes的核心技能。而且,作者在书中对于一些常见问题的排查和解决也提供了宝贵的建议,这对于我们在实际工作中遇到疑难杂症时,能够提供非常有价值的参考。总而言之,《Kubernetes经典实例》是一本集理论深度、实践广度、以及问题解决能力于一体的优秀书籍,强烈推荐给所有想要精通Kubernetes的开发者和运维人员!
对于我这个习惯于从代码层面理解技术的人来说,《Kubernetes经典实例》的分析角度非常契合我的需求。它不仅仅停留在Kubernetes的API层面,更是深入到了其内部的工作原理和设计哲学。书中关于“Operator模式”的讲解,让我对如何自动化管理有状态应用有了更深刻的理解,并启发了我思考如何为我们自己的复杂系统设计更高效的Operator。我特别喜欢书中对于“多集群管理”和“混合云部署”的章节,这为我们考虑未来的扩展和多云策略提供了非常有价值的参考。作者在书中并没有回避Kubernetes的复杂性,而是用一种非常清晰、结构化的方式,将这些复杂性层层剥开,让我能够逐步掌握。书中提供的“实战案例”,也充满了前瞻性和指导性,让我能够预见到Kubernetes在未来技术发展中的重要地位。而且,作者对于Kubernetes生态系统中的其他工具,如Helm、Prometheus、Grafana等,也进行了恰当的介绍和整合,这让我能够更全面地构建我的云原生技术栈。总而言之,这是一本能够让你从“知其然”到“知其所以然”的Kubernetes书籍,强烈推荐给那些追求技术深度和广度的开发者。
坦白说,在我拿到《Kubernetes经典实例》之前,我对Kubernetes的认知仅限于“一个管理容器的东西”。然而,这本书彻底颠覆了我的认知,让我看到了Kubernetes在构建和管理现代化应用方面的强大能力。书中关于“服务发现与负载均衡”的章节,解释得鞭辟入里,让我对DNS、Service、Ingress等组件的作用有了全新的认识,并学会了如何利用它们来构建高可用、高性能的应用服务。更让我印象深刻的是,书中深入探讨了Kubernetes的安全机制,包括RBAC、Pod Security Policies等,这对于保障我们生产环境的安全至关重要。作者还分享了许多关于“集群监控与日志管理”的实用技巧,这对于我们日常运维中排查问题、优化性能提供了极大的帮助。我个人认为,这本书最大的价值在于其“实例”的实用性和“经典”的代表性。它不仅仅是理论的讲解,更是将复杂的概念转化为可执行的解决方案,让我能够在实践中快速验证和应用。每当我在工作中遇到Kubernetes相关的问题,我都会第一时间翻开这本书,往往都能找到灵感和答案。对于所有希望深入理解Kubernetes并将其应用于实际项目中的技术人员来说,《Kubernetes经典实例》绝对是不可或缺的宝藏。
当我拿起《Kubernetes经典实例》这本书时,我并没有期待它能为我带来多少全新的知识,毕竟我在Kubernetes领域已经有了一定的积累。然而,这本书以其独特的方式,让我对Kubernetes有了更深层次的理解和更全面的视角。书中关于“Kubernetes架构演进”的讨论,让我看到了这个开源项目是如何一步步发展壮大,并不断适应新的技术挑战。我尤其欣赏书中对“Kubernetes性能调优”和“故障排除高级技巧”的深入剖析,这对于我们在生产环境中应对各种性能瓶颈和疑难杂症提供了非常有价值的指导。它不仅仅是告诉你“怎么做”,更是告诉你“为什么这么做”,以及“这样做可能会带来什么影响”。书中提供的“案例”,不仅仅是简单的操作演示,更是充满了作者多年实践的智慧和经验总结。它让我能够从更高的层面去审视Kubernetes的应用,并能够根据实际情况做出更优的决策。这本书让我意识到,Kubernetes不仅仅是一个技术工具,更是一种思维方式和架构理念。对于任何希望在云原生领域走的更远、更稳的技术人员,《Kubernetes经典实例》都是一本值得反复阅读、深入思考的经典之作。
内容过于简单,既不适合上手,也不适合扩展
内容过于简单,既不适合上手,也不适合扩展
内容过于简单,既不适合上手,也不适合扩展
缺少深度
内容过于简单,既不适合上手,也不适合扩展