Envoy を使用する場合の Cloud Service Mesh の制限事項
このドキュメントでは、Google Cloud APIs を使用した Cloud Service Mesh に適用される制限事項(高度なトラフィック管理の制限事項など)について説明します。Istio API を使用する Cloud Service Mesh には適用されません。
上限については、割り当てと上限をご覧ください。
一般的な制限事項
Cloud Service Mesh の制限事項には、次のものがあります。
- サービス ルーティング API を含む Cloud Service Mesh は、Google Cloud APIs のみをサポートします。
- Cloud Service Mesh を使用して、HTTP(HTTP/1.1 または HTTP/2)、HTTPS、TCP、gRPC のリクエスト プロトコルを構成できます。
- Envoy をデータプレーン プロキシとして使用する場合、
stream_idle_timeout
の値はデフォルトで 5 分に設定されます。この値を、Cloud Service Mesh では構成できません。 TCPRoute
リソースを使用して TCP リクエスト プロトコルを構成する場合は、高度なトラフィック管理機能を使用できません。高度なトラフィック管理機能は、HTTP リクエストまたは gRPC リクエストを処理するようにデータプレーンを構成する場合にのみ使用できます。- Cloud Service Mesh は、サービス ルーティング API による VPC ネットワーク ピアリングをサポートしています。
- Cloud Service Mesh は、サーバー ファーストのプロトコルをサポートしていません。
- Knative または Google Cloud のサーバーレス コンピューティングで実行されているサービスでは Cloud Service Mesh を使用できません。
- このドキュメントでは、Envoy プロキシについて説明しますが、Cloud Service Mesh では任意のオープン標準 API(xDS)プロキシを使用できます。ただし、Google では Envoy プロキシでのみ Cloud Service Mesh をテストしています。
- 既知のすべてのセキュリティに関する脆弱性が軽減されているため、最新の Envoy バージョンを使用することをおすすめします。Envoy のセキュリティ アドバイザリについては、Envoy のセキュリティ アドバイザリをご覧ください。
- Google Cloud Console では、ハイブリッド接続ネットワーク エンドポイント グループ(NEG)はサポートされていません。ハイブリッド接続 NEG を作成または削除するには、Google Cloud CLI を使用します。
- データプレーンがヘルスチェックを処理するため、Google Cloud コンソール、API、gcloud CLI を使用してヘルスチェックのステータスを取得できません。
iptables
が正しく設定されていることを確認します。iptables
の構成方法の詳細については、Envoy の HTTP フィルタリングの構成に関するメモをご覧ください。- Google Cloud コンソールを使用して仮想マシン(VM)インスタンスを作成する場合、一部の
ipv6
関連モジュールはインストールされず、再起動しなければ使用できません。これは、依存関係がないことによる、iptables.sh
の失敗につながります。その場合は、VM を再起動してrun.sh
スクリプトを再実行します。 - gcloud CLI を使用して Compute Engine VM を作成する場合、この問題は発生しないと考えられます。
- Google Cloud コンソールを使用して仮想マシン(VM)インスタンスを作成する場合、一部の
高度なトラフィック管理の制限
高度なトラフィック管理の制限事項には、次のものがあります。
BackendService.sessionAffinity
の値が NONE でない場合、BackendService.localityLbPolicy
はMAGLEV
またはRING_HASH
以外のロード バランシング ポリシーに設定され、セッション アフィニティの設定は適用されません。gcloud import
コマンドは、バックエンド サービスや URL マップなど、リソースの最上位フィールドを削除しません。たとえば、バックエンド サービスを作成し、circuitBreakers
を設定した場合は、後続のgcloud import
コマンドを使用してこれらの設定を更新できます。ただし、これらの設定をバックエンド サービスから削除することはできません。リソースを削除して、circuitBreakers
の設定なしで再作成できます。
Service Directory の制限事項
- Service Directory と Cloud Service Mesh は、クライアントのネットワーク到達性を保証しません。
バックエンド サービスは、次のいずれかのみを参照できます。
- マネージド インスタンス グループまたは非マネージド インスタンス グループ
- ネットワーク エンドポイント グループ
- サービス バインディング
Service Directory サービスは、
load-balancing-scheme=INTERNAL_SELF_MANAGED
を含むグローバル バックエンド サービスでのみ使用できます。サービス バインディングによって参照されている Service Directory サービスを削除できます。バックエンド サービスが接続している基盤となる Service Directory サービスが削除されると、Cloud Service Mesh を使用するアプリケーションは、このサービスにトラフィックを送信できないため、リクエストは失敗します。ベスト プラクティスについては、オブザーバビリティとデバッグをご覧ください。
Service Directory サービスをバックエンド サービスにバインドする場合、バックエンド サービスでヘルスチェックを構成することはできません。
次のステップ
- プロキシレス gRPC アプリケーションがある Cloud Service Mesh に適用される制限事項については、プロキシレス gRPC の制限事項をご覧ください。