skywalking服务启动后,默认监听127.0.0.1,本着玩的目的,我们使用envoy代理提供对外服务!
首先开启基于文件的动态配置
基于文件发现的配置如下, 其中lds代表监听集群发现, cds 代表集群发现。 eds 代表终端发现
node:
id: id_1
cluster: test
admin:
access_log_path: /tmp/admin_access.log
address:
socket_address: { address: 127.0.0.1, port_value: 9901 }
dynamic_resources:
lds_config:
resource_api_version: V3
path: "./lds/lds.yaml"
cds_config:
resource_api_version: V3
path: "./cds/cds.yaml"
layered_runtime:
layers:
- name: static_layer_0
static_layer:
envoy:
resource_limits:
listener:
example_listener_name:
connection_limit:10000
overload:
global_downstream_max_connections:50000
我们lds配置
resources:
- name: sky_listen
"@type": type.googleapis.com/envoy.config.listener.v3.Listener
address:
socket_address: { address: 0.0.0.0, port_value: 18080 }
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: in2magic
virtual_hosts:
- name: sky_service
domains: ["*"]
routes:
- match: { prefix: "/" }
route:
cluster: sky_web_cs
# host_rewrite_literal: www.baidu.com
idle_timeout: 15s # must be disabled for long-lived
- match: { prefix: "/graphql" }
route:
cluster: sky_bd_cs
# host_rewrite_literal: www.baidu.com
idle_timeout: 15s # must be disabled for long-lived
http_filters:
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
我们的cds配置
resources:
- "@type": type.googleapis.com/envoy.config.cluster.v3.Cluster
name: sky_web_cs
connect_timeout: 0.25s
lb_policy: ROUND_ROBIN
type: EDS
eds_cluster_config:
eds_config:
path: "./eds/sky_web_eds.yaml"
- "@type": type.googleapis.com/envoy.config.cluster.v3.Cluster
name: sky_bd_cs
connect_timeout: 0.25s
lb_policy: ROUND_ROBIN
type: EDS
eds_cluster_config:
eds_config:
path: "./eds/sky_bd_eds.yaml"
我们的eds配置
resources:
- "@type": type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment
cluster_name: sky_bd_cs
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: 127.0.0.1
port_value: 12800
resources:
- "@type": type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment
cluster_name: sky_web_cs
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: 127.0.0.1
port_value: 8787
这样就搞定了!