ASMMeshConfig是阿里云服务网格ASM提供的自定义资源,用于全局配置服务网格的核心参数,其功能类似Istio的MeshConfig。通过该CRD可集中管理网格层级的连接超时、协议检测、路径标准化、重试策略等配置,同时支持Sidecar注入器的资源配额与行为控制。
配置示例
以下示例指定了网格实例在连接配置、路径标准化、HTTP重试策略、Sidecar注入器策略和全局限流等方面的配置。
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMMeshConfig
metadata:
name: default
spec:
connectTimeout: 30s
tcpKeepalive:
probes: 5
time: 7200s
interval: 72s
pathNormalization:
normalization: MERGE_SLASHES
defaultHttpRetryPolicy:
attempts: 3
perTryTimeout: 1s
retryOn: gateway-error,connect-failure,refused-stream
enablePrometheusMerge: true
sidecarInjectorWebhookConfiguration:
rewriteAppHTTPProbe: true
replicaCount: 2
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: '2'
memory: 2Gi
rateLimitService:
enabled: true
redis:
authSecret: redis-secret
url: redis.istio-system.svc:6379
replicas: 1
要使用ASMMeshConfig CRD的完整字段,需要服务网格实例版本为1.24及以上,其中rateLimitService
配置需要实例版本为1.25.6.84版本。此外,ASMMeshConfig CR无命名空间,名称必须为default,其他名称的ASMMeshConfig CR不会生效。
字段说明
基础配置
字段路径 | 数据类型 | 描述 | 示例值 | 影响范围 |
| Duration | 定义Envoy代理建立TCP连接的最大等待时间,超时触发 |
| 网格维度出站TCP连接。 |
| Duration | 自动协议检测的超时时间,用于识别HTTP/HTTPS流量。超时后按原始协议处理流量。 重要 此字段仅在ASM 1.19及以下版本可配置。 |
| 网格维度协议嗅探。 |
TCP保活配置
字段路径 | 数据类型 | 描述 | 示例值 | 影响范围 |
| Uint32 | 发送的TCP保活探测包最大次数。设置为 |
| 出站TCP长连接。 |
| Duration | TCP连接空闲等待时间,超时后开始发送保活探测包。 |
| |
| Duration | 保活探测包发送间隔,需小于 |
|
路径标准化
字段路径 | 数据类型 | 描述 | 示例值 | 影响范围 |
| Enum | URI路径处理策略:
|
| 网格维度HTTP路由。 |
HTTP重试策略
字段路径 | 数据类型 | 描述 | 示例值 | 影响范围 |
| Int32 | 全局HTTP请求最大重试次数(含初始请求),仅当VirtualService未显式配置时生效。 |
| HTTP路由策略。 |
| Duration | 单次重试的超时时间,需短于VirtualService中定义的总超时时间。 |
| |
| String | 触发重试的条件,支持标准错误类型:
|
|
监控集成
字段路径 | 数据类型 | 描述 | 示例值 | 影响范围 |
| Bool | 自动合并Pod原有 |
| Prometheus监控配置。 |
Sidecar注入器配置
字段路径 | 数据类型 | 描述 | 示例值 | 影响范围 |
| Bool | 自动将Pod的HTTP就绪探针重定向到Sidecar代理端口。 |
| Sidecar注入行为。 |
| Int | Sidecar注入控制器的副本数,用于提升高可用性。 |
| Sidecar注入器组件。 |
| Object | 资源配额配置:
|
| Sidecar注入器组件。 |
全局限流配置
字段路径 | 数据类型 | 描述 | 示例值 | 影响范围 |
| Bool | 是否启用限流服务。 |
| 全局启用限流服务能力。 |
| Int | 限流服务的副本数。 |
| 限流服务可用性与性能。 |
| Object | 限流服务的资源配置。 |
| 限流服务可用性与性能。 |
| Object | 限流服务查询的 Redis 配置。 说明 全局限流服务使用redis记录限流策略以及决策。 |
| 限流状态存储后端。 |
| String | redis 集群类型,可选值: |
| 限流状态存储后端。 |
| String | redis 地址。 |
| 限流状态存储后端。 |
| String | redis 认证信息,格式为: | xxxxxx | 凭据安全管理。 |
| String | 存储redis认证信息的 secret 名称。 说明 该 secret 需要部署在 |
| 凭据安全管理。 |
| String | Redis cache 的key前缀。默认为空。 | N/A | 限流状态存储后端。 |
推荐您使用阿里云 Redis来保证高可用,您可以基于Redis实例的类型结合下表来对限流服务rateLimitService.redis.type
进行配置。
实例类型 | 架构类型 | 连接模式 | 集群类型配置 |
单节点 | / | / |
|
高可用 | 不启用集群 | / |
|
启用集群 | 直连模式 |
| |
代理模式 |
|
ASM会汇总所有的配置并自动在istio-system 命名空间下生成一个名为ratelimit-service-config
的限流服务配置。当您开启限流服务后,该配置会自动挂载,无需手动更新限流服务配置。