• 集群
    • 子章节
  • 返回

    集群

    1. {
    2. "name": "...",
    3. "type": "...",
    4. "connect_timeout_ms": "...",
    5. "per_connection_buffer_limit_bytes": "...",
    6. "lb_type": "...",
    7. "ring_hash_lb_config": "{...}",
    8. "hosts": [],
    9. "service_name": "...",
    10. "health_check": "{...}",
    11. "max_requests_per_connection": "...",
    12. "circuit_breakers": "{...}",
    13. "ssl_context": "{...}",
    14. "features": "...",
    15. "http2_settings": "{...}",
    16. "cleanup_interval_ms": "...",
    17. "dns_refresh_rate_ms": "...",
    18. "dns_lookup_family": "...",
    19. "dns_resolvers": [],
    20. "outlier_detection": "{...}"
    21. }
    • name

      (required, string) 群集名称,所提供群集名称在所有群集中必须唯一。发布统计信息时会使用集群名称。默认情况下,群集名称的最大长度限制为60个字符。可通过--max-obj-name-len命令行参数设置为所需的值,以提高此限制。

    • type

      (required, string) 用于解析集群的服务发现类型。可能的选项有staticstrict_dnslogical_dnsoriginal_dstsds

    • connect_timeout_ms

      (required, integer) 指定群集中主机网络连接超时时间,以毫秒为单位。

    • per_connection_buffer_limit_bytes

      (optional, integer) 集群连接的读写缓冲区大小限制。如果未指定,则默认值(1MB)。

    • lb_type

      (required, string) 在集群中选择主机时使用的负载均衡器类型。可能的选项有round_robinleast_requestring_hashrandomoriginal_dst_lb。请注意,original_dst_lb必须与original_dst类型的集群一起使用,并且不能与其他任集群类型一起使用。

    • ring_hash_lb_config

      (optional, object) 可选的环哈希负载均衡器配置,当lb_type设置为ring_hash时使用。

    • hosts

      (sometimes required, array) 如果服务发现类型是staticstrict_dnslogical_dns,则主机数组是必需的。主机数组不支持original_dst集群类型。指定方式由服务发现类型决于:

      • static

        静态集群,必须使用完整解析主机,不需要DNS查找。支持TCP和unix域套接字(UDS)地址。

        一个TCP地址如下所示:

        1. tcp://<ip>:<port>

        一个UDS地址如下所示:

        1. unix://<file name>

        以下示例指定地址列表:

        1. [{"url": "tcp://10.0.0.2:1234"}, {"url": "tcp://10.0.0.3:5678"}]
      • strict_dns

        严格DNS群集类型,可以指定任意数量的主机名、端口组合。将使用DNS解析所有名称,并组合在一起形成最终的群集。如果相同的名字返回多个记录,则所有将被使用。例如:

        1. [{"url": "tcp://foo1.bar.com:1234"}, {"url": "tcp://foo2.bar.com:5678"}]
      • logical_dns

        逻辑DNS群集类型,指定主机名称方式与严格DNS非常类似,但只有第一个主机将被使用。例如:

        1. [{"url": "tcp://foo1.bar.com:1234"}]
    • service_name

      (sometimes required, string) 如果服务发现类型是sds,则此参数是必需的。当获取集群成员时,它将被传递给SDS API。

    • health_check

      (optional, object) 可选的群集主动健康检查配置。如果未指定配置,则不会执行健康检查,并且所有群集成员都将始终处于健康状态。

    • max_requests_per_connection

      (optional, integer) 可选的单个上游连接的最大请求数。HTTP/1.1和HTTP/2连接池,都遵循此参数。如果没有指定,则没有限制。将此参数设置为1,将有效地禁用保活状态的请求。

    • circuit_breakers

      (optional, object) 可选的群集熔断配置。

    • ssl_context

      (optional, object) 上游群集的TLS配置。如果没有指定TLS配置,则新的连接将不会使用TLS。

    • features

      (optional, string) 上游群集支持的功能,以逗号分隔的字符串列表。目前支持的功能为:

      • http2

        如果指定了http2,Envoy将假定在建立新的HTTP连接时,支持HTTP/2。目前,Envoy仅支持上游连接的预知。即使TLS与ALPN一起使用,也必须指定http2。另外,这允许通过纯文本建立HTTP/2连接。
    • http2_settings

      (optional, object) 在启动HTTP连接池时,直接传递给HTTP/2编解码器的相关设置。这些与HTTP连接管理器http2_settings选项相同。

    • cleanup_interval_ms

      (optional, integer) 从original_dst集群类型中删除旧主机的时间间隔。如果主机在这段时间内,没有被用作上游目的地址,则认为它们是旧的。随着重定向到Envoy的新连接,新的主机被按需添加到原始目标集群中,从而导致集群中的主机数量随着时间而增长。若没有旧主机(它们被主动用作目的地址)被保存在群集中,从而允许与它们的连接保持打开状态,从而节省了打开新连接所花费的等待时间。如果未指定此设置,则默认为5000.对于original_dst以外的群集类型,此设置将被忽略。

    • dns_refresh_rate_ms

      (optional, integer) 如果指定了dns刷新率,并且群集类型为strict_dnslogical_dns,则将此值用作群集的dns刷新率。如果未指定此设置,则该值默认为5000。对于strict_dnslogical_dns以外的群集类型,此设置将被忽略。

    • dns_lookup_family

      (optional, string) DNS IP地址解析策略。选项为v4_onlyv6_onlyauto。如果未指定此设置,则该值默认为v4_only。当选择v4_only时,DNS解析器将仅执行IPv4系列的地址查找。如果选择v6_only,则DNS解析程序将仅执行IPv6系列的地址查找。如果指定了auto,则DNS解析器将首先执行IPv6系列的地址查找操作,并然会再回到IPv4系列的地址查找。对于strict_dnslogical_dns以外的集群类型,该设置将被忽略。

    • dns_resolvers

      (optional, array) 如果指定DNS解析程序,并且群集类型是strict_dnslogical_dns,则此值用于指定群集的dns解析程序。如果未指定此设置,则该值默认为使用/etc/resolv.conf配置的默认解析器。对于除strict_dnslogical_dns以外的集群类型,此设置将被忽略。

    • outlier_detection

      (optional, object) 如果指定,则会为此上游群集启用异常值检测。有关异常值检测的更多信息,请参阅相应架构概述。

    子章节

    • 健康检查
    • 熔断
    • TLS上下文
    • 异常值检测
    • 环哈希负载均衡配置

    返回

    • 上一级
    • 首页目录