猜你喜欢
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)

Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)

书籍作者:龚正 ISBN:9787121409981
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:1792
创建日期:2021-10-07 发布日期:2021-10-07
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

Kubernetes是由谷歌开源的容器集群管理系统,为容器化应用提供了资源调度、部署运行、服务发现、扩缩容等一整套功能。Kubernetes也是将“一切以服务(Service)为中心,一切围绕服务运转”作为指导思想的创新型产品,它的功能和架构设计自始至终地遵循了这一指导思想。构建在Kubernetes上的系统不仅可以独立运行在物理机、虚拟机集群或者企业私有云上,也可以被托管在公有云上。

本书总计12章,分别讲解Kubernetes的基本概念、实践指南、核心原理、开发指南、网络与存储、运维指南、新特性演进等内容。全书图文并茂、内容丰富、由浅入深、讲解全面,并围绕在生产环境中可能出现的问题,给出了大量典型案例,比如安全配置方案、网络方案、共享存储方案、高可用方案及Trouble Shooting技巧等,有很强的实战指导意义。本书的内容也随着Kubernetes的版本更新不断完善,目前涵盖了Kubernetes从1.0到1.19版本的主要特性,努力为Kubernetes用户提供全方位的Kubernetes技术指南。

无论是对于软件工程师、软件架构师、测试工程师、运维工程师、技术经理,还是对于资深IT人士,本书都极具参考价值。


作者简介

龚正

HPE高级顾问,从事IT工作20余年,在云计算、大数据、大型企业级应用等领域有丰富的咨询规划、架构设计和实施经验,负责过多个大型云平台的规划和建设,是电信、金融、互联网等领域的资深专家,也是《Kubernetes权威指南:企业级容器云实战》等书的作者。

吴治辉

HPE资深架构师,从事软件研发工作20余年,专注于电信软件和云计算方面的软件研发,有丰富的大型项目架构设计经验,是业界少有的具备很强编程能力的资深架构师,也是《ZeroC Ice权威指南》《架构解密:从分布式到微服务》《Kubernetes权威指南:企业级容器云实战》《区块链轻松上手》等书的作者。

闫健勇

HPE高级项目经理、总架构师,从事电信行业系统建设工作20余年,主导了多项电信大型系统的架构设计和管理,对云计算和大数据在电信行业中的应用有丰富的经验,也是《Kubernetes权威指南:企业级容器云实战》等书的作者。


编辑推荐

第5版全新升级至Kubernetes 1.19版本,内容大升级、更新更全面。

目录更易检索,作为K8s容器工具书更为方便。

提供源码下载、读者交流群及读者答疑,参见封底读者服务。

CNCF、阿里巴巴、华为、腾讯、字节跳动、VMware众咖力荐!

从服务化到云原生运维必选图书,几乎人手一本,K8s必学图书。

入门、架构、原理、实战、安全、运维、Helm、监控告警、日志管理、Windows容器等应有尽有。

与《Harbor权威指南》《云原生服务网格Istio》《深入浅出Istio》《深入浅出Prometheus》搭配阅读更好。


前言

为什么写作本书

本书第1版出版于2016年,短短几年,Kubernetes已从一个新生事物发展成为一个影响全球IT技术的基础设施平台,成功推动了云原生应用、微服务架构、Service Mesh、Serverless等热门技术的普及和落地,一跃成为云原生应用的全球级基础平台。现在,Kubernetes已经成为软件基础设施领域中耀眼的明星项目,在GitHub上已有超过两万名开源志愿者参与此项目,成为开源历史上发展速度超快的项目之一。

在这几年里:

l Kubernetes背后的重要开源公司RedHat被IBM大手笔收购,使RedHat基于Kubernetes架构的先进PaaS平台——OpenShift成为IBM在云计算基础设施中的重要筹码;

l Kubernetes的两位核心创始人Joe Beda和Craig McLuckie所创立的提供Kubernetes咨询和技术支持的初创公司Heptio也被虚拟化领域的巨头VMware收购,VMware决定全力拥抱Kubernetes,而且计划直接以Kubernetes为底层核心重新打造全新版的vSphere;

l Oracle收购了丹麦的一家初创公司Wercker,然后开发了Click2Kube,这是面向Oracle裸机云(Oracle Bare Metal Cloud)的一键式Kubernetes集群安装工具;

l 世界500强中的一些大型企业也决定以Kubernetes为基础重构内部IT平台架构,大数据系统的一些用户也在努力将其生产系统从庞大的大数据专有技术栈中剥离出来靠拢Kubernetes。

谷歌凭借几十年大规模容器应用的丰富经验,首次投入大量人力、财力来开源并主导了Kubernetes这个重要的开源项目,可以预测,Kubernetes的影响力可能超过数十年,所以,我们每个IT人都有理由重视这门新技术。当年,慧与中国通信和媒体解决方案领域的资深专家团一起分工协作、并行研究,并废寝忘食地合力撰写,才促成了这部巨著的出版。当然,本书也对Kubernetes在国内的普及和推广产生了巨大的推动作用。

本书读者对象

本书读者对象范围很广,甚至某些高校也采购了本书。考虑到Kubernetes的技术定位,我们强烈建议这些人群购买和阅读本书:资深IT从业者、研发部门主管、架构师(语言不限)、研发工程师(经验不限)、运维工程师(经验不限)、软件QA和测试工程师(两年以上经验)、以技术为主的售前工作人员(两年以上经验)。

建议在本机上安装合适的虚拟软件,部署Kubernetes环境并能动手实践本书的大部分示例,甚至可以直接在公有云上部署或者使用现成的Kubernetes环境,从而降低入门的复杂度。

本书概要

这些年,Kubernetes高速发展,先后发布了十几个大版本,每个版本都带来了大量的新特性,能够处理的应用场景也越来越丰富。

本书遵循从入门到精通的学习路线,涵盖了入门、安装指南、实践指南、核心原理、开发指南、运维指南、新特性演进等内容,内容翔实、图文并茂,几乎囊括了Kubernetes当前主流版本的方方面面。

第1章首先从一个简单的实例开始,让读者通过动手实践来感受Kubernetes的强大能力;然后讲解Kubernetes的概念、术语,考虑到Kubernetes的概念、术语特别多,所以特别从它们的用途及相互关系入手来讲解,以期初学者很快能全面、准确、深刻地理解这部分内容。

第2章围绕Kubernetes的安装和配置展开讲解,如果要在生产级应用中部署Kubernetes,则建议读者将本章内容全部实战一遍;如果不是,则可以选择部分内容实战,比较重要的是Kubernetes的命令行部分,这部分越熟练,后面进行研发或运维就越轻松。

第3章、第4章对于大部分读者来说,都是很关键的内容,也是学会Kubernetes应用建模的关键章节。第3章全面、深入地讲解了Pod的方方面面,其中非常有挑战性的是Pod调度这部分内容,它也是生产实践中相当实用的知识和技能。第4章围绕Service展开深入讲解,涉及相关的服务发现、DNS及Ingress等高级特性。

第5章对Kubernetes的运行机制和原理全面、深入地进行讲解,通过对API Server、Controller、Scheduler、kubelet、kube-proxy等几个核心进程的作用、原理、实现方式等的深入讲解,可以让读者加深对Kubernetes的认知,所以建议读者全面阅读本章。

第6章专门讲解Kubernetes安全方面的内容,因为内容比较复杂,所以涉及的知识点也多,建议读者选择性阅读和实战。

第7章讲解Kubernetes相对复杂的内容之一——网络部分,涉及的知识面相对较广,包括Kubernetes网络模型、Docker网络基础、Service虚拟网络、CNI网络模型、开源容器网络方案、Kubernetes网络策略及IPv4、IPv6双栈协议等内容,学习曲线和理解曲线都较陡,建议读者多花时间钻研,因为网络也属于容器领域里很重要的基础知识。

第8章讲解Kubernetes存储方面的内容,动态存储管理实践部分的内容对于Kubernetes企业应用落地很有价值,建议读者动手实践完成这部分内容。

第9章是为程序员特别准备的,以Java(未来会增加Go语言)为例举例说明如何通过编程方式调用Kubernetes的API,这也是开发基于Kubernetes的PaaS管理平台的重要基础技能之一。

第10~12章侧重于讲解Kubernetes运维方面的技能和知识,包括Windows上的Kubernetes部署、安装等内容,建议需要在生产环境中部署Kubernetes的读者全面阅读并动手实践这几章的内容。

相关资源

本书提供了两个GitHub应用项目供读者学习和实践,其中包括sleep客户端应用项目和flaskapp服务端应用项目。另外,本书作者之一深度参与的Istio官方文档汉化项目也已上线。

本书也提供了QQ群和微信群供读者交流,还提供了勘误反馈和获取渠道。

对于以上内容,请在本书封底的“读者服务”处获取。如有资源更新,则也可通过此处获取。

致 谢

感谢读者对本书的期待和支持;感谢各位领导和同事对本书出版提供帮助;感谢家人、朋友的无私奉献;感谢出版社各位编辑对本书出版的支持和帮助!感谢大家!


目录

(本书很厚,所以目录中的章节较多,此处页面有限,大部分更为具体的三级目录已在此处省略,具体请参见纸书或电子书的目录部分)


第1章 Kubernetes入门 1

1.1 了解Kubernetes 2

1.2 为什么要用Kubernetes 5

1.3 从一个简单的例子开始 7

1.3.1 环境准备 8

1.3.2 启动MySQL服务 8

1.3.3 启动Tomcat应用 11

1.3.4 通过浏览器访问网页 12

1.4 Kubernetes的基本概念和术语 14

第2章 Kubernetes安装配置指南 47

2.1 系统要求 48

2.2 使用kubeadm工具快速安装Kubernetes集群 49

2.3 以二进制文件方式安装Kubernetes安全高可用集群 61

2.4 使用私有镜像库的相关配置 90

2.5 Kubernetes的版本升级 91

2.6 CRI(容器运行时接口)详解 94

2.7 kubectl命令行工具用法详解 98

第3章 深入掌握Pod 113

3.1 Pod定义详解 114

3.2 Pod的基本用法 120

3.3 静态Pod 125

3.4 Pod容器共享Volume 126

3.5 Pod的配置管理 129

3.6 在容器内获取Pod信息(Downward API) 144

3.7 Pod生命周期和重启策略 154

3.8 Pod健康检查和服务可用性检查 155

3.9 玩转Pod调度 159

3.10 Init Container(初始化容器) 192

3.11 Pod的升级和回滚 196

3.12 Pod的扩缩容 209

3.13 使用StatefulSet搭建MongoDB集群 233

第4章 深入掌握Service 245

4.1 Service定义详解 246

4.2 Service的概念和原理 248

4.2.1 Service的概念 248

4.2.2 Service的负载均衡机制 252

4.2.3 Service的多端口设置 254

4.2.4 将外部服务定义为Service 256

4.2.5 将Service暴露到集群外部 257

4.2.6 Service支持的网络协议 260

4.2.7 Kubernetes的服务发现机制 261

4.2.8 Headless Service的概念和应用 263

4.2.9 端点分片与服务拓扑 265

4.3 DNS服务搭建和配置指南 274

4.4 Node本地DNS缓存 284

4.5 Pod的DNS域名相关特性 291

4.6 Ingress 7层路由机制 297

第5章 核心组件的运行机制 326

5.1 Kubernetes API Server原理解析 327

5.1.1 Kubernetes API Server概述 327

5.1.2 API Server架构解析 330

5.1.3 独特的Kubernetes Proxy API接口 335

5.1.4 集群功能模块之间的通信 336

5.1.5 API Server网络隔离的设计 338

5.2 Controller Manager原理解析 339

5.3 Scheduler原理解析 346

5.4 kubelet运行机制解析 352

5.4.1 节点管理 352

5.4.2 Pod管理 353

5.4.3 容器健康检查 354

5.4.4 cAdvisor资源监控 355

5.4.5 容器运行时 357

5.5 kube-proxy运行机制解析 359

5.5.1 第一代Proxy 360

5.5.2 第二代Proxy 361

5.5.2 第三代Proxy 362

第6章 深入分析集群安全机制 364

6.1 API Server认证管理 365

6.2 API Server授权管理 373

6.3 Admission Control 406

6.4 Service Account 410

6.5 Secret私密凭据 415

6.6 Pod安全策略 419

第7章 网络原理 445

7.1 Kubernetes网络模型 446

7.2 Docker网络基础 448

7.3 Docker的网络实现 461

7.4 Kubernetes的网络实现 470

7.5 Pod和Service网络实战 474

7.6 CNI网络模型 489

7.7 开源容器网络方案 508

7.8 Kubernetes的网络策略 541

7.9 Kubernetes对IPv4和IPv6双栈的支持 551

第8章 存储原理和应用 560

8.1 Kubernetes存储机制概述 561

8.1.1 将资源对象映射为存储卷 562

8.1.2 Node本地存储卷 569

8.2 持久卷(Persistent Volume)详解 573

8.2.1 PV和PVC的工作原理 574

8.2.2 PV详解 581

8.2.3 PVC详解 587

8.2.4 Pod使用PVC 589

8.2.5 StorageClass详解 593

8.3 动态存储管理实战:GlusterFS 600

8.3.1 准备工作 600

8.3.2 创建GlusterFS管理服务容器集群 600

8.3.3 创建Heketi服务 603

8.3.4 通过Heketi管理GlusterFS集群 607

8.3.5 定义StorageClass 610

8.3.6 定义PVC 610

8.3.7 Pod使用PVC的存储资源 613

8.4 CSI存储机制详解 614

第9章 Kubernetes开发指南 647

9.1 REST简述 648

9.2 Kubernetes API详解 650

9.3 使用Fabric8访问Kubernetes API 665

9.4 Kubernetes API的扩展 680

第10章 Kubernetes运维管理 702

10.1 Node管理 703

10.2 更新资源对象的Label 705

10.3 Namespace:集群环境共享与隔离 706

10.4 Kubernetes资源管理 710

10.5 资源紧缺时的Pod驱逐机制 766

10.6 Pod Disruption Budget(主动驱逐保护) 774

10.7 Kubernetes集群监控 778

10.7.1 使用Metrics Server监控Node和Pod的CPU和内存使用数据 778

10.7.2 Prometheus+Grafana集群性能监控平台搭建 783

10.8 Kubernetes集群日志管理 803

10.9 Kubernetes的审计机制 822

10.10 使用Web UI(Dashboard)管理集群 826

10.11 Helm:Kubernetes应用包管理工具 839

第11章 Trouble Shooting指南 862

11.1 查看系统Event 863

11.2 查看容器日志 865

11.3 查看Kubernetes服务日志 866

11.4 常见问题 868

11.5 寻求帮助 872

第12章 Kubernetes开发中的新功能 875

12.1 对Windows容器的支持 876

12.2 对GPU的支持 896

12.2.1 环境准备 897

12.2.2 在容器中使用GPU资源 900

12.2.3 发展趋势 902

12.3 Pod的垂直扩缩容 902

12.4 Kubernetes生态系统与演进路线 908


附录A Kubernetes核心服务配置详解 915



短评

更新太快了,第4版还没看完呢,书内容又增加了很多,质量非常好

2021-05-07 00:12:52

产品特色