如何解决envoy 代理初始化需要 3 多分钟
我正在使用 Envoy 代理路由与在 linux docker 容器上运行的多个集群的调用。我在这里观察到的初始化过程需要 3 分钟以上,这通常发生在集群的端点套接字地址错误时(这是套接字地址被标记化并且在特使代理服务器初始化期间未解析的情况)。 有什么建议可以解决这个延迟问题吗?
[2021-05-07 13:16:39.125][7][info][config] [source/server/configuration_impl.cc:103] loading tracing configuration
[2021-05-07 13:16:39.125][7][info][config] [source/server/configuration_impl.cc:69] loading 0 static secret(s)
[2021-05-07 13:16:39.125][7][info][config] [source/server/configuration_impl.cc:75] loading 13 cluster(s)
[2021-05-07 13:16:39.137][7][info][config] [source/server/configuration_impl.cc:79] loading 6 listener(s)
[2021-05-07 13:16:39.150][7][info][config] [source/server/configuration_impl.cc:129] loading stats sink configuration
[2021-05-07 13:16:39.151][7][info][main] [source/server/server.cc:652] starting main dispatch loop
[2021-05-07 13:19:09.152][7][info][runtime] [source/common/runtime/runtime_impl.cc:524] RTDS has finished initialization
[2021-05-07 13:19:09.152][7][info][upstream] [source/common/upstream/cluster_manager_impl.cc:182] cm init: all clusters initialized
[2021-05-07 13:19:09.152][7][info][main] [source/server/server.cc:631] all clusters initialized. initializing init manager
[2021-05-07 13:19:09.152][7][info][config] [source/server/listener_manager_impl.cc:844] all dependencies initialized. starting workers
[2021-05-07 13:19:09.153][7][warning][main] [source/server/server.cc:537] there is no configured limit to the number of allowed active connections. Set a limit via the runtime key overload.global_downstream_max_connections
此外,我正在阅读有关此 initial_fetch_timeout (https://www.envoyproxy.io/docs/envoy/v1.12.0/api-v2/api/v2/core/config_source.proto#envoy-api-field-core-configsource-initial-fetch-timeout) 的信息,但对其实现的线索并不多。
以下是我正在使用的 yaml:
admin:
access_log_path: /var/log/envoy_admin_access.log
address:
socket_address:
protocol: TCP
address: 0.0.0.0
port_value: 9901
static_resources:
listeners:
- name: listener_http
address:
socket_address:
protocol: TCP
address: 0.0.0.0
port_value: 8080
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
access_log:
- name: envoy.access_loggers.file
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /dev/stdout
- name: envoy.access_loggers.file
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /var/log/envoy_httpaccessLog.log
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains:
- "*"
routes:
- match:
prefix: "/"
redirect: { https_redirect: true }
http_filters:
- name: envoy.filters.http.router
- name: listener_https
address:
socket_address:
protocol: TCP
address: 0.0.0.0
port_value: 8443
filter_chains:
transport_socket:
name: envoy.transport_sockets.tls
typed_config:
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
common_tls_context:
tls_certificates:
- certificate_chain:
filename: "/etc/envoy/certificates/envoy.crt"
private_key:
filename: "/etc/envoy/certificates/envoy.key"
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_https
access_log:
- name: envoy.access_loggers.file
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /var/log/envoy_httpsAccessLog.log
- name: envoy.access_loggers.file
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /dev/stdout
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains:
- "*"
routes:
- match:
prefix: "/.well-known"
route:
cluster: AuthServer
- match:
prefix: "/authserver"
route:
cluster: AuthServer
- match:
prefix: "/dl"
route:
cluster: dlServer
- match:
prefix: "/api/smart"
route:
cluster: SmartService
- match:
prefix: "/MetaData"
route:
cluster: MetaDataServer
- match:
prefix: "/MetaInfo"
route:
cluster: MetaDataServer
http_filters:
- name: envoy.filters.http.router
- name: listner_grpc
address:
socket_address:
protocol: TCP
address: 0.0.0.0
port_value: 8090
filter_chains:
transport_socket:
name: envoy.transport_sockets.tls
typed_config:
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
common_tls_context:
alpn_protocols: "h2"
tls_certificates:
- certificate_chain:
filename: "/etc/envoy/certificates/envoy.crt"
private_key:
filename: "/etc/envoy/certificates/envoy.key"
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
access_log:
- name: envoy.access_loggers.file
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /dev/stdout
- name: envoy.access_loggers.file
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /var/log/envoy_tcpaccessLog.log
route_config:
name: local_grpc
virtual_hosts:
- name: local_service
domains:
- "*"
routes:
- match:
prefix: "/"
grpc: {}
route:
cluster: gRPCServer
http_filters:
- name: envoy.filters.http.router
typed_config: {}
- name: listner_progress_grpc
address:
socket_address:
protocol: TCP
address: 0.0.0.0
port_value: 8091
filter_chains:
transport_socket:
name: envoy.transport_sockets.tls
typed_config:
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
common_tls_context:
alpn_protocols: "h2"
tls_certificates:
- certificate_chain:
filename: "/etc/envoy/certificates/envoy.crt"
private_key:
filename: "/etc/envoy/certificates/envoy.key"
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
access_log:
- name: envoy.access_loggers.file
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /dev/stdout
- name: envoy.access_loggers.file
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /var/log/envoy_tcpaccessLog.log
route_config:
name: local_grpc
virtual_hosts:
- name: local_service
domains:
- "*"
routes:
- match:
prefix: "/"
grpc: {}
route:
cluster: gRPCProgressServer
timeout: 0s
http_filters:
- name: envoy.filters.http.router
typed_config: {}
- name: listener_tcp
address:
socket_address:
protocol: TCP
address: 0.0.0.0
port_value: 32914
filter_chains:
filters:
- name: envoy.filters.network.tcp_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
stat_prefix: ingress_tcp
cluster: gateway_cluster
access_log:
- name: envoy.access_loggers.file
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /dev/stdout
- name: envoy.access_loggers.file
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /var/log/envoy_tcpaccessLog.log
- name: listener_teamviewer_tcp
address:
socket_address:
protocol: TCP
address: 0.0.0.0
port_value: 11080
filter_chains:
filters:
- name: envoy.filters.network.tcp_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
stat_prefix: ingress_tcp
cluster: gateway_teamviewer
access_log:
- name: envoy.access_loggers.file
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /dev/stdout
- name: envoy.access_loggers.file
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /var/log/envoy_tcpaccessLog.log
clusters:
- name: AuthServer
connect_timeout: 0.25s
type: LOGICAL_DNS
# Comment out the following line to test on v6 networks
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: AuthServer
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: ${WindowsHostName}
port_value: 10002
transport_socket:
name: envoy.transport_sockets.tls
typed_config:
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext
- name: SmartServer
connect_timeout: 0.25s
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: SmartServer
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: smartguide
port_value: 8080
- name: dlServer
connect_timeout: 0.25s
type: LOGICAL_DNS
# Comment out the following line to test on v6 networks
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: dlServer
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: ${WindowsHostName}
port_value: 10100
- name: SmartService
connect_timeout: 0.25s
type: LOGICAL_DNS
# Comment out the following line to test on v6 networks
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: SmartService
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: ${WindowsHostName}
port_value: 10101
- name: MetaDataServer
connect_timeout: 0.25s
type: LOGICAL_DNS
# Comment out the following line to test on v6 networks
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: MetaDataServer
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: ${WindowsHostName}
port_value: 10200
- name: gRPCServer
connect_timeout: 0.25s
type: strict_dns
# Comment out the following line to test on v6 networks
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
http2_protocol_options: {}
load_assignment:
cluster_name: gRPCServer
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: ${WindowsHostName}
port_value: 32915
- name: gRPCProgressServer
connect_timeout: 0.25s
type: strict_dns
# Comment out the following line to test on v6 networks
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
http2_protocol_options: {}
load_assignment:
cluster_name: gRPCProgressServer
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: ${ReaderHostName}
port_value: 44151
- name: gateway_cluster
connect_timeout: 0.25s
type: LOGICAL_DNS
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: gateway_cluster
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: ${GatewayHostName}
port_value: 32914
- name: gateway_teamviewer
connect_timeout: 0.25s
type: LOGICAL_DNS
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: gateway_teamviewer
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: ${GatewayHostName}
port_value: 11080
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。