ljzsdut
GitHubToggle Dark/Light/Auto modeToggle Dark/Light/Auto modeToggle Dark/Light/Auto modeBack to homepage
Edit page

08 X Ds之基于grpc管理服务器订阅

以EDS为例,Cluster为静态定义,其各Endpoint通过EDS动态发现;

EDS配置格式

clusters: 
- name:
	...
	eds_cluster_config:
		service_name: 
		eds_config:
			api_config_source:
				api_type: ... # API可经由REST或gRPC获取,支持的类型包括REST、GRPC和DELTA_GRPC 
				rate_limit_settings: {...} # 速率限制
				grpc_services: # 提供grpc服务的一到多个服务源
					envoy_grpc: # Envoy内建的grpc客户端,envoy_grpc和google_grpc二者仅能用其一; 
						cluster_name: ... # grpc集群的名称;
					google_grpc: # Google的C++ grpc客户端 
					timeout: ... # grpc超时时长;

注意:提供REST API服务的管理服务器也需要定义为Envoy上的集群,并由 eds等相关的动态发现服务进行调用;一般,这些管理服务器需要以静态的方式提供;

基于grpc的EDS示例:

root@istio:~/ServiceMesh_in_Practise/eds-grpc# ls
Dockerfile-envoy  docker-compose.yaml  envoy.yaml  resources

基于grpc的全动态配置示例:

将Listener、Route、Cluster和Endpoint的定义分别以lds、rds、cds和eds提供。

root@istio:~/ServiceMesh_in_Practise/lds-cds-grpc# ls
Dockerfile-envoy  docker-compose.yaml  envoy.yaml  resources