Istio API を使用する場合のサポートされている機能(マネージド コントロール プレーン)
このページでは、コントロール プレーンとして TRAFFIC_DIRECTOR または ISTIOD を使用する場合の Cloud Service Mesh でサポートされている機能と制限事項、および各実装の違いについて説明します。これらは選択できないオプションです。ISTIOD の実装は、既存ユーザーのみが使用できます。新規インストールでは、可能な場合には TRAFFIC_DIRECTOR 実装が使用されます。
TRAFFIC_DIRECTOR を使用するマネージド Cloud Service Mesh でサポートされている Istio API と Google Cloud API の一覧については、マネージド Cloud Service Mesh での API サポートをご覧ください。
クラスタ内コントロール プレーンの Cloud Service Mesh でサポートされている機能の一覧については、Istio API の使用(クラスタ内 istiod コントロール プレーン)をご覧ください。
使用している Cloud Service Mesh コントロール プレーンがわからない場合は、コントロール プレーンの実装を特定するの手順でコントロール プレーンの実装を確認できます。
制限事項
次の制限が適用されます。
- GKE クラスタは、サポートされているリージョンのいずれかに存在する必要があります。
- GKE のバージョンは、サポートされているバージョンである必要があります。
- 環境に記載されているプラットフォームのみがサポートされています。
hostNetwork: trueで実行されている Pod は対象外です。- マネージド Cloud Service Mesh は、OSS Istio のクラスタ内デプロイまたはクラスタ内 Cloud Service Mesh コントロール プレーンも存在しているクラスタにデプロイしないでください。
- リリース チャンネルの変更はサポートされていません。
asmcliを含むマネージド Cloud Service Mesh から Fleet API を含む Cloud Service Mesh への移行はサポートされていません。同様に、Fleet API を含むマネージド Cloud Service Mesh の--management manualから--management automaticへのプロビジョニングもサポートされていません。- クラスタ内 Cloud Service Mesh からの移行は、カナリア クラスタの移行戦略を使用する場合のみサポートされます。
- 移行とアップグレードは、サポートされているバージョンの表に記載されている、Mesh CA または Certificate Authority Service を使用するクラスタ内 Cloud Service Mesh バージョンでのみサポートされます。Istio CA(旧称 Citadel)を使用してインストールする場合は、先に Mesh CA に移行する必要があります。
- スケールの上限については、こちらのガイドをご覧ください。
- マルチクラスタの場合、マルチプライマリ デプロイ オプションのみがサポートされています。マルチクラスタのプライマリリモート デプロイ オプションはサポートされていません。
istioctl psはサポートされていません。代わりに、トラブルシューティングで説明されているようにgcloud beta container fleet mesh debugコマンドを使用できます。サポートされていない API:
WasmPluginAPIIstioOperatorAPIKubernetes IngressAPI
すべての Istio API のフィールド レベルのサポートと制限事項の詳細については、Cloud Service Mesh API のサポートをご覧ください。
GKE Enterprise サブスクリプションに登録しなくてもマネージド コントロール プレーンを使用できますが、 Google Cloud コンソールの一部の UI 要素と機能は、GKE Enterprise を利用されている方のみに提供されています。サブスクライバーと非サブスクライバーがそれぞれ使用できる機能については、GKE Enterprise と Cloud Service Mesh の UI の違いをご覧ください。
マネージド コントロール プレーンのプロビジョニング プロセス中に、選択したチャネルに対応する Istio CRD が指定のクラスタにインストールされます。クラスタに既存の Istio CRD が存在している場合、それらは上書きされます。
マネージド Cloud Service Mesh は、デフォルトの DNS ドメイン
.cluster.localのみをサポートします。マネージド Cloud Service Mesh の新しいインストールでは、その動作が有効になっていない他のクラスタがフリート内にある場合を除き、Envoy のみを使用して JWKS が取得されます。これは、
PILOT_JWT_ENABLE_REMOTE_JWKS=envoyIstio オプションに相当します。VPCSC_GA_SUPPORTED 条件がないインストール(下記を参照)と比較して、ServiceEntryとDestinationRuleの構成に追加の構成が必要になる場合があります。例についてはrequestauthn-with-se.yaml.tmplをご覧ください。現在のオペレーション モードがPILOT_JWT_ENABLE_REMOTE_JWKS=envoyに相当するかどうかは、コントロール プレーンで VPC Service Controls がサポートされているかどうか(VPCSC_GA_SUPPORTED 条件が表示されているかどうか)で判断できます。マネージド データプレーンは、追加のサイドカー(Cloud Service Mesh サイドカーを除く)のないワークロードでのみサポートされます。
コントロール プレーンの違い
ISTIOD と TRAFFIC_DIRECTOR のコントロール プレーンの実装では、サポートされる機能が異なります。使用している実装を確認するには、コントロール プレーンの実装を確認するをご覧ください。
- – 機能が利用可能で、デフォルトで有効になっていることを示します。
- † - 機能 API がさまざまなプラットフォームで異なる場合があることを示します。
- * - 機能がプラットフォームでサポートされていることを示します。有効にする手順は、オプション機能の有効化または機能の表にリンクされている機能ガイドに記載されています。
- – 機能が利用できないか、サポートされていないことを示します。
デフォルト機能とオプション機能は、 Google Cloudサポートで完全にサポートされています。表に記載されていない機能はベスト エフォート型のサポートになります。
コントロール プレーンの実装を決定する要素
フリートでマネージド Cloud Service Mesh を初めてプロビジョニングするときに、使用するコントロール プレーンの実装を決定します。同じ実装が、そのフリートでマネージド Cloud Service Mesh をプロビジョニングするすべてのクラスタで使用されます。
マネージド Cloud Service Mesh にオンボーディングする新しいフリートは、TRAFFIC_DIRECTOR コントロール プレーンの実装を受け取ります。ただし、次の例外があります。
- 既存のマネージド Cloud Service Mesh ユーザーの場合、少なくとも 2024 年 6 月 30 日までは、同じ Google Cloud組織内の新しいフリートをマネージド Cloud Service Mesh にオンボーディングすると、
ISTIODコントロール プレーンの実装が表示されます。これらのユーザーである場合、この動作をファイン チューニングするにはサポートにお問い合わせください。 既存の使用方法が変更なしでTRAFFIC_DIRECTOR実装と互換性がないユーザーは、2024 年 9 月 8 日までISTIOD実装を引き続き使用できます(これらのユーザーにはサービスに関するお知らせが届いています)。 - マネージド Cloud Service Mesh をプロビジョニングする際にフリートの Google Cloud クラスタ上のいずれかの GKE にクラスタ内 Cloud Service Mesh コントロール プレーンが含まれている場合、
ISTIODコントロール プレーンの実装を受け取ります。 - マネージド Cloud Service Mesh をプロビジョニングする際にフリートのいずれかのクラスタで GKE Sandbox を使用する場合、
ISTIODコントロール プレーンの実装を受け取ります。
マネージド コントロール プレーンでサポートされている機能
インストール、アップグレード、ロールバック
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| フリート機能 API を使用した GKE クラスタへのインストール | ||
| Mesh CA を使用する ASM 1.9 バージョンからアップグレード | ||
| 1.9 より前のバージョンの Cloud Service Mesh から直接(スキップレベル)アップグレード(間接的なアップグレードに関する注意事項を参照) | ||
| Istio OSS からの直接(スキップレベル)アップグレード(間接アップグレードに関する注意事項を参照) | ||
| Istio-on-GKE アドオンから直接(スキップレベル)アップグレード(間接アップグレードに関する注意事項を参照) | ||
| オプション機能の有効化 |
環境
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| サポートされているいずれかのリージョンで、現在リリース チャンネルで利用可能な GKE バージョン | ||
| サポートされているリージョン、GKE Autopilot クラスタのいずれかにある、現在リリース チャンネルで利用可能な GKE バージョン | ||
| Google Cloud 以外の環境(GKE Enterprise オンプレミス、他のパブリック クラウドの GKE Enterprise、Amazon EKS、Microsoft AKS、その他の Kubernetes クラスタ) |
スケール
スケーラビリティの上限のページを参照してください
プラットフォーム環境
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| 単一ネットワーク | ||
| マルチネットワーク | ||
| 単一プロジェクト | ||
| 共有 VPC を使用したマルチプロジェクト |
マルチクラスタ デプロイ
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| マルチプライマリ | ||
| プライマリリモート | ||
| 宣言型 API を使用したマルチクラスタ エンドポイント検出 | ||
| リモート シークレットを使用したマルチクラスタ エンドポイント検出 | ||
| 宣言型 API とシンプルなトポロジを使用したマルチクラスタ エンドポイント検出 |
用語に関する注意事項
- マルチプライマリ構成とは、すべてのクラスタでその構成を複製する必要があることを意味します。
- プライマリリモート構成とは、単一のクラスタにその構成が含まれ、信頼できる送信元と見なされることを意味します。
- Cloud Service Mesh では、一般的な接続に基づいて、簡素化されたネットワーク定義を使用しています。ワークロード インスタンスは、ゲートウェイなしで直接通信できる場合は同じネットワーク上に存在します。
- マルチクラスタ エンドポイント検出のシンプルなトポロジでは、フリート内のすべてのクラスタがエンドポイント検出に参加するか、参加しないかのいずれかになります。サポートされていない複雑なトポロジには、(a)一方向のエンドポイント検出(クラスタ A はクラスタ B のエンドポイントを検出できますが、その逆は不可)と(b)分離されたエンドポイント検出ネットワーク(クラスタ A とクラスタ B は相互のエンドポイントを検出でき、クラスタ C とクラスタ D も相互のエンドポイントを検出できますが、A/B と C/D は相互のエンドポイントを検出できない)があります。
ベースイメージ
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| Distroless プロキシ イメージ | † |
† Istio は default、debug、distroless プロキシ イメージを公開します。マネージド(TRAFFIC_DIRECTOR)コントロール プレーンを使用する Cloud Service Mesh の場合: 直接オンボーディングされたクラスタはデフォルトで distroless を使用し、変更できません。移行されたクラスタはデフォルトで default イメージを使用し、MeshConfig または Pod アノテーションを使用して distroless を選択できます。他の画像タイプ(debug)へのオーバーライドはサポートされていません。
distroless イメージには最小限のバイナリが含まれています。bash や curl などの通常のコマンドは distroless イメージにないため、実行できません。ただし、エフェメラル コンテナを使用して実行中のワークロード Pod に接続し、Pod を検査してカスタム コマンドを実行できます。たとえば、Cloud Service Mesh ログの収集をご覧ください。
セキュリティ
VPC Service Controls
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| VPC Service Controls |
証明書の配布とローテーションのメカニズム
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| ワークロード証明書の管理 | ||
| Ingress ゲートウェイと Egress ゲートウェイでの外部証明書の管理。 |
認証局(CA)のサポート
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| Cloud Service Mesh 認証局 | ||
| Certificate Authority Service | ||
| Istio CA | ||
| カスタム CA との統合 |
セキュリティ機能
Cloud Service Mesh は、Istio のセキュリティ機能をサポートしているだけでなく、アプリケーションの保護に役立つ機能をさらに提供します。
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| IAP の統合 | ||
| エンドユーザー認証 | ||
| ドライラン モード | ||
| 拒否ロギング | ||
| 監査ポリシー(サポート対象外) |
認可ポリシー
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| 認証 v1beta1 ポリシー | ||
| CUSTOM 認可ポリシー |
ピア認証
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| 自動 mTLS | ||
| mTLS PERMISSIVE モード | ||
| mTLS の STRICT モード | * | * |
| mTLS DISABLE モード |
注: PeerAuthentication API は TRAFFIC_DIRECTOR コントロール プレーン実装の DISABLE モードをサポートしていませんが、回避策として DestinationRule API を使用して特定のワークロードの mTLS を無効にできます。詳細については、Managed CSM の mTLS を無効にするをご覧ください。
認証のリクエスト
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| JWT 認証(注 1) | ||
| JWT Claim Based Routing | ||
| JWT Copy Claim to Headers |
注:
- サードパーティの JWT はデフォルトで有効になっています。
- RequestAuthentication API を定義するときに、JWKSURI に完全な FQDN / ホスト名を追加します。
- マネージド コントロール プレーンは、JWKS URI を指定するときに Envoy が JWKS をフェッチするように強制します。
TRAFFIC_DIRECTORコントロール プレーン実装を使用する場合、インライン JWKS で AES CBC アルゴリズム A128CBC-HS256、A192CBC-HS384、A256CBC-HS512 は許可されません。
テレメトリー
指標
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| Cloud Monitoring(HTTP プロキシ内指標) | ||
| Cloud Monitoring(TCP プロキシ内指標) | ||
| Prometheus 指標の Grafana へのエクスポート(Envoy 指標のみ) | * | * |
| Prometheus の指標を Kiali にエクスポート | ||
| Google Cloud Managed Service for Prometheus(Cloud Service Mesh ダッシュボードを含まない) | * | * |
| Istio Telemetry API | † | |
| カスタム アダプタ / バックエンド(プロセス内またはプロセス外) | ||
| 任意のテレメトリーとロギング バックエンド |
† TRAFFIC_DIRECTOR コントロール プレーンは、アクセスログとトレースの構成に使用される Istio テレメトリー API のサブセットをサポートしています。
プロキシ リクエストのロギング
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| トラフィック ログ | ||
| アクセスログ | * | * |
トレース
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| Cloud Trace | * | * |
| Jaeger トレース(顧客管理の Jaeger の使用を許可する) | 互換 | |
| Zipkin トレース(顧客管理の Zipkin の使用を許可する) | 互換 |
ネットワーキング
トラフィックのインターセプトとリダイレクトのメカニズム
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
CAP_NET_ADMIN を含む init コンテナを使用する iptables の使用 |
† | |
| Istio Container Network Interface(CNI) | ||
| ホワイトボックス サイドカー |
† init コンテナではなく、Container Network Interface(CNI)を使用することを強くおすすめします。
プロトコル サポート
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| IPv4 | ||
| HTTP/1.1 | ||
| HTTP/2 | ||
| TCP バイト ストリーム(注 1) | ||
| gRPC | ||
| IPv6 | † |
注:
- TCP はネットワーキング対応のプロトコルで、TCP 指標は収集されますが、報告されません。指標は、 Google Cloud コンソール内の HTTP サービスにのみ表示されます。
- レイヤ 7 機能で WebSocket、MongoDB、Redis、MySQL、Kafka、Cassandra、RabbitMQ、Cloud SQL のプロトコル向けに構成されているサービスはサポートされません。TCP バイト ストリームのサポートを使用して、プロトコルを機能させることができます。TCP バイト ストリームがプロトコルをサポートできない場合、そのプロトコルはサポートされません(たとえば、Kafka がプロトコル固有の応答でリダイレクト アドレスを送信し、このリダイレクトが Cloud Service Mesh のルーティング ロジックと互換性がない場合など)。ゲートウェイ ポートは Mongo、MySQL、Redis プロトコルで作成できますが、メッシュは結果のトラフィックを標準の TCP として扱い、プロトコル固有の処理は行いません。
- † プロキシレス gRPC では、IPv6 デュアルスタック機能は C++ と Python の gRPC 1.66.1 以降、gRPC Go v1.71、または gRPC Node.js v1.12 でのみサポートされています。デュアルスタックをサポートしていないバージョンの gRPC でデュアルスタック機能を構成しようとすると、クライアントは Traffic Director から送信された最初のアドレスのみを使用します。
Envoy のデプロイ
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| サイドカー | ||
| Ingress ゲートウェイ | ||
| サイドカーから直接の下り(外向き) | ||
| Egress ゲートウェイを使用した下り(外向き) | * | * |
CRD サポート
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| サイドカー リソース | ||
| サービス エントリ リソース | ||
| 割合、フォールト インジェクション、パスマッチング、リダイレクト、再試行、書き換え、タイムアウト、再試行、ミラーリング、ヘッダー操作、CORS ルーティング ルール | ||
| `WasmPlugin` API | ||
| Istio Operator |
Istio Ingress Gateway のロードバランサ
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| サードパーティの外部ロードバランサ | ||
| Google Cloud 内部ロードバランサ | * | * |
サービス メッシュ クラウド ゲートウェイ
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| サービス メッシュ クラウド ゲートウェイ |
Kubernetes Gateway API
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| Kubernetes Gateway API |
ロード バランシング ポリシー
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| ラウンドロビン | ||
| 最小接続 | ||
| ランダム | ||
| パススルー | ||
| コンシステント ハッシュ | ||
| 局所性 | ||
| GCPTrafficDistributionPolicy | ||
| GCPBackendPolicy |
ロード バランシング モード
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| RATE | ||
| UTILIZATION | ||
| CUSTOM_METRICS | ||
| IN-FLIGHT |
分散モードの詳細については、バックエンド サービスの概要をご覧ください。
サービス エントリ
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| ServiceEntry v1beta1 | † |
† TRAFFIC_DIRECTOR コントロール プレーンの実装では、ServiceEntry フィールドのサブセットがサポートされています。サポートされているフィールド、サポートされていないフィールド、構成の制限事項の一覧については、API サポート: ServiceEntry をご覧ください。
宛先ルール
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| DestinationRule v1beta1 | † |
† TRAFFIC_DIRECTOR コントロール プレーンの実装では、サブセットを定義する宛先ルールが Kubernetes Service または ServiceEntry と同じ Namespace とクラスタにある必要があります。サポートされているフィールド、サポートされていないフィールド、構成の制限事項の完全なリストについては、API サポート: DestinationRule をご覧ください。
サイドカー
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| Sidecar v1beta1 | † |
† TRAFFIC_DIRECTOR コントロール プレーンの実装では、Sidecar フィールドのサブセットがサポートされています。サポートされているフィールド、サポートされていないフィールド、構成の制限事項の一覧については、API サポート: Sidecar をご覧ください。
DNS プロキシ
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
クラスタ間の Service の名前解決 |
† | |
クラスタ内の ServiceEntry の名前解決 |
† | |
ヘッドレス Service の名前解決 |
||
| アドレスの自動割り振り | † |
† 1.21.5-asm.39 以降のバージョンのサイドカーが必要です。
EnvoyFilter
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| EnvoyFilter v1alpha3 | † |
† サポートされているフィールドと構成可能な拡張機能については、データプレーンの拡張性に関するページをご覧ください。
MeshConfig
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| DiscoverySelectors | ||
| clusterLocal | ||
| LocalityLB | † | |
| ExtensionProviders | ||
| CACert | ||
| ImageType - distroless | † | |
| OutboundTrafficPolicy | ||
| defaultProviders.accessLogging | ||
| defaultProviders.tracing | ||
| defaultConfig.tracing.stackdriver | ||
| accessLogFile | † | |
| accessLogFormat | † | |
| accessLogEncoding | † |
† 詳細な構成動作については、Distroless プロキシ イメージをご覧ください。
† 構成の動作と制限事項の詳細については、ローカリティ ロード バランシングの構成をご覧ください。
† 構成の動作と制限事項の詳細については、Envoy アクセスログの形式とエンコードをカスタマイズするをご覧ください。
ProxyConfig
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| HTTP/1.0 のサポート(ISTIO_META_NETWORK) | ||
| イメージの選択(distroless またはベースイメージ) | ||
| Kubernetes ネイティブ サイドカー(ENABLE_NATIVE_SIDECARS) |
リージョン
GKE クラスタは、次のいずれかのリージョンに存在するか、次のリージョン内の任意のゾーンに存在する必要があります。
| リージョン | ロケーション |
|---|---|
africa-south1 |
ヨハネスブルグ |
asia-east1 |
台湾 |
asia-east2 |
香港 |
asia-northeast1 |
東京(日本) |
asia-northeast2 |
大阪(日本) |
asia-northeast3 |
韓国 |
asia-south1 |
ムンバイ(インド) |
asia-south2 |
デリー(インド) |
asia-southeast1 |
シンガポール |
asia-southeast2 |
ジャカルタ |
australia-southeast1 |
シドニー(オーストラリア) |
australia-southeast2 |
メルボルン(オーストラリア) |
europe-central2 |
ポーランド |
europe-north1 |
フィンランド |
europe-north2 |
ストックホルム |
europe-southwest1 |
スペイン |
europe-west1 |
ベルギー |
europe-west2 |
イングランド |
europe-west3 |
フランクフルト(ドイツ) |
europe-west4 |
オランダ |
europe-west6 |
スイス |
europe-west8 |
ミラノ(イタリア) |
europe-west9 |
フランス |
europe-west10 |
ベルリン(ドイツ) |
europe-west12 |
トリノ(イタリア) |
me-central1 |
ドーハ |
me-central2 |
ダンマーム(サウジアラビア) |
me-west1 |
テルアビブ |
northamerica-northeast1 |
モントリオール(カナダ) |
northamerica-northeast2 |
トロント(カナダ) |
northamerica-south1 |
メキシコ |
southamerica-east1 |
ブラジル |
southamerica-west1 |
チリ |
us-central1 |
アイオワ |
us-east1 |
サウスカロライナ |
us-east4 |
北バージニア |
us-east5 |
オハイオ |
us-south1 |
ダラス |
us-west1 |
オレゴン |
us-west2 |
ロサンゼルス |
us-west3 |
ソルトレイクシティ |
us-west4 |
ラスベガス |
ユーザー インターフェース
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
| Google Cloud コンソールの Cloud Service Mesh ダッシュボード | ||
| Cloud Monitoring | ||
| Cloud Logging |
ツール
| 機能 | マネージド(TD) | マネージド(istiod)は非推奨 |
|---|---|---|
gcloud beta container fleet mesh debug ツール |