开发者学堂课程【服务网格技术最佳实践:服务网格下的东西向与南北向流量管理实践(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/292/detail/3435
服务网格下的东西向与南北向流量管理实践(二)
四.东西向与南北向流量管理
东西向:在服务网格中 所谓的东西向流量管理指在数据面在集群类,它是服务于服务之间,集群内网格内的服务与服务之间的流量管理,才称之为东西向。
南北向:在网格内的流量管理。南北向就是讲集群外部的客户端连接到集群内部,或者是从集群内的服务去访问集群外的服务,我们称之为南北向。
如图
图的左端可以看见公共网络的左端 ,有一个公有的 IP 地址,其中一个私有的 IP 地址,是通过私有的方式。
在图的右端,在集群内的服务,是访问集群外的服务,我们可以通过 egress gateway 或者直接通过 sidecar 访问外部服务。在服务网格边界,在网格内的东西向流量管理,在网格内的服务之间,东西向的管理服务之间的调用是不需要网格的。
服务之间的调用,是通过集群本地的服务访问,这里没有启用服务网格技术,之前没有启用网格技术,它的服务调用是通过服务云的方式进行发现和调用,进行实验之后,调用的方式会发生改变,基本是通过服务云的方式来进行访问。
在南北向流量,比如说我们用 istio 网关来举例,我们可以看到它的调用量度,在 istio 网关里面,是用其他的类型,来控制终端用户,他们之间通过系统工作来运行,具体是怎么工作的,外部请求如何到达服务网格内部,整个步骤可以通过图来了解。
如图
我们可以看到它可以通过公有网络的方式,也可以通过私有网络的方式,在客服端发出请求,请求会出现一个端口,在负载均衡这一侧,在某个端口进行监听。
一旦请求发在负载均衡上面,上面就会把请求转发在集群中,对应的负载均衡会把请求转发在集群里面,这个服务也是标准的 K8S 的服务,这个请求到了网关之后,会通过 K8S机制找到它的网关对应的事物。
第五步就是发挥作用的地方,我们会有 getway 资源,进行一个绑定, 因为在 istio 里面可以有一个网关的资源,也可以有一个虚拟服务资源,通过分别对应的资源,会有访问的专考,通过 istio 的一个入口网关资源,包括 istuo 虚拟服务资源,能够把一些路由的配置信息,附加到服务上面,通过一些解析,能够把路由的地址映射到具体的服务。
那么第六个就会看到 K8S 会根据路由信息,配置到路由上面,然后把请求转发到里面去,这是转发的流程。
五.Demo 五个步骤
首先是创建一个具体的 ASM 实例
然后再把集群,添加到实例上面去进行管理,第二步就是添加集群到 ASM 实例,装完第二步。
第三步就是添加南北向入口网关,添加南北向的入口网关,根据系统规则,去把流量通过入口去请求转移到网络内部。
第四步,有具体部署 Demo 的运用,我们会把应用部署到 ASM 的运用的管理的集群里面,我们会看到南北向的流量管理以及东西向的流量管理,整个流量的路由都会通过 lstio 资源来体现整个路径,在第五步我们会定义 istio 资源,我们会体现整个 Demo 的运程。
首先打开阿里云的官方首页
在阿里云的官方首页,可以看到在云计算基础上弹性计算的里面,我们可以看见有一个内别叫服务网格,是 ASM 的一个产品,点击链接之后,就可以进到服务网格 ASM 的官方首页。
在这个里面大家可以看见首页里面介绍的内容,包括产品的介绍,产品帮助文档,完成的程度,使用的场景,在这一块我们直接进入到管理控台,去看如何管理创建服务控制台。
进这个控制台之后,可以看到有一个案例叫做创建新网格,点击之后就可以看见基本的使用网格信息,比如我们说的 demo ,之后会指定地域,比如我们说的杭州地域,可以说一下当前 SM服务产品的,已经支持了国内五个重要的地域,包括海外的东南亚,中欧的客服的地域支持,我们后续也会扩大对其他地域的支持,我们可以创建新的 VPC ,相应的会选择已有的 VPC ,或者创建一个新的 VPC 下的 swich 。
接下来选择一个 istio 版本,当前我们已经选择了6.8这个版本,在下面的选项里面,重点介绍公网访问这个选项
默认没有启用公网地址来报道,因为在前面,讲到 asm 这个产品是提到与社区兼容的方法,来使用服务网格的能力,你仍然可以使用实名的方式来认证这个规则,使用的途径你仍然可以使用 concle 的命令行去访问网格实例,使用公网地址暴露 APi 。如果你是公网的方式来访问这个 asm 这个时候就需要勾选,第二个选项是指是否使用公网地址来暴露组件。
只有你的数据面的集群所在的 ipc 与控制平面实地所在的 vpc 不是一个,同时又没有其他方式,只能通过公网的方式来打通控制面的组件,这个时候就必须使用公网地址,
如果你是用公文包来使用,就要有地址,我们的建议是使用 VPC 可以使用你的 KS 是一样的,让软件打通,在这个过程中我们就不启用公网地址,其他选项我们也是采用默认的方式。
第一步我们去创建 asm 实例,创建的时候大概要用三分钟的时间,开始创建服务网格实例,可以点击日志,
点击链接查看过程,可以看到它里面有一个负载均衡,去报告过程,我们等待创建过程,经过三分钟的时间,可以看到 AS 实例是创建出来了,在创建完之后可以点击名称,也可以点击管理链接,进入这个它的详情页,在详情页里面可以看到 ASM 实例的一些基本信息,包括它的所在地域暴露的地址,我们可以通过地址来访问它的 APSO,在右上角有一个共同按钮,第一个是功能设置,点功能设置,我们可以看到有一些创建的时候有一些配置项,可以通过二次更改,假如没有启用链路追踪,可以通过配置项来进行修改,第二个按钮就是连接配置,暴露客服文件,通过一些方式 cope 到本地。
用命令去连接 ASM 实例,然后进行操作,创建实例,已经完成了。
第二步就是把集群添加到实例里面去,在页面我们可以看到有一集群按钮的添加,点击之后我们可以看到有一个画面,看到你所管理的这个集群,有一个选项叫与网格处于同一 VPC 的集群,它页面就进行过滤,就显示当前实例的 VPC 下载的集群,演示的例子里面是已经创建好了集群,用户可以事先创建一个集群,添加到 ASM 中,
接下来就选中集群,点击确定,这个时候会有很重要的提示信息,说选定的集群加入到当前的服务网格中,在这之后我们不能在用单独的命令在集群上再去安装组件,因为控制面已经托管使用了,如果一直用并且安装组件有可能会导致集群的版本造成冲突,导致整个网格的能力不可用,一旦操作失误,需要线上网络实例,把网络集群移出 ,进行重新添加,会把一些具体信息进行恢复。
在点击确定之后, 集群将会加入到 ASM 的实例中,去进行连接,会出现加入的状态,这个过程中你的 ASP 的集群就已经纳入到 AMS 实例进行管理,第二步我们已经完成。