全部产品
Search
文档中心

服务网格 ASM:使用Envoy过滤器模板创建Envoy过滤器

更新时间:Feb 28, 2024

ASM支持通过Envoy过滤器模板创建Envoy过滤器。同一个Envoy过滤器模板可以被用来创建多个Envoy过滤器,应用于不同的工作负载和命名空间,从而提高配置的复用性和管理效率。在ASM进行版本升级时,Envoy过滤器模板可以自动创建或变更对应的Envoy过滤器,保证新旧版本之间的平滑过渡,减少手动维护的复杂性和潜在的错误。

前提条件

已添加集群到ASM实例,且ASM实例版本为1.12.4.0及以上。关于如何升级ASM实例,请参见升级ASM实例

Envoy过滤器模板与Envoy过滤器关系

Envoy过滤器模板与Envoy过滤器之间是抽象与实例化的关系。Envoy过滤器模板充当一个蓝图或定义,规定了创建实际运行的Envoy过滤器时所需的配置信息和参数。

  • Envoy过滤器模板:一个预定义的配置结构,包含了创建Envoy过滤器所需要的所有规则和参数模板。模板定义了如何对通过Envoy代理的流量进行处理,但它本身并不直接应用于流量。

  • Envoy过滤器:根据模板创建的实际配置实体,它被应用于服务网格中的Envoy代理,以过滤和处理通过代理的流量。一个Envoy过滤器是模板的具体实例化,它将模板中的规则和参数应用于真实的服务流量中。

由于Envoy过滤器存在版本兼容性风险,自行创建Envoy过滤器对网格的升级与维护都造成了较大挑战。从ASM自1.12.4.0版本起,支持通过管理Envoy过滤器模板来创建Envoy过滤器。在服务网格进行版本升级时,Envoy过滤器模板将根据适配的版本自动创建或变更对应的Envoy过滤器,从而控制Envoy过滤器的版本兼容风险,降低Envoy过滤器使用门槛。

创建Envoy过滤器模板后,您需要将Envoy过滤器模板绑定至指定的工作负载及命名空间,然后ASM会自动创建对应的Envoy过滤器。一个Envoy过滤器模板可以绑定多个工作负载和命名空间,您可以通过这种方式创建多个Envoy过滤器。

步骤一:创建Envoy过滤器模板

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理

  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择插件扩展中心 > Envoy过滤器模板,然后单击创建Envoy过滤器模板

  3. 创建页面的基本信息区域,输入Envoy过滤器模板的名称。

  4. 多版本适配Envoy过滤器模板区域,单击添加Envoy过滤器模板适配版本,选择适配Istio版本,输入适配该版本的Envoy过滤器内容,然后单击创建

    说明
    • 如果您的ASM版本为1.18.0.146及以上,适配Istio版本区域默认选中无最小版本下限无最大版本上限。若您需要自定义Isito版本区间,可以取消选中无最小版本下限无最大版本上限,然后输入自定义版本。

    • 关于Envoy过滤器(Envoy Filter)的配置示例和字段说明,请参见Envoy Filter

    创建完成后,您可以在Envoy过滤器模板页面,查看已创建的Envoy过滤器模板。

步骤二:将Envoy过滤器模板绑定至工作负载或命名空间

Envoy过滤器模板创建成功后,您需要将Envoy过滤器模板绑定至指定的工作负载或命名空间,从而使Envoy过滤器仅在指定工作负载或命名空间上生效。绑定工作负载或命名空间后,将自动创建Envoy过滤器。请您按照实际版本选择以下操作。

ASM版本为1.18.0.146以下

绑定Envoy过滤器模板与工作负载

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理

  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择插件扩展中心 > Envoy过滤器模板

  3. Envoy过滤器模板页面,单击目标Envoy过滤器模板右侧操作列下的编辑模板

  4. 编辑Envoy过滤器模板页面,单击绑定工作负载页签,然后单击选定工作负载绑定

  5. 选定工作负载绑定对话框,选择命名空间工作负载类型,单击未绑定区域目标工作负载右侧的绑定,然后单击确定

    在网格详情页面左侧导航栏,选择插件扩展中心 > Envoy过滤器。在Envoy过滤器页面,可以看到自动创建的Envoy过滤器。

绑定Envoy过滤器模板与命名空间

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理

  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择插件扩展中心 > Envoy过滤器模板

  3. Envoy过滤器模板页面,单击目标Envoy过滤器模板右侧操作列下的编辑模板

  4. 编辑Envoy过滤器模板页面,单击绑定工作负载页签,然后单击绑定命名空间

  5. 绑定命名空间对话框的未绑定区域,单击目标命名空间的名称,然后单击确定

    说明

    如果您绑定的命名空间是istio-system,则会让EnvoyFilter全局生效,您已经创建的其它绑定都将自动解绑,因此您需要二次确认是否绑定istio-system。

    在网格详情页面左侧导航栏,选择插件扩展中心 > Envoy过滤器。在Envoy过滤器页面,可以看到自动创建的Envoy过滤器。

ASM版本为1.18.0.146及以上

绑定Envoy过滤器模板与工作负载

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理

  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择插件扩展中心 > Envoy过滤器模板

  3. Envoy过滤器模板页面,单击目标Envoy过滤器模板右侧操作列下的编辑模板

  4. 编辑Envoy过滤器模板页面下方,查看绑定工作负载区域。

    如果页面显示模板已适配此版本,但还未创建应用于此版本数据面的Envoy过滤器,单击右侧的创建

  5. 绑定工作负载区域,单击选定工作负载绑定,在选定工作负载绑定对话框,选择命名空间工作负载类型,在未绑定区域的操作列,单击目标工作负载对应的绑定,然后单击确定

    在网格详情页面左侧导航栏,选择插件扩展中心 > Envoy过滤器。在Envoy过滤器页面,可以看到自动创建的Envoy过滤器。

绑定Envoy过滤器模板与命名空间

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理

  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择插件扩展中心 > Envoy过滤器模板

  3. Envoy过滤器模板页面,单击目标Envoy过滤器模板右侧操作列下的编辑模板

  4. 编辑Envoy过滤器模板页面下方,查看绑定工作负载区域。

    如果页面显示模板已适配此版本,但还未创建应用于此版本数据面的Envoy过滤器,单击右侧的创建

  5. 绑定工作负载区域,单击绑定命名空间,在绑定命名空间对话框的未绑定区域,单击目标命名空间的名称,然后单击确定

    说明

    如果您绑定的命名空间是istio-system,则会让EnvoyFilter全局生效,您已经创建的其它绑定都将自动解绑,因此您需要二次确认是否绑定istio-system。

    在网格详情页面左侧导航栏,选择插件扩展中心 > Envoy过滤器。在Envoy过滤器页面,可以看到自动创建的Envoy过滤器。

相关操作

修改Envoy过滤器

说明

仅支持修改通过自定义模板创建的Envoy过滤器,不支持修改通过预置模板创建的Envoy过滤器。在Envoy过滤器模板页面中显示为ASM插件的Envoy过滤器模板即为预置模板。

Envoy过滤器模板页面,单击目标Envoy过滤器模板右侧操作列下的编辑模板,修改配置参数,然后单击变更模板内容。修改Envoy过滤器模板后,将自动更新Envoy过滤器。

删除Envoy过滤器

  • 通过解绑Envoy过滤器模板与工作负载的方式删除Envoy过滤器

    Envoy过滤器模板页面,单击目标Envoy过滤器模板右侧操作列下的编辑模板,单击绑定工作负载页签,单击选定工作负载绑定,在选定工作负载绑定对话框的已绑定区域中单击解绑,然后单击确定。解绑Envoy过滤器模板与工作负载后,将自动删除对应的Envoy过滤器。

  • 通过解绑Envoy过滤器模板与命名空间的方式删除Envoy过滤器

    Envoy过滤器模板页面,单击目标Envoy过滤器模板右侧操作列下的编辑模板,单击绑定工作负载页签,单击绑定命名空间,在绑定命名空间对话框的已绑定区域中单击命名空间名称,然后单击确定。解绑Envoy过滤器模板与命名空间后,将自动删除对应的Envoy过滤器。

  • 通过删除Envoy过滤器模板方式删除Envoy过滤器

    Envoy过滤器模板页面,单击目标Envoy过滤器模板右侧操作列下的删除,在弹出的对话框中单击确定。删除Envoy过滤器模板后,将自动删除Envoy过滤器。