灵雀云微服务和 K8S 集成探索实践

栏目: 后端 · 发布时间: 5年前

内容简介:微服务给DevOps的确带来很多挑战,比如持续集成、持续交付,持续部署,监控、认证、授权以及快速配置计算资源等等。Kubernetes我们认为是一个非常好的方案,它提供了非常详细的功能,比如资源的调度,弹性的伸缩,自动化的部署。今天的演讲我想聊一聊服务发现在微服务中的应用,和灵雀云在做微服务产品的一些经验。我们现在的代码是业务逻辑参杂着微服务相关操作,随着微服务理念和框架发展,业务逻辑被独立出来,微服务相关操作被整合到框架来完成。

微服务给DevOps的确带来很多挑战,比如持续集成、持续交付,持续部署,监控、认证、授权以及快速配置计算资源等等。

Kubernetes我们认为是一个非常好的方案,它提供了非常详细的功能,比如资源的调度,弹性的伸缩,自动化的部署。今天的演讲我想聊一聊服务发现在微服务中的应用,和灵雀云在做微服务产品的一些经验。

我们现在的代码是业务逻辑参杂着微服务相关操作,随着微服务理念和框架发展,业务逻辑被独立出来,微服务相关操作被整合到框架来完成。

灵雀云微服务和 K8S 集成探索实践

服务发现--Eureka高可用

关于服务发现组件和 Kubernetes 的结合,生产环境我们需要把这些组件实现高可用。以Eureka为例,Eureka集群每一个节点都需要配置集群其他节点IP,形成点对点的集群。把每个IP地址写死在配置文件里,自动化运维极不方便。将集群变成更多节点是一件很不容易的事,更不能随意的把它部署在其他的节点上。

灵雀云微服务和 K8S 集成探索实践

这是一个Eureka集群配置不当的例子,节点A和C无法直接交换数据。Eureka为了强调高可用性而使用最终一致性的模型,这个集群设计,会导致Eureka节点的不一致时间加长,进而service调用报错。为了降低最终一致性带来的问题,通常我们会让service注册到这个集群的所有节点,下面是我们的方案。

灵雀云微服务和 K8S 集成探索实践

Kubernetes 提供一个Service对象,叫Headless Service,了解Kubernetes的人知道每一个Service有一个Cluster IP,但Headless Service没有这个Cluster IP,nslookup可以列表headless service关联的所有pod实例IP。

通过扩展Eureka,添加逻辑去读取这个Headless地址,列表标明它后面所有的实例,然后每一个实例注册到其它实例上面。这样的好处是,配置文件会很简单,只有一个Headless域名。可以实现Eureka集群轻松部署任意实例,而且享受到Kubernetes自动伸缩功能。这样的话就能确保Eureka的最终一致性造成的最低延迟。

灵雀云微服务和 K8S 集成探索实践

第二种方案 Kubernetes StatefulSets,优点是,充分利用Kubernetes的功能完成整个部署,简洁配置。缺点是,需要对Eureka做扩展。如果采用灵雀云平台的话,这个步骤会很简单,添加相关的依赖就可以了。

实际上随着微服务应用的发展,Kubernetes自身已经提供服务发现的功能。这里有另外一个开源方案Kubernetes+spring-cloud-kubernetes,微服务代码可以不用写服务发现的相关逻辑,这个项目的核心观点是,充分用Kubernetes提供的功能去实现自动的服务发现,相当于简化了服务,所有这些可以使用Kubernetes内部的服务发现机制来完成。

灵雀云微服务和 K8S 集成探索实践

这种方案的缺点是,我们的代码是依赖于Kubernetes的,再往后发展,代码如何让服务发现和其他组件不和业务的逻辑掺杂在一起,这就是Service Mesh能够实现的功能。这两张图大概演示了Service Mesh的演变,左边图是两个Service,业务代码和服务发现、熔断器融合在一起,那么有没有可能把它们分开?从同一个进程里分成不同的进程,这就是右边图的想法。

灵雀云微服务和 K8S 集成探索实践

Service Mesh演变

灵雀云微服务和 K8S 集成探索实践

那个想法的实现不是轻而易举的,容器有一个很重要的sidecar pattern,应用这个Pattern可以很好的实现这个想法。把所有跟微服务相关的网络通讯分割,在上面加一个控制面板,通过sidecar进行配置,就变成现在这个样子。这是其中两个Service的实例,扩大化之后就是服务网格,每个小点是一个Service。

灵雀云微服务和 K8S 集成探索实践

Service Mesh是处理服务到服务之间通信的专用基础设施层,透过云原生的复杂拓扑结构,可靠的传递信息。

Linkerd是第一代 service mesh

,然后还经历了Conduit、 Istio。灵雀云下半年将会陆续发布Service Mesh相关的产品,敬请大家期待。

灵雀云微服务和 K8S 集成探索实践


以上所述就是小编给大家介绍的《灵雀云微服务和 K8S 集成探索实践》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

统计自然语言处理

统计自然语言处理

宗成庆 / 清华大学出版社 / 2008-5 / 66.00元

内容简介 本书全面介绍了统计自然语言处理的基本概念、理论方法和最新研究进展,内容包括形式语言与自动机及其在自然语言处理中的应用、语言模型、隐马尔可夫模型、语料库技术、汉语自动分词与词性标注、句法分析、词义消歧、统计机器翻译、语音翻译、文本分类、信息检索与问答系统、自动文摘和信息抽取、口语信息处理与人机对话系统等,既有对基础知识和理论模型的介绍,也有对相关问题的研究背景、实现方法和技术现状的详......一起来看看 《统计自然语言处理》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码