配置概览

MOSN 配置文件概览。

MOSN 的配置文件可以分为以下四大部分:

  • Servers 配置,目前仅支持最多 1 个 Server 的配置,Server 中包含一些基础配置以及对应的 Listener 配置
  • ClusterManager 配置,包含 MOSN 的 Upstream 详细信息
  • 对接控制平面(Pilot)的 xDS 相关配置
  • 其他配置
    • Trace、Metrics、Debug、Admin API 相关配置
    • 扩展配置,提供自定义配置扩展需求

配置文件概览

MOSN 的基本配置部分如下所示:

  1. {
  2. "servers": [],
  3. "cluster_manager": {},
  4. "dynamic_resources": {},
  5. "static_resources": {},
  6. "admin":{},
  7. "pprof":{},
  8. "tracing":{},
  9. "metrics":{}
  10. }

配置类型

MOSN 的配置包括以下几种类型:

  • 静态配置
  • 动态配置
  • 混合模式

静态配置

  • 静态配置是指 MOSN 启动时,不对接控制平面 Pilot 的配置,用于一些相对固定的简单场景(如 MOSN 的示例)。
  • 使用静态配置启动的 MOSN,也可以通过扩展代码,调用动态更新配置的接口实现动态修改。
  • 静态配置启动时必须包含一个 Server 以及至少一个 Cluster。

动态配置

  • 动态配置是指 MOSN 启动时,只有访问控制平面相关的配置,没有 MOSN 运行时所需要的配置。

  • 使用动态配置启动的 MOSN,会向管控面请求获取运行时所需要的配置,管控面也可能在运行时推送更新 MOSN 运行配置。

  • 动态配置启动时必须包含 DynamicResourcesStaticResources 配置。

混合模式

MOSN 启动时的配置可以同时包含静态模式与动态模式,以混合模式启动的 MOSN 会先以静态配置完成初始化,随后可能由控制平面获取配置更新。

配置示例

静态配置示例

静态配置的示例如下所示。

  1. {
  2. "servers": [
  3. {
  4. "default_log_path": "/home/admin/logs/mosn/default.log",
  5. "default_log_level": "DEBUG",
  6. "processor": 4,
  7. "listeners": [
  8. {
  9. "address": "0.0.0.0:12220",
  10. "bind_port": true,
  11. "filter_chains": [
  12. {
  13. "filters": [
  14. {
  15. "type": "proxy",
  16. "config": {
  17. "downstream_protocol": "SofaRpc",
  18. "upstream_protocol": "SofaRpc",
  19. "router_config_name": "test_router"
  20. }
  21. },
  22. {
  23. "type": "connection_manager",
  24. "config": {
  25. "router_config_name": "test_router",
  26. "virtual_hosts": []
  27. }
  28. }
  29. ]
  30. }
  31. ]
  32. }
  33. ]
  34. }
  35. ],
  36. "cluster_manager": {
  37. "clusters": [
  38. {
  39. "name":"example",
  40. "lb_type": "LB_ROUNDROBIN",
  41. "hosts": [
  42. {"address": "127.0.0.1:12200"}
  43. ]
  44. }
  45. ]
  46. }
  47. }

动态配置示例

动态配置的示例如下所示。

  1. {
  2. "dynamic_resources": {
  3. "ads_config": {
  4. "api_type": "GRPC",
  5. "grpc_services": [
  6. {
  7. "envoy_grpc": {"cluster_name": "xds-grpc"}
  8. }
  9. ]
  10. }
  11. }
  12. },
  13. "static_resources": {
  14. "clusters": [
  15. {
  16. "name": "xds-grpc",
  17. "type": "STRICT_DNS",
  18. "connect_timeout": "10s",
  19. "lb_policy": "ROUND_ROBIN",
  20. "hosts": [
  21. {
  22. "socket_address": {"address": "pilot", "port_value": 15010}
  23. }
  24. ],
  25. "upstream_connection_options": {
  26. "tcp_keepalive": {
  27. "keepalive_time": 300
  28. }
  29. },
  30. "http2_protocol_options": { }
  31. }
  32. ]
  33. }
  34. }

ClusterManager 配置

MOSN ClusterManager 配置说明。

Server 配置

MOSN server 配置说明。

Trace 配置

MOSN trace 配置说明。

自定义配置

MOSN 自定义配置说明。

修改于 2021年3月5日: add go-import for proxy-wasm-go-host (847dfb6)