配置概览

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. "servers": [
  3. {
  4. "default_log_path": "stdout",
  5. "default_log_level": "DEBUG"
  6. }
  7. ],
  8. "static_resources": {
  9. "clusters": [
  10. {
  11. "connect_timeout": "1s",
  12. "load_assignment": {
  13. "cluster_name": "xds_cluster",
  14. "endpoints": [
  15. {
  16. "lb_endpoints": [
  17. {
  18. "endpoint": {
  19. "address": {
  20. "socket_address": {
  21. "address": "127.0.0.1",
  22. "port_value": 9002
  23. }
  24. }
  25. }
  26. }
  27. ]
  28. }
  29. ]
  30. },
  31. "http2_protocol_options": {},
  32. "name": "xds_cluster"
  33. }
  34. ]
  35. },
  36. "dynamic_resources": {
  37. "ads_config": {
  38. "api_type": "GRPC",
  39. "transport_api_version": "V3",
  40. "grpc_services": [
  41. {
  42. "envoy_grpc": {
  43. "cluster_name": "xds_cluster"
  44. }
  45. }
  46. ],
  47. "set_node_on_first_message_only": true
  48. },
  49. "cds_config": {
  50. "resource_api_version": "V3",
  51. "api_config_source": {
  52. "api_type": "GRPC",
  53. "transport_api_version": "V3",
  54. "grpc_services": [
  55. {
  56. "envoy_grpc": {
  57. "cluster_name": "xds_cluster"
  58. }
  59. }
  60. ],
  61. "set_node_on_first_message_only": true
  62. }
  63. },
  64. "lds_config": {
  65. "resource_api_version": "V3",
  66. "api_config_source": {
  67. "api_type": "GRPC",
  68. "transport_api_version": "V3",
  69. "grpc_services": [
  70. {
  71. "envoy_grpc": {
  72. "cluster_name": "xds_cluster"
  73. }
  74. }
  75. ],
  76. "set_node_on_first_message_only": true
  77. }
  78. }
  79. },
  80. "node": {
  81. "cluster": "test-cluster",
  82. "id": "test-id"
  83. },
  84. "layered_runtime": {
  85. "layers": [
  86. {
  87. "name": "runtime-0",
  88. "rtds_layer": {
  89. "rtds_config": {
  90. "resource_api_version": "V3",
  91. "api_config_source": {
  92. "transport_api_version": "V3",
  93. "api_type": "GRPC",
  94. "grpc_services": {
  95. "envoy_grpc": {
  96. "cluster_name": "xds_cluster"
  97. }
  98. }
  99. }
  100. },
  101. "name": "runtime-0"
  102. }
  103. }
  104. ]
  105. },
  106. "admin": {
  107. "access_log_path": "/dev/null",
  108. "address": {
  109. "socket_address": {
  110. "address": "127.0.0.1",
  111. "port_value": 9003
  112. }
  113. }
  114. }
  115. }

ClusterManager 配置

MOSN ClusterManager 配置说明。

Server 配置

MOSN server 配置说明。

Trace 配置

MOSN trace 配置说明。

自定义配置

MOSN 自定义配置说明。

修改于 2022年10月28日: docs: Changes to the v1.2.0 configuration (#217) (d237414)