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