打开

想学Kubernetes?114页的《Kubernetes快速入门》你要入手一本

subtitle
程序员书屋

2022-01-21 16:51

关注

有一本刚刚上架的新书《Kubernetes的快速入门指南》推荐给想学习的你们。全书114页。

《Kubernetes的快速入门指南》

打开网易新闻 查看更多图片

本书并不试图涵盖关于Kubernetes的一切,只是尽可能清晰地以一种引人入胜的方式介绍Kubernetes核心和重要的部分。同时,本书将理论和实践完美结合,向读者展示Kubernetes的基础知识。

你将了解为什么需要Kubernetes、它是什么,以及它的发展方向。你将学习Kubernetes集群的架构,构建集群,将应用容器化,部署它,破坏它,再利用Kubernetes修复它,对它进行扩缩容,并执行应用的更新。

学习了上述内容,就意味着你已经进入了Kubernetes的世界,并准备好进行下一步。由于本书是快速入门指南,因此你将迅速掌握新知识。

本书并不能让你成为专家,但它会开启你成为专家的旅程。

目标读者

本书的目标读者是任何需要快速掌握Kubernetes基础知识并喜欢边做边学的人。

如果你是一位开发者,需要明确容器和Kubernetes的含义,本书很适合你。如果你专门研究VMware、网络、存储、数据库和其他传统信息技术学科,本书也很适合你。另外,需要掌握主要原则并积累一些实践经验的IT经理和架构师也可以阅读本书。

为什么需要Kubernetes1 为什么科技公司需要Kubernetes

这一切都从AWS开始。

在2000年中后期,亚马逊向科技行业的后方发射了一枚火箭,世界从此变得不同。

在2006年之前,科技行业的状况是大多数科技巨头通过销售服务器、网络交换机、存储阵列、单体应用的许可证和许多其他东西很容易赚钱。后来,亚马逊推出了AWS,颠覆了他们的世界。这就是现代云计算的诞生。

起初,没有一家大公司把这件事放在心上—大公司都忙于销售自己已经卖了几十年的旧东西来赚钱。事实上,一些科技巨头认为它们可以通过粗暴地散布错误信息来结束AWS的威胁。它们一开始就说云不是一个真实的东西。然而,这种说法没起作用,于是它们的态度发生了360度的大转变,承认云是真实的,并立即将它们现有的产品重新命名为“云”。这一招也不管用,于是它们开始建立自己的云,从那时起,它们就一直在追赶AWS的脚步。

有两件事需要注意。

首先,以上是来自Nigel的浓缩版云计算历史。

其次,最初由科技行业传播的错误信息被称为恐惧、不确定性和怀疑(fear uncertainty and doubt,FUD)。

总之,让我们来了解一下更多细节。

一旦AWS开始挖走客户和潜在的业务,该行业就需要反击。他们的第一次反击是OpenStack。长话短说,OpenStack是一个社区项目,它试图创造一个AWS的开源替代品。这是一个宏伟的项目,很多优秀的人为其做出了贡献。但最终它根本没威胁到AWS—亚马逊有巨大的先发优势,而且做好了充分的准备。OpenStack很努力,但AWS轻松地维护了自己的地位。

因此,这个行业又回到了原点。

在这一切发生的时候,甚至在这之前,谷歌正在使用Linux容器来大规模地运行其大部分服务—从人们有记忆以来,谷歌每周都在部署数十亿的容器。用于调度和管理这数十亿容器的是谷歌内部专有的工具,称为Borg。谷歌毕竟是谷歌,它从Borg中吸取了很多教训,并构建了名为Omega的新系统。

总之,谷歌公司内部的一些人想利用从Borg和Omega中吸取的教训,创造出更好的开源工具供社区使用,这就是Kubernetes在2014年夏天出现的原因。

Kubernetes不是Borg或Omega的开源版本。它是一个全新的项目,从头开始构建,是一个开源的容器化应用编排器。它与Borg和Omega的联系在于,其最初的开发者是参与Borg和Omega的谷歌员工,而且它是利用从这些谷歌内部专有技术中吸取的经验教训创造出来的。

回到关于AWS吃所有人的蛋糕的故事……

2014年谷歌开源Kubernetes的时候,Docker正在风靡全球。因此,Kubernetes主要被看作是一个帮助我们管理数量爆炸式增长的容器的工具。这是事实,但这只是这个故事的一半。Kubernetes在抽象化底层云和服务器基础设施方面也做得很好—基本上将基础设施商品化。

花几秒钟来消化一下最后一句话。

“抽象化和商品化基础设施”是比较专业的说法,意思是Kubernetes使用户不必关心应用是在什么云或服务器上运行。事实上,这就是Kubernetes是云的操作系统(OS)这一概念的核心所在。因此,就像Linux和Windows意味着用户不必关心应用是运行在戴尔、思科、HPE上还是运行在Nigel Poulton服务器上一样,Kubernetes意味着用户不必关心应用是运行在AWS上还是运行在Nigel Poulton云上。

云的抽象化意味着Kubernetes为科技行业提供了一个抹去AWS价值的机会—只要把应用写到Kubernetes上运行,下面是谁的云就没有区别。多亏有Kubernetes,竞争环境被拉平了。

这就是每个厂商都对Kubernetes情有独钟,并将其置于其产品的前沿和中心的原因。这为Kubernetes创造了一个强大、光明和长远的未来。反过来,这也为用户社区提供了一匹安全的、不受厂商影响的“马”,让他们能够把云计算的未来押在上面。

2 为什么用户社区需要Kubernetes

我们刚刚为Kubernetes的长远且光明的未来解释了原因—所有科技巨头都在支持它。事实上,它发展得如此迅速,变得如此重要,甚至连亚马逊都接受了它。没错,即使是强大的亚马逊和AWS也无法忽视Kubernetes。

不管怎么说,用户社区需要建立在这样的平台上,因为他们知道这个平台将是一个良好的长期技术投资。从目前的情况来看,Kubernetes看起来会和我们在一起很长一段时间。

用户社区需要并喜爱Kubernetes的另一个原因是Kubernetes作为云的操作系统的概念。

前面已经说过,Kubernetes可以抽象出较低层次的本地和云基础设施,使用户可以编写可在Kubernetes上运行的应用,而无须知道背后是哪个云。这带来了一些好处,包括以下几点:

● 可以部署时随时在不同的云间进行切换;

● 可以实现多云;

● 可以更轻松地在云和本地之间过渡。

基本上,为Kubernetes编写的应用可以在任何有Kubernetes的地方运行。这很像为Linux编写的应用—只要你编写的应用能在Linux上运行,无论Linux是运行在你的超微(Supermicro)服务器上,还是运行在地球另一端的AWS云实例上,都没有关系。

所有这些对终端用户来说都是好事。毕竟,谁不想有一个灵活并且很有前景的平台呢?

《Kubernetes的快速入门指南》详细目录

第1章Kubernetes简介... 1

1.1 微服务... 1

1.2 云原生... 4

1.3 编排器... 6

1.4 Kubernetes的补充知识... 8

1.5 小结... 10

第2章为什么需要Kubernetes. 13

2.1 为什么科技公司需要Kubernetes. 13

2.2 为什么用户社区需要Kubernetes. 16

2.3 小结... 17

第3章Kubernetes集群构成... 19

3.1 主节点与工作节点... 20

3.2 主节点... 21

3.3 工作节点... 23

3.4 被托管的Kubernetes. 24

3.5 用kubectl命令行工具管理Kubernetes. 26

3.6 小结... 27

第4章获取Kubernetes. 29

4.1 在笔记本电脑上用Docker Desktop获取Kubernetes. 29

4.1.1 用Docker Desktop能得到什么... 30

4.1.2 安装Docker Desktop. 30

4.2 在云上用LKE获取Kubernetes. 32

4.2.1 用LKE能得到什么... 33

4.2.2 获取一个LKE集群... 33

4.2.3 在macOS上安装kubectl 35

4.2.4 在Windows 10上安装kubectl 36

4.2.5 配置kubectl与LKE集群交互... 37

4.3 小结... 39

第5章创建容器化应用... 41

5.1 前提条件... 42

5.2 获取应用代码... 44

5.3 构建容器镜像... 47

5.4 在仓库上托管容器镜像... 48

5.5 小结... 50

第6章在Kubernetes上运行应用... 51

6.1 验证Kubernetes集群... 52

6.2 将应用部署到Kubernetes上... 54

6.2.1 Kubernetes Pod的定义... 55

6.2.2 部署应用(Pod)... 57

6.3 连接到应用... 59

6.3.1 Kubernetes的Service的定义... 59

6.3.2 关于标记的简要说明... 61

6.3.3 部署Service. 62

6.4 清理工作... 66

6.5 小结... 67

第7章增加自我修复... 69

7.1 Kubernetes的Deployment的介绍... 69

7.2 从Pod故障中自我修复... 72

7.3 从工作节点故障中自我修复... 75

7.4 小结... 78

第8章应用扩缩容... 81

8.1 前提条件... 81

8.2 应用扩容... 82

8.3 应用缩容... 84

8.4 重要的清理工作... 85

8.5 小结... 86

第9章执行滚动更新... 87

9.1 前提条件... 87

9.2 更新应用... 89

9.2.1 编辑Deployment YAML文件... 89

9.2.2 了解更新设置... 91

9.2.3 执行滚动更新... 92

9.2.4 监控和检查滚动更新... 93

9.3 清理工作... 94

9.4 小结... 95

第10章下一阶段的学习... 97

10.1 其他书籍... 97

10.2 视频课程... 99

10.3 社区活动... 99

10.4 建立联系... 100

10.5 友情评价... 100

附录 实验代码... 101

术语表... 111

作者简介

奈吉尔.波尔顿(Nigel Poulton)是云社区的领军人物。他是Docker Captain,也是《深入浅出Docker》和《Kubernetes修炼手册》的作者。超过100万人通过他的书和视频培训课程,迈出了使用容器和 Kubernetes的第一步。

《深入浅出Docker》

对于认为Docker是开发人员专属工具的人来说,恐怕要准备好颠覆自己的认知了。

容器化应用需要有地方运行,也需要有人来管理。如果认为只是开发人员来管理它,那就大错特错了,事实上运维需要构建和运行高性能、生产级别的Docker基础架构。对于专注于运维工作却尚未掌握Docker的朋友来说,日子恐怕不太好过。不过不必焦虑,本书将帮你掌握Docker。

《深入浅出Docker》由Docker概览和Docker技术两部分组成,遵循简介—详解—命令的章节布局,全面系统地剖析Docker的基本原理与实践应用。清晰详细的操作步骤结合大量的实际代码,为读者切实入门Docker保驾护航。

特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。
打开网易新闻,阅读体验更佳
6赞
大家都在看打开应用 查看全部
网易热搜每30分钟更新
打开应用 查看全部
打开