首页 > 其他分享 >Envoy 流量分割

Envoy 流量分割

时间:2022-10-24 11:31:06浏览次数:46  
标签:... 分割 name weight envoy Envoy 流量 集群 address

流量分割

  • HTTP router过滤器支持在一个路由中指定多个上游具有权重属性的集群,而后将流量基于权重调度至此些集群其中之一;
  • 类似流量迁移,流量分割中,分配给每个集群的权重也可以使用运行时参数进行调整;

流量分割配置格式

--
routes
- match: {...}
route:
weight_clusters: {...}
clusters: [] # 与当前路由关联的一个或多个集群,必选参数;
- name: ... # 目标集群名称;也可以使用“cluster_header”字段来指定集群;二者互斥;
weight: ... # 集群权重,取值范围为0至total_weight;
metadata_match: {...} # 子集负载均衡器使用的端点元数据匹配条件,可选参数,仅用于上游集群中具有与此字段中设置的元数据匹配的元数端点以进行流量分配;
total_weight: ... # 总权重值,默认为100;
runtime_key_prefix: ... # 可选参数,用于设定键前缀,从而每个集群以“runtime_key_prefix+.+cluster[i].name”为其键名,并能够以运行时键值的方式为每个集群提供权重;其中,cluster[i].name表示列表中第i个集群名称;
...

流量分割配置示例

front-envoy.yaml

admin:
profile_path: /tmp/envoy.prof
access_log_path: /tmp/admin_access.log
address:
socket_address:
address: 0.0.0.0
port_value: 9901

layered_runtime:
layers:
- name: admin
admin_layer: {}

static_resources:
listeners:
- name: listener_0
address:
socket_address: { address: 0.0.0.0, port_value: 80 }
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: demoapp
domains: ["*"]
routes:
routes:
- match:
prefix: "/"
route:
weighted_clusters:
clusters:
- name: demoappv10
weight: 100
- name: demoappv11
weight: 0
total_weight: 100
runtime_key_prefix: routing.traffic_split.demoapp
http_filters:
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router

clusters:
- name: demoappv10
connect_timeout: 0.25s
type: STRICT_DNS
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: demoappv10
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: demoappv10
port_value: 80

- name: demoappv11
connect_timeout: 0.25s
type: STRICT_DNS
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: demoappv11
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: demoappv11
port_value: 80

动态调整流量分发比例

# 将集群权重对调来模拟蓝绿部署,方法是在指定键(runtime_key)的值后附加以点号分隔的集群名称,并为其各自定义为相应的新权重值即可;
curl -XPOST 'http://envoy_ip:9901/runtime_modify?routing.traffic_split.demoapp.demoappv10=0&routing.traffic_split.demoapp.demoappv11=100'

# 注意:各集群的权重之和要等于total_weight的值;

 



标签:...,分割,name,weight,envoy,Envoy,流量,集群,address
From: https://blog.51cto.com/u_4028786/5789222

相关文章

  • 一文详解高并发大流量指标
     在很多阿里双11高并发场景经常提到QPS、TPS、RT、吞吐量等指标,这些高并发高性能指标都是什么含义?如何来计算?下面我一一详解系统吞度量 系统吞吐量指的是系统在......
  • 代码复现:Copy-Paste 数据增强for语义分割
    一、前言前些天分享了一篇谷歌的数据增强论文,解读在这:https://www.cnblogs.com/tangjielin/p/16812816.html。可能由于方法比较简单,官方没有开源代码,于是,我自己尝试在语......
  • 【Kubernetes】K8s笔记(十一):Ingress 集群进出流量总管
    目录0.Ingress解决了什么问题1.IngressController2.指定IngressClass使用多个IngressController3.使用YAML描述Ingress/IngressClass3.1Ingress3.2Ingr......
  • vue 实现滚动数字效果,并且三位分割展示
    vue中animate-number组件可实现效果formatter(value){//returnnum.toFixed(2)if(!value)return'0'varintPa......
  • Istio流量治理基础
    流量治理Istio的流量路由规则使运维人员可以轻松控制服务之间的流量和API调用Istio简化了诸如断路器,超时和重试之类的服务级别属性的配置,并使其易于设置重要任务(A/B测......
  • 分割数组的最大值问题
    分割数组的最大值问题作者:Grey原文地址:博客园:分割数组的最大值问题CSDN:分割数组的最大值问题题目说明给定一个非负整数数组nums和一个整数m,你需要将这个数组分成......
  • tomcat中catalina.out按照时间分割(用crontab进行分割)
    具体操作log_control.sh脚本内容(最好是在服务器上vilog_control.sh进行创建文件)#!/bin/bashCUR_PWD="/root/apache-tomcat-8.5.42/logs/catalina_out_bak"NEWLOG=/ca......
  • 流量特征
    一些流量特征整理ApacheStruts2(CVE-2017-5638)Content-Type:%{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader("lywa2mzr,'1')}.......
  • 用CNN实现全景图像语义分割!
    作者:张强,Datawhale成员相信许多读者体验过b站上的全景视频,如果还没有,快来体验一下吧[1]!只需鼠标点击并移动,便可360度无死角的浏览全景视频,让人如同身临其境。全景图像,又称36......
  • CV语义分割实践指南!
     Datawhale干货 作者:徐和鼎,浙江大学,Datawhale优秀学习者遥感技术已成为获取地表覆盖信息最为行之有效的手段,已经成功应用于地表覆盖检测、植被面积检测和建筑物检测任务。......