首页 分享 服务网格下的东西向与南北向流量管理实践

服务网格下的东西向与南北向流量管理实践

来源:花匠小妙招 时间:2025-02-17 18:11

2022-11-22 402 发布于辽宁

版权

举报

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

开发者学堂课程【服务网格技术最佳实践服务网格下的东西向与南北向流量管理实践】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/752/detail/13223

服务网格下的东西向与南北向流量管理实践

内容介绍:

六、istio 入口网关的工作原理

七、定义东西向与南北向流量管理

六、istio 入口网关的工作原理

1、具体 istio 网关是怎么工作的?他的外部请求是如何到达服务网内部的应用程序的?整个步骤通过下图来了解一下。

首先第一步第二步可以通过公有网络的方式,也可以通过私有网络的方式在客户端发出请求,这个请求会请求到特定的端口,这个请求的地址就是负载均衡 LoadBalance 的地址,因为在负载均衡这一侧它是在某一个具体端口上面 K80 或443,在端口上面进行监听。一旦请求发到负载均衡上面,就会把这个请求转发到集群中,对应的负载均衡会把请求转发到集群里面 istio 入口网关服务,这个服务本身也是标准的 K8s 服务,请求被路由到 istio Egreet gateway inter 网关服务的时候,他会通过 K8s 机制找到 inter 网关对应的 pod,K8s 服务通过 inter 网的服务会路由转发到 pod 里面去。第五步是 istio 发挥作用的地方,因为在 egress gateway 这一侧、 pod 这一侧、服务这一侧会有一个对应的 gateway 资源 ,包括 Virtualservice 资源进行一个绑定。在 istio 里面可以定义一个入口网关的资源类型,也可以定义一个虚拟服务 virtualservice 资源类型。通过两个资源分别对应 istio 网关的 gateway 资源,它里面会定义一些访问的端口,以及绑定一些证书等等资源。在 Virtualservice 资源里面,会定义一些路由的、拿一些端口、请求一些路径,这些路径可以路由规则,可以路由到哪一个具体的 K8s 应用服务上面。因此,可以看到通过 istio gateway 资源,Virtualservice 资源能够把一些路由的配置信息附加到入口网关服务上面。通过里面的解析可以把路由的地址映射到具体的 K8s 服务。第六步会看到 ingress gateway 会根据路由的配置信息,将其路由到对应的 K8s服务上,然后 K8s 运用服务就会把请求转发到对应的 pod 上去。这是整个入口网关的一个流程。

七、定义东西向与南北向流量管理

1、下面通过一个 demo 了解如何使用去使用服务网格 ASM 这个产品来管理东西向与南北向的流量。Demo 分为五个步骤,这五个步骤,会分别利用 ASM 这个产品创建一个具体的 ASM 实例,有了这个 ASM 实例之后就可以把 K8s 集群添加到实例上面进行管理。做完第二部之后,会在第三步里面添加一个南北向的入口网关,在这个入口网关里面会定义一些路由规则,来看一下怎么把流量通过入口转移到网关内部。在第四步会部署 Demo 的应用,会把一个应用的部署到 ASM 所管理的 K8s 集群里面,在这里面既能看到南北向的流量也能看到东西向的流量管理。整个流量的路由会通过 istio 资源,在第五步里面会定义 istio 资源,体现整个的路径。

2、首先打开阿里云的官方首页,

在产品首页里可以看到云计算基础产品,弹性计算的分类里面可以看到在容器服务下面有一个服务网格 ASM 产品。点击这个产品之后,就可以进到服务网格 ASM 的官方首页。在这里面,如果是第一次使用,可以去看一下首页里面的一些介绍内容,包括一些产品的介绍,

文档以及使用场景,直接进入管理控制台,去创建服务网格实例。进入控制台之后,可以看到有一个按钮叫创建新网格,点击之后就可以输入一些新网格的指令信息。

名称是 demo,然后是地域,可以选择杭州地域。当前服务网格 ASM 这个产品支持了国内五个重要的 region,五个地域,包括海外的中南亚的,法兰克福的地域支持,后续也会扩大对其他地域的支持。在创建过程中,需要使用到一个 vpc ,可以选择已有的 vpc,也可以创建新的 vpc。相应的会选择当前选择 vpc 下的 switch,可以选择一个使用。接下来会选择 istio 版本,ASM 支持社区的预订6.8这个兼容版本。在下面这些选项里面,像公网访问这个选项,第一个选项默认没有启用公网地址来暴露 API Serve 的,在前面讲到 ASM 这个产品,他是提供了一种与社区 istio 兼容的方式来实现服务网格这些能力。也就是说,可以使用 kubectl 或类似 YAML 定义声明式的方式来定义一个路由规则,使用的途径像 kubectl 的命令行去访问网络实例,重要的是是否使用公网地址来暴露 API Serve 与是否暴露公网地址k8s的效果是一样的,如果需要公网的方式来访问 API Survey,就需要进行勾选。第二个选项是指是否使用公网地址暴露 istio Pilot,Pilot 是控制平面的一个组件,是一个插件serve。这个过程中什么时候会使用这个公网地址呢?数据面的集群所在的 vpc 与控制平面所在的 vpc 不是同一个,同时也没有通过 CEN 这种方式把 vpc 打通,这个时候只能通过公网的方式来访问托管控制面的组件,这个时候不需要使用公网地址。建议 ASM 实例 vpc 尽可能与所关联的 K8s 的 VPC 是一样的,建议通过 CEN 这样的软件把网络打通,在这个demo的过程中就不启用公网地址了,其他选项采用默认方式,开始去创建这样一个 ASM 实例。在创建提交之后,大概需要三分钟左右的时间,开始去创建这个服务网格实例。

3、这个过程中可以点击日志链接,可以查看整个创建的过程,可以看到里面创建负载均衡,这样一些过程。等待一下创建过程。经过三分钟的时间可以看到 ASM 实例已经成功的创建出来了。

在创建完成之后可以点击名称,也可以点击管理这个链接进入详情页。在详情页里面可以看到一个 ASM 实例的一些基本信息,包括他所在的地域、暴露的 API Serve 的地址,可以通过他的地址来访问 API Serve。在右上角有几个功能按钮,

第一个是功能设置,点击功能设置会看到创建的时候进行的配置项,可以进行二次更改。假如说在创建过程中没有启用链路追踪,可以通过配置项来进行修改。第二个按钮是连接配置,这里面暴露一个 Kubeconfig 文件,通过这个 Kubeconfig 文件与 K8s 集群的Kubeconfig 是一样的,可以通过同样的方式把它拷贝到本地,然后用 Kubeconfig 的命令连接 ASM 实例,就是这样一个操作。接下来要做一件事情,刚才第一步创建 ASM 实例已经完成了,第二步要把一个 K8s 集群添加到实例里面去。在这个页面数据平面有一个集群,下面有一个按钮叫添加,点击之后可以看到有一个画面可以列出所管理的 ack 的集群。

有一个选项,与网格处于同一 VPC 的集群,勾中之后页面会进行过滤,就会显示当前 ASM 实例的 VPC下的 K8s 集群。在演示的例子里面,已经创建好了 K8s 集群,用户可以事先自己创建一个K8s 集群,再添加到 ASM 里面,接下来选中这个集群,

点击确定,这时候会弹出一个提示信息,这个提示信息是非常重要的。

确定按钮一旦执行之后,就是将选定的 K8s 集群加入到当前的服务网格 ASM 实例。在这之后不能使用一些类似于 istio、control 等一些命令,在 K8s 集群上再去安装社区的组件。因为控制面已经被托管使用了,如果继续在 K8s 上面安装这些组件的话,有可能会导致这个组件 istio 版本造成冲突,导致整个网格的能力不可用。如果误操的话,怎么去恢复呢?

4、需要先从网格实例里面把 K8s 集群移除出去,再进行重新添加,就会把一些运行信息进行恢复。点击确定之后,这个过程会看到 ASM 的 K8s 集群将会加入到ASM 实例中,这个过程他会去连接。状态会从加入的状态变成运行中的状态,这个过程中 ASK 的 K8s 集群已经纳入到 ASM 实例进行管理了,这是第二步已经完成了。第三步就是刚才提到要演示一个南北向的流量管理对应入口网关服务,在公共台上也提供了一个便捷的方式,部署一个默认的入口网关,也可以自定义一个入口网关。在 demo 里面会部署一个默认的入口网关信息。点击默认入口网关按钮之后可以看到配置入口网关的一些选项。

5、刚才提到了一个 ASM 实例可以去管理多个集群,入口网关到底部署在哪一个集群上面?这个时候可以选择一个云集群。入口网关的服务可以是支持负载均衡类型,可以支持公网访问,也可以支持内网访问。在 demo 里面使用公网来暴露入口网关,也可以支持负载均衡,到底是使用已有的,还是使用新建的。选择新建,然后指定他的规格。下面是端口的映射,默认提供这么多端口,用户可以根据自己需要定义、增加或者删除这些端口。默认情况下,就使用自带的端口就可以,点击确定。这个时候会部署一个入口网关这样一个服务到数据面的集群里面。当 ASK 的 K8s 集群添加到 ASM 之后,想要看一下到底发生了什么,可以点击集群的名称,点击之后会跳转到容器服务的控制台,在这里面可以看到当前集群的一些配置信息。

下一步需要在 ASK 集群里面部署 Demo 的应用,这个时候可以复制一些他的连接信息,包括 Kubeconfig 可以复制在本地上部署一个 demo 的应用。切到集群这,在 istio-system 命名空间下,大家可以看到,已经部署了一个入口的服务出来。

6、在服务网格这一侧,可以点击入口网关,也可以看到入口网关服务已经创建成功,包括 IP 地址和端口信息已经创建出来。如果想对入口网关的信息做一些修改可以点击 YAML,在这里面可以定义或修改一些端口。接下来需要在 K8s 集群里面部署一个 demo 的 ,在这之前给大家补充一个信息,在前面也多次提到 ASM 的控制面和数据面是进行解耦的,独立的,同时在控制面又兼容了社区的使用习惯,就是可以通过声明式的方式 YAML 定义 Kubectl 的方式来操作这些规则。在这个过程中,在 ASM 控制台会看到当前 istio 支持的 CRD 类型、虚拟服务、目标规则等等定义。同时也支持命名空间可以通过命名空间来划分定义的范围。这个命名空间描述的是在控制面的这些自定义资源所属的命名空间。他与数据面的 K8s 集群他的命名空间,两者其实是独立的。可以这样试着去理解,当用 ASM 实例管理一些非容器应用,比如管理一个虚拟机上的应用的时候,虚拟机本身上面并没有一个 K8s 的命名空间,在 ASM 实例控制面理论可以通过定义来对规则进行划分。可以看到默认的控制面里面有一个 default 命名空间,同时为了用户的使用方便,当把 ack 集群添加到 ASM 之后,如果是在ASM 控制台里面针对某个命名空间,点启用 sildecar 自动注入,点确认之后,

就会在 ASM 管理下,当前的这些 ack 集群里面,在 ack 相应的命名空间下会自动做一个打标。这个时候可以切换到容器服务控制台,在所管理的 ACK 这个集群下,通过自动的方式对 default 命名空间多了一个自动打标,

会看到注入了一个 istio-injection enable 这样一个标签,同时起了 provide asm 标明是通过 asm 控制台做了一个动作,能够为 ack 的集群打标。再补充一个信息,这个命名空间是指 ack 的命名空间,与参与服务网格的命名空间两者是独立的,并不是一回事。但是可以在服务网格的命名空间,通过一个快捷方式,在 ASM 控制台里面做一个动作能够帮助我们更加快捷的去 ack K8s集群上面打一个标签,通过这个标签,可以完成自动注入。

接下来回到 ack 集群,去 default 命名空间下部署 Bookinfo 的实例,当前还没有deployments,大家可以参照这个文档,

大家可以下载 Bookinfo 的 YAML 文件,去部署 Bookinfo 实例。我在本地已经下好了 Bookinfo 这个文件,接下来去执行一下,大家一定要把相应的 istio conf 放在相应目录下,我事先已经把这个集群配置好了,这样执行 coupe control 就可以为 ack 集群部署 bookinfo 的实例,下面执行一下。

这个过程中可以在控制台看一下,在控制台刷新一下,能够看到他开始去创建这个应用了。在 pod 里面也可以看到,在每一个 pod 里面都注入了一个 proxy,

一个 sildcar 的代理,这是服务网格注入的数据面的网格代理。等之后应用实例就会启动。整个过程,大家可以参照产品的文档如何在 ASM 所管理的 K8s 集群底下去创建一个实例。整个执行应用部署的过程,跟普通的应用在 K8s 上部署是没有什么差异的,通过注入的方式,为每一个 pod 注入了 sildcar 代理。因为这是一个新集群,他会第一次拉取代和进项,会有一定的时间,确保所有 pod 启动之后,在看应用实例,还剩最后一个 pod,刷新一下。所有的 pod 都已经启动完毕,达到预期的部署效果。接下来就是最后一步,如何定义 istio 资源。

相关知识

服务网格下的东西向与南北向流量管理实践(一)
看路牌颜色知东西南北:东西向蓝色南北向绿色
云原生平台与架构实践
云原生花实践
如厂区道路较窄只能种植一行树,应将树木设计在东西向道路的()侧,以利采光;南北向道路应设计在()侧,以利遮阳。
数据中心网络架构浅谈(一)
南北向房子单价相差1000元/平,你选哪个?
芜湖市湾沚区农业农村局关于全面推行农药网格化管理服务的通知
芙蓉区网格化管理升级 七类人员24小时不间断管理
一文读懂华为云云原生产品及开源实践

网址: 服务网格下的东西向与南北向流量管理实践 https://www.huajiangbk.com/newsview1675578.html

所属分类:花卉
上一篇: 南北向的两居室,是客厅+主卧朝南
下一篇: 服务网格下的东西向与南北向流量管

推荐分享