当调试特使时,我尝试从转储的配置文件中运行,但无法弄清楚。
使用envoy admin api '/config_dump'转储配置。
curl -X POST http://127.0.0.1:15000/config_dump -o envoy.config
但是无法启动,出现错误:
envoy --config-path envoy.config
...
[2019-12-22 12:40:50.313][194][critical][main] [external/envoy/source/server/server.cc:98] error initializing configuration 'envoy.config': Protobuf message (type envoy.config.bootstrap.v2.Bootstrap reason INVALID_ARGUMENT:configs: Cannot find field.) has unknown fields
[2019-12-22 12:40:50.313][194][info][main] [external/envoy/source/server/server.cc:607] exiting Protobuf message (type envoy.config.bootstrap.v2.Bootstrap reason INVALID_ARGUMENT:configs: Cannot find field.) has unknown fields
答案 0 :(得分:4)
实际上不打算将转储的配置用于启动服务器。您使用Bootstrap Config启动服务器,但是如果仔细查看/config_dump
端点的输出,则该服务器实际上包含5个或更多单独的配置转储。我的本地特使(Envoy 1.12.2)实际上显示了以下配置转储:
您可以在config dump docs中了解有关输出结构的更多信息,但其摘要是它是完全不同的结构。
如果您确实提取了/config_dump
的输出并将其剥离为bootstrap config字段,则确实可以使用它启动服务器。