Istio 中的流量管理--详细指南

您好,读者! 本文讲述了 ** 交通管理在伊斯蒂奥** 与其资源作为详细的解释。

让我们开始吧!!!

也阅读: 安装Istio在一个Kubernetes集群中


什么是交通管理?

流量管理是指管理作为数据/浏览传输或 API 调用的一部分产生的流量。

当我们在本地服务器或云上设置应用程序时,当该应用程序尝试某些API呼叫或呼叫其他第三方实体的服务或通过互联网传输数据时,就会产生流量。

数据是任何应用程序的一个关键和脆弱的方面,基础设施是设置的根源。必须监控通过安全的基础设施的互联网流量。

继续前进,我们将在即将到来的部分看一下Istio作为交通管理工具。


Istio 作为交通管理工具

Istio通过其提供的流量路由规则向我们介绍了流量管理,应用程序变得更易于失败,因为所有流量监控都通过互联网进入应用程序。

Istio 将 Envoy 代理配置为应用程序容器的侧面服务器,并监控向应用程序 pod 路由的所有流量,以便进行 API 调用/服务参与等。

因此,底层应用程序服务不会受到影响,整个交通监控都通过Envoy sidecar进行代理,以便实现韧性和交通管理。

Istio 需要了解应用程序的终端点来监控流量,因此,它会被内部连接到服务发现系统来识别服务以及应用程序的终端点 2.因此,当网络呼叫触及应用程序时,它会通过使者代理进行路由,然后最终进入应用程序的终端服务。


Istio交通管理资源

了解了Istio作为交通管理工具的工作,让我们知道探索Istio设定的资源。

1、虚拟服务

通过虚拟服务,我们可以定义流量路由规则,在应用程序击中负载平衡器时可以帮助。

虚拟服务允许我们通过通过流量路由规则分离服务请求来轻松管理流量负载,我们可以在同一虚拟服务配置中指定和维护多个主机名称的流量行为。

现在让我们了解下面的虚拟服务配置示例。

 1apiVersion: networking.istio.io/v1alpha3
 2kind: VirtualService
 3metadata:
 4  name: demo-vs
 5spec:
 6  hosts:
 7  - demo.vs.com
 8  http:
 9  - match:
10    - headers:
11        end-user:
12          exact: /api
13    route:
14    - destination:
15        host: /

解释 -

  • 主机输入包括应用程序的域名或CNAME
  • 然后我们通过HTTP路由滑动,并将匹配的后端服务配置为特定主机/目的地
  • 在匹配部分下,即将召唤后端服务配置,一旦主机输入匹配
  • HTTP部分包含被重定向到目的地的路由规则
  • 一旦网络流量/请求到达Istio网关,它就会搜索其CNAME/FQDN输入。

2、门户

通过Gateway,我们可以灵活地在全球(发送)层面控制和监控输入和输出流量,我们可以指定我们想要进入ISTIO服务网的流量类型(协议 / 规则),以便进一步路由到目的地。

因此,一旦应用程序 URL 到达负载平衡器,它就会搜索一个等同的网关,一旦找到该条目,它就允许应用程序主机进入网格。

让我们试着通过下面的例子来理解一个Gateway的工作。

 1apiVersion: networking.istio.io/v1alpha3
 2kind: Gateway
 3metadata:
 4  name: demo-gtwy
 5spec:
 6  selector:
 7    app: demo
 8  servers:
 9  - port:
10      number: 443
11      name: https
12      protocol: HTTPS
13    hosts:
14    - demo.vs.com
15    tls:
16      mode: SIMPLE
17      credentialName: demo-tls-cert

** 解释:**

*一旦网络流量到达负载平衡器,它就会被路由到Istio网关。网关允许流量通过引用端口(433)进入服务网关。 *但是,没有流量路由到后端服务发生在这个阶段 *网关通过TLS秘密(凭证)寻找CNAME的可信度。 *一旦网关确认并允许来自主机的流量,虚拟服务就接管并向目的地服务进行路由


3、西方人

借助Sidecars,我们可以限制和管理到达Envoy代理的流量。以通用方式,Istio配置了一个Envoy代理,它可以接受与应用程序工作负载相关的端口的流量。

  • 我们可以过滤和管理发件人应该接受的协议和端口 *我们还可以过滤和限制发件人代理从某些服务到达或转发流量 *它可以允许/限制不同名称空间内的服务流量

现在让我们试着用下面的例子来理解Sidecars的概念。

 1apiVersion: networking.istio.io/v1alpha3
 2kind: Sidecar
 3metadata:
 4  name: default
 5  namespace: default
 6spec:
 7  egress:
 8  - hosts:
 9    - "./*"
10    - "bookinfo/*"

** 解释:**

  • 在上述配置中,它将一项 sidecar 配置应用于默认的名称空间
  • 此配置允许外部/egress 流量仅访问 默认bookinfo名称空间的后端服务
  • 通过此,它将流量路由/可访问性限制到其他名称空间

结论

由此,我们已经接近这个话题的尽头. 请自由评论下面,如果你遇到任何问题。

有关Kubernetes的更多此类帖子,与我们保持一致。

直到那时,快乐的学习! :)

Published At
Categories with 技术
Tagged with
comments powered by Disqus