istio : 支持的filter类型

Envoy Filter详解:HTTP与Network过滤器类型概览
本文详细介绍了Envoy代理中支持的HTTP和Network过滤器类型,包括Buffer、CORS、Dynamo、Fault等HTTP过滤器,以及ClientSSLAuth、TCPProxy、HTTPConnectionManager等Network过滤器。这些过滤器在服务网格中起到关键作用,如流量管理和安全性增强。

istio支持的所有的filter类型可以分为以下几类

HTTP filter

// Buffer HTTP filter
	Buffer = "envoy.filters.http.buffer"
	// CORS HTTP filter
	CORS = "envoy.filters.http.cors"
	// Dynamo HTTP filter
	Dynamo = "envoy.filters.http.dynamo"
	// Fault HTTP filter
	Fault = "envoy.filters.http.fault"
	// GRPCHTTP1Bridge HTTP filter
	GRPCHTTP1Bridge = "envoy.filters.http.grpc_http1_bridge"
	// GRPCJSONTranscoder HTTP filter
	GRPCJSONTranscoder = "envoy.filters.http.grpc_json_transcoder"
	// GRPCWeb HTTP filter
	GRPCWeb = "envoy.filters.http.grpc_web"
	// Gzip HTTP filter
	Gzip = "envoy.filters.http.gzip"
	// IPTagging HTTP filter
	IPTagging = "envoy.filters.http.ip_tagging"
	// HTTPRateLimit filter
	HTTPRateLimit = "envoy.filters.http.ratelimit"
	// Router HTTP filter
	Router = "envoy.filters.http.router"
	// Health checking HTTP filter
	HealthCheck = "envoy.filters.http.health_check"
	// Lua HTTP filter
	Lua = "envoy.filters.http.lua"
	// Squash HTTP filter
	Squash = "envoy.filters.http.squash"
	// HTTPExternalAuthorization HTTP filter
	HTTPExternalAuthorization = "envoy.filters.http.ext_authz"
	// HTTPRoleBasedAccessControl HTTP filter
	HTTPRoleBasedAccessControl = "envoy.filters.http.rbac"
	// HTTPGRPCStats HTTP filter
	HTTPGRPCStats = "envoy.filters.http.grpc_stats"

Network filter

// ClientSSLAuth network filter
	ClientSSLAuth = "envoy.filters.network.client_ssl_auth"
	// Echo network filter
	Echo = "envoy.filters.network.echo"
	// HTTPConnectionManager network filter
	HTTPConnectionManager = "envoy.filters.network.http_connection_manager"
	// TCPProxy network filter
	TCPProxy = "envoy.filters.network.tcp_proxy"
	// RateLimit network filter
	RateLimit = "envoy.filters.network.ratelimit"
	// MongoProxy network filter
	MongoProxy = "envoy.filters.network.mongo_proxy"
	// ThriftProxy network filter
	ThriftProxy = "envoy.filters.network.thrift_proxy"
	// RedisProxy network filter
	RedisProxy = "envoy.filters.network.redis_proxy"
	// MySQLProxy network filter
	MySQLProxy = "envoy.filters.network.mysql_proxy"
	// ExternalAuthorization network filter
	ExternalAuthorization = "envoy.filters.network.ext_authz"
	// RoleBasedAccessControl network filter
	RoleBasedAccessControl = "envoy.filters.network.rbac"

Listener filter

// OriginalDestination listener filter
	OriginalDestination = "envoy.filters.listener.original_dst"
	// ProxyProtocol listener filter
	ProxyProtocol = "envoy.filters.listener.proxy_protocol"
	// TlsInspector listener filter
	TlsInspector = "envoy.filters.listener.tls_inspector"
	// HttpInspector listener filter
	HttpInspector = "envoy.filters.listener.http_inspector"```


### Istio 和 Nacos 的集成与兼容性 Nacos 支持几乎所有的服务类型,例如 Dubbo/gRPC 服务、Spring Cloud RESTful 服务或 Kubernetes 服务[^1]。这表明 Nacos 可以作为多种微服务体系的服务发现和配置管理工具。 对于 Istio 来说,其核心功能之一就是提供强大的流量管理和安全特性给基于容器化部署的应用程序和服务网格环境中的服务通信。为了实现这一点,Istio 使用自己的控制平面组件 Pilot 进行服务发现并维护整个网格内的路由规则。 当考虑将 Nacos 集成到由 Istio 管理的服务网格环境中时,主要关注的是如何让两者协同工作来完成服务注册与发现的任务: - **服务注册**:应用程序实例启动后会向 Nacos 注册自己;而这些信息也可以通过适配器同步至 Istio 的内部存储中。 - **服务发现**:应用查询可用的服务列表时可以从 Nacos 获取数据,并且该过程可以被设计为透明地传递请求给 Istio 或者直接返回来自 Nacos 的结果集。 具体来说,在技术层面上可以通过编写自定义的 Envoy Filter 或者利用 Webhook 实现上述目标。此外,还有可能开发专门针对此场景优化过的中间件解决方案,从而简化集成流程并提高系统的稳定性和性能表现。 下面是一个简单的 Python 脚本示例,用于展示如何在一个使用了 Istio 的项目里调用 Nacos API 完成基本操作(如获取某个命名空间下的所有服务): ```python import requests def get_services_from_nacos(namespace_id, nacos_url="http://localhost:8848"): url = f"{nacos_url}/nacos/v1/ns/service/list" params = {"namespaceId": namespace_id} response = requests.get(url,params=params) if response.status_code == 200: data = response.json() return data['hosts'] else: raise Exception(f"Failed to fetch services from Nacos: {response.text}") if __name__ == "__main__": try: services = get_services_from_nacos("public") print(services) except Exception as e: print(e) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值