阿里云数字新基建系列:云原生操作系统Kubernetes

阿里云数字新基建系列:云原生操作系统Kubernetes
作者: 罗建龙 等
出版社: 电子工业
原售价: 69.00
折扣价: 48.30
折扣购买: 阿里云数字新基建系列:云原生操作系统Kubernetes
ISBN: 9787121399473

作者简介

阿里云全球技术服务部团队在支持企业架构云原生化方面,积累了丰富的实战经验,服务了数万个国内外企业客户。本书作者均来自该团队。 罗建龙,阿里云互联网行业解决方案架构师,阿里云售后云原生技术领头人。专注于传统操作系统、显卡操作系统、云原生操作系统等领域。 刘中巍,阿里云容器高级技术专家。在加入阿里巴巴之前,曾在微软亚洲研究院做虚拟现实方向研究。现主要负责阿里云容器服务产品的弹性伸缩与监控、大数据的研发,从事容器的持续交付、持续集成方案的设计与实现。在云计算、分布式系统、图像识别与虚拟现实方向有多年的开发实践经验。 张城,阿里云日志服务技术专家。负责阿里巴巴集团、蚂蚁金服、阿里云等的日志采集基础设施,服务数万名内外部客户。同时负责云原生相关的日志解决方案,包括系统组件、负载均衡、审计、安全、Service Mesh、事件、应用等日志方案。目前主要关注可观察性、AIOps、大规模分析引擎等方向。 黄珂,阿里巴巴高级研发工程师,主要负责Kubernetes容器存储和网络相关的基础研发工作,参与了阿里集团内部有状态应用的带存储和网络的迁移,以及大规模实施在线业务存储计算分离项目。对Kubernetes中存储相关组件的设计,以及规模化场景的性能优化具有很深的理解和丰富的实践经验。 苏夏,阿里云智能AES专家服务高级技术工程师,现主要负责阿里云大客户售后技术支持以及重点项目的专家服务工作,在云原生kubernetes、服务网格、弹性计算、负载均衡等领域有多年的技术支持经验。 高相林,阿里云原生应用平台高级开发工程师,主要负责阿里云容器服务产品的集群和组件生命周期管理系统研发,以及版本生命周期管理。Kubernetes开源社区成员。 盛训杰,阿里云高级技术支持工程师。在阿里云全球技术服务部,负责阿里云弹性计算产品及容器服务产品的技术支持工作,在企业上云及应用容器化转型方面有着丰富的实施落地经验。

内容简介

第 6 章 简洁的服务模型 在 CNCF(云原生计算基金会)对云原生的定义中,容器、微服务、服务网格、不可变基础设施和声明式 API 被作为云原生的代表性技术。其中的容器、不可变基础设施和声明式 API 的作用是建立一个自动化的、容错性强的应用承载平台 ;而微服务和服务网格的作用则是为应用提供优秀的内部模块间的互通机制和对外服务接口机制。 Kubernetes 作为云原生的操作系统,实现了一套默认的服务机制。这套机制的特点是足够健壮且足够简单,基本上能够满足大多数业务需求,用户可以在这套机制的基础上搭建自己的微服务环境。 虽然 Kubernetes 的服务机制上手比较容易,但是在对云上海量问题的处理过程中,我们发现大多数工程师对服务机制,或者说机制背后的原理不是很清楚,这会严重影响工程师的运维开发效率。 本章以 Kubernetes 服务为主题,希望通过深入的解释,可以让读者理解服务的本质及实现原理。 6.1 服务的本质是什么 从概念上来讲,Kubernetes 集群的服务,其实就是负载均衡或反向代理。这跟阿里云的负载均衡产品有很多类似的地方。和负载均衡一样,服务有它的 IP 地址以及前端端口,同时服务后面会挂载多个容器组作为其“后端服务器”,这些“后端服务器”有自己的 IP 地址以及监听端口,如图 6-1 所示。 当这样的负载均衡和后端的架构与 Kubernetes 集群结合的时候,我们可以想到的最直观的实现方式,就是集群中某一个节点专门做负载均衡(类似Linux 虚拟服务器)的角色(见图 6-2),而其他节点则用来承载后端容器组。 这样的实现方法有一个巨大的缺陷,就是单点问题。Kubernetes 集群是 Google 多年来自动化运维实践的结晶,这样的实现显然与其自动化运维的哲学是相背离的。 6.2 自带通信员 边车(sidecar)模式是微服务领域的核心概念。边车模式换一个通俗一点的说法,就是自带通信员模式。熟悉服务网格的读者肯定对它很熟悉了,但是可能很少有人注意到,其实 Kubernetes 集群原始服务的实现,也是基于边车模式的,如图 6-3 所示。 在 Kubernetes 集群中,服务的实现实际上是为每一个集群节点部署了一个反向代理 sidecar。而所有对集群服务的访问,都会被节点上的反向代理转换成对服务后端容器组的访问。基本上,节点和这些 sidecar 的关系如图 6-4所示。 6.3 让服务照进现实 我们在前面两节中看到了,Kubernetes 集群的服务本质上是负载均衡,即反向代理 ;同时我们知道了,在具体实现中,这个反向代理,并不是部署在集群某一个节点上的,而是作为集群节点的 sidecar 部署在每个节点上的。 在这里让服务“照”进反向代理这个“现实”的,是 Kubernetes 集群的一个控制器,即 kube-proxy。简单来说,kube-proxy 作为部署在集群节点上的控制器,通过集群 API Server 监听着集群状态变化。当有新的服务被创建的时候,kube-proxy 会把集群服务的状态、属性,翻译成反向代理的配置,整个过程如图 6-5 所示。 那剩下的问题就是反向代理(即图 6-5 中的 Proxy)的实现了。 遨游海域的座头鲸、成群结队的角马、群聚飞翔的火烈鸟……构成了一幅幅壮美的生存画面,迁徙是自然界令人叹为观止的景观。 数智时代的“上云”与自然界的“迁徙”何其相似啊! 2021年伊始,我们博文视点的编辑团队联合阿里云技术团队,为广大IT技术人员奉上“阿里云数字新基建系列”。这个系列包括5本书,题材涉及Kubernetes、混合云架构、云数据库、CDN原理与流媒体技术、云服务器运维(Windows),囊括了领先的云技术知识与阿里云技术团队独到的实践经验,是国内IT技术图书中又一套重磅作品! 《云原生操作系统Kubernetes》是这套系列书较早出版的一本,本书的特点请见宝贝长图!强烈建议您阅读!