ASMMeshConfig は、Alibaba Cloud Service Mesh (ASM) が提供するカスタムリソースで、サービスメッシュのコアパラメーターをグローバルに構成するために使用されます。その機能は Istio の MeshConfig に似ています。このカスタムリソース定義 (CRD) を使用して、接続タイムアウト、プロトコル検出、パスの正規化、リトライポリシーなどのメッシュレベルの設定を一元管理できます。また、サイドカーインジェクターのリソースクォータと動作を制御するためにも使用できます。
構成例
次の例は、ASM インスタンスを構成する方法を示しています。この構成には、接続設定、パスの正規化、HTTP リトライポリシー、サイドカーインジェクターポリシー、およびグローバルレート制限が含まれます。
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: 1ASMMeshConfig CRD のすべてのフィールドを使用するには、Service Mesh インスタンスのバージョンが 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 | 1 回のリトライのタイムアウト。この値は、VirtualService で定義された合計タイムアウトよりも短くする必要があります。 |
| |
| String | リトライをトリガーする条件。
|
|
モニタリング統合
フィールドパス | データ型 | 説明 | 例 | スコープ |
| Bool | Pod の元の |
| Prometheus モニタリング構成。 |
サイドカーインジェクター構成
フィールドパス | データ型 | 説明 | 例 | スコープ |
| Bool | Pod の HTTP readiness プローブをサイドカープロキシポートに自動的にリダイレクトします。 |
| サイドカーインジェクションの動作。 |
| Int | サイドカーインジェクションコントローラーのレプリカ数。レプリカ数を増やすと、高可用性が向上します。 |
| サイドカーインジェクターコンポーネント。 |
| Object | リソースクォータ構成。
| | サイドカーインジェクターコンポーネント。 |
グローバルレート制限構成
フィールドパス | データ型 | 説明 | 例 | スコープ |
| Bool | レート制限サービスを有効にするかどうかを指定します。 |
| グローバルレート制限機能を有効にします。 |
| Int | レート制限サービスのレプリカ数。 |
| レート制限サービスの可用性とパフォーマンス。 |
| Object | レート制限サービスのリソース構成。 | | レート制限サービスの可用性とパフォーマンス。 |
| Object | レート制限サービスの Redis 構成。 説明 グローバルレート制限サービスは、Redis を使用してレート制限ポリシーと決定を記録します。 | | レート制限状態ストレージバックエンド。 |
| String | Redis クラスターのタイプ。有効な値: |
| レート制限状態ストレージバックエンド。 |
| String | Redis アドレス。 |
| レート制限状態ストレージバックエンド。 |
| String | Redis 認証情報。フォーマットは | xxxxxx | 認証情報セキュリティ管理。 |
| String | Redis 認証情報を格納するシークレットの名前。 説明 このシークレットは | | 認証情報セキュリティ管理。 |
| String | Redis キャッシュキーのプレフィックス。デフォルト値は空です。 | N/A | レート制限状態ストレージバックエンド。 |
高可用性を確保するために、Alibaba Cloud ApsaraDB for Redis を使用してください。次の表を参照して、Redis インスタンスタイプに基づいてレート制限サービスの rateLimitService.redis.type を構成します。
インスタンスタイプ | アーキテクチャ | 接続モード | クラスタータイプ構成 |
シングルノード | / | / |
|
高可用性 | クラスター無効 | / |
|
クラスター有効 | 直接接続モード |
| |
プロキシモード |
|
ASM はすべての構成を集約し、`istio-system` 名前空間に ratelimit-service-config という名前のレート制限サービス構成を自動的に生成します。レート制限サービスを有効にすると、この構成は自動的にマウントされます。手動で更新する必要はありません。