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的限流服務配置。當您開啟限流服務後,該配置會自動掛載,無需手動更新限流服務配置。