白话Istio—流量管理四大概念

本文解析了Istio中的虚拟服务、目标规则、网关和服务入口等核心概念。介绍了虚拟服务如何通过路由规则实现流量导向,目标规则如何定义流量策略,以及网关和服务入口在管理网格内外流量中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Istio
前言: 白话系列呢,我希望通过比较白话的方式 说下对一些概念的理解, 也希望能够帮助到大家快速的理解一些复杂的概念。

看完了Istio 官方文档,总结下我自己对Istio基础概念的一些理解。

一、如何理解虚拟服务和目标规则?

1.1 虚拟服务(VirtualService)

作用: 将流量路由到给定目标地址。

白话理解:虚拟服务是对一个或多个地址 *(即为:目标地址)的访问的一种抽象,可以理解对 一个或多个K8s Service访问的抽象, 访问方式就是spec.hosts定义的字段。

在虚拟服务中,使用路由规则告诉Envoy如何发送虚拟服务的流量到适当的目标。 路由目标地址可以是 同一服务的不同版本,也可以使不同服务。

为了帮助大家全方位理解, 这里拿 Virtual Service和 K8s Service坐下对比。

可以类比K8s Service, K8s Service 是对Pod 访问的一种抽象, 而Istio VirtualService 是对 一个或多个地址(地址是服务发现系统里的服务, 比如: K8s里的Service)访问的抽象。

同时, Istio VirtualService还描述了流量行为。

注意: 路由规则中的目标地址, 也就是VirtualService中 route.destination.host字段,必须是存在于Istio 服务注册中心的实际目标地址。 可以是一个有代理的服务网格, 或者是一个通过服务入口被添加进来非服务网格。 。

1.2 目标规则(DestinationRule)

**作用:DestinationRule定义了在路由发生后应用于服务(目标地址)流量的策略。

这些规则主要指定负载平衡的配置, Sidecar 的连接池大小以及离群值检测设置,以从负载平衡池中检测和清除不正常的主机。 同时,DstinationRule还有版本指定策略。

白话理解: 虚拟服务通过路由规则实现了将访问VirtualService spec.hosts的流量路由到了 destination.host, 而 destination.host 又可能是一个集合。

比如说它可能是 K8s Service , 如何从 K8s Service到达真正的后端Pod呢? Destination 可以实现此功能。

除了负载均衡策略外, 还可以通过 subnets对目标集合进行分组。 灰度、金丝雀、A/B 等分流功能比较依赖分组策略的这个功能。

1.3 举个栗子

这个配置的用意是,发送到 reviews 服务(在 host 字段中标识)的流量应该被路由到 reviews 服务实例的 v1 子集中。路由中的 subset 指定了一个预定义的子集名称,

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: reviews
spec:
  hosts:
  - reviews
  http:
  - route:
    - destination:
        host: reviews
        subset: v1

子集的定义来自于目标规则配置:

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: reviews
spec:
  host: reviews
  subsets:
  - name: v1
    labels:
      version: v1
  - name: v2
    labels:
      version: v2

二、 如何理解Istio 网关(Gateway)?

  • 网关是网格来管理入站与出站流量的,可以指定要进入或离开的网格流量;

  • 由运行在网格边界的独立Envoy代理;

  • 网关代理部署(istio-ingressgateway 和 istio-egressgateway)

三、 如何理解服务入口(ServiceEntry)?

服务入口 允许管理运行在网格外的服务的流量;

场景可以类比 K8s中的Service ExternalName;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值