Istio API を使用したサポートされている機能(マネージド コントロール プレーン)
このページでは、TRAFFIC_DIRECTOR
または ISTIOD
をコントロール プレーンとして使用する Cloud Service Mesh でサポートされている機能と制限事項、および各実装の違いについて説明します。これらは選択できるオプションではありません。ISTIOD
の実装は、既存のユーザーにのみ使用できます。新規インストールでは、可能であれば TRAFFIC_DIRECTOR
実装が使用されます。
クラスタ内コントロール プレーンの Cloud Service Mesh でサポートされている機能の一覧については、Istio API の使用(クラスタ内 istiod
コントロール プレーン)をご覧ください。使用している Cloud Service Mesh コントロール プレーンがわからない場合は、コントロール プレーンの実装を特定するの手順を用いてコントロール プレーンの実装を確認できます。
制限事項
次の制限が適用されます。
- GKE クラスタは、サポートされているリージョンのいずれかに存在する必要があります。
- GKE のバージョンは、サポートされているバージョンである必要があります。
- 環境に記載されているプラットフォームのみがサポートされています。
- リリース チャンネルの変更はサポートされていません。
asmcli
を含むマネージド Cloud Service Mesh から Fleet API を含む Cloud Service Mesh への移行はサポートされていません。同様に、Fleet API を含むマネージド Cloud Service Mesh の --management manual
から --management automatic
へのプロビジョニングもサポートされていません。
- 移行とアップグレードは、Mesh CA を使用してインストールされた、クラスタ内 Cloud Service Mesh のバージョン 1.9 以降でのみサポートされています。Istio CA(旧称 Citadel)を使用してインストールする場合は、先に Mesh CA に移行する必要があります。
- スケールはクラスタあたり 1,000 個のサービスと 5,000 個のワークロードに制限されています。
- マルチクラスタの場合、マルチプライマリ デプロイ オプションのみがサポートされています。マルチクラスタのプライマリリモート デプロイ オプションはサポートされていません。
istioctl ps
はサポートされていません。代わりに、トラブルシューティングで説明されているように gcloud beta container fleet mesh debug
コマンドを使用できます。
サポートされていない API:
EnvoyFilter
API
WasmPlugin
API
IstioOperator
API
Kubernetes Ingress
API
GKE Enterprise に登録しなくてもマネージド コントロール プレーンを使用できますが、Google Cloud コンソールの一部の UI 要素と機能は、GKE Enterprise のサブスクライバーのみが使用できます。サブスクライバーと非サブスクライバーが使用できる機能については、GKE Enterprise と Cloud Service Mesh の UI の違いをご覧ください。
マネージド コントロール プレーンのプロビジョニング プロセス中に、選択したチャネルに対応する Istio CRD が指定のクラスタにインストールされます。クラスタに既存の Istio CRD が存在している場合、それらは上書きされます。
マネージド Cloud Service Mesh は、デフォルトの DNS ドメイン .cluster.local
のみをサポートします。
2023 年 11 月 14 日以降、Rapid リリース チャンネルでマネージド Cloud Service Mesh を新規インストールすると、Envoy のみを使用して JWKS が取得されます。これは、PILOT_JWT_ENABLE_REMOTE_JWKS=envoy
Istio オプションと同じです。Regular および Stable リリース チャンネルでのインストール、または 2023 年 11 月 14 日より前の Rapid リリース チャンネルでのインストールとは異なり、追加の ServiceEntry
および DestinationRule
構成が必要になる場合があります。例については、requestauthn-with-se.yaml.tmpl
をご覧ください。
コントロール プレーンの違い
ISTIOD
コントロール プレーンと TRAFFIC_DIRECTOR
コントロール プレーンの実装では、サポートされる機能が異なります。使用している実装を確認するには、コントロール プレーンの実装を特定するをご覧ください。
- – 機能が利用可能で、デフォルトで有効になっていることを示します。
- † - 機能 API がさまざまなプラットフォームで異なる場合があることを示します。
- * - 機能がプラットフォームでサポートされていることを示します。有効にする手順は、オプション機能の有効化または機能の表にリンクされている機能ガイドに記載されています。
- § - 許可リストでサポートされている機能であることを示します。マネージド Anthos Service Mesh の以前のユーザーは、組織レベルで自動的に許可リストに登録されます。アクセスをリクエストするか、許可リストのステータスを確認するには、Google Cloud サポートにお問い合わせください。
- – 機能が利用できないか、サポートされていないことを示します。
デフォルト機能とオプション機能は、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 をプロビジョニングする際にフリートのいずれかのクラスタで Certificate Authority Service を使用する場合、
ISTIOD
コントロール プレーンの実装を受け取ります。
- マネージド Cloud Service Mesh をプロビジョニングする際にフリートのいずれかのクラスタにクラスタ内 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 1.25~1.27 |
|
|
Autopilot の GKE 1.25~1.27 クラスタ
|
|
|
Google Cloud 以外の環境(GKE Enterprise オンプレミス、他のパブリック クラウドの GKE Enterprise、Amazon EKS、Microsoft AKS、その他の Kubernetes クラスタ) |
|
|
スケール
機能 |
マネージド(TD) |
マネージド(istiod) |
クラスタあたり 1,000 個のサービスと 5,000 個のワークロード |
|
|
メッシュあたり 50 個の Headless Service Port、Headless ServicePort あたり 36 個の Pod |
|
|
機能 |
マネージド(TD) |
マネージド(istiod) |
単一ネットワーク |
|
|
マルチネットワーク |
|
|
単一プロジェクト |
|
|
共有 VPC を使用したマルチプロジェクト |
|
|
マルチクラスタ デプロイ
機能 |
マネージド(TD) |
マネージド(istiod) |
マルチプライマリ |
|
|
プライマリリモート |
|
|
宣言型 API を使用したマルチクラスタ エンドポイント検出 |
|
|
リモート シークレットを使用したマルチクラスタ エンドポイント検出 |
|
|
用語に関する注意事項
- マルチプライマリ構成とは、すべてのクラスタでその構成を複製する必要があることを意味います。
- プライマリリモート構成とは、単一のクラスタにその構成が含まれ、信頼できる送信元と見なされることを意味します。
- Cloud Service Mesh では、一般的な接続に基づいて、簡素化されたネットワーク定義を使用しています。ワークロード インスタンスは、ゲートウェイなしで直接通信できる場合は同じネットワーク上に存在します。
ベースイメージ
† マネージド(TD)のコントロール プレーンを使用する Cloud Service Mesh は、distroless イメージタイプのみをサポートします。これは変更できません。
distroless イメージには最小限のバイナリが含まれています。bash や curl などの通常のコマンドは distroless イメージにないため、実行できません。ただし、エフェメラル コンテナを使用して実行中のワークロード Pod に接続し、Pod を検査してカスタム コマンドを実行できます。たとえば、Cloud Service Mesh ログの収集をご覧ください。
セキュリティ
VPC Service Controls
証明書の配布とローテーションのメカニズム
機能 |
マネージド(TD) |
マネージド(istiod) |
ワークロード証明書の管理 |
|
|
Ingress ゲートウェイと Egress ゲートウェイでの外部証明書の管理。 |
|
|
認証局(CA)のサポート
セキュリティ機能
Cloud Service Mesh は、Istio のセキュリティ機能をサポートしているだけでなく、アプリケーションの保護に役立つ機能をさらに提供します。
認可ポリシー
機能 |
マネージド(TD) |
マネージド(istiod) |
認証 v1beta1 ポリシー |
† |
|
CUSTOM 認可ポリシー |
§ |
|
† TRAFFIC_DIRECTOR
コントロール プレーンの実装では、rules.from.source.RemoteIp
フィールドと rules.from.source.NotRemoteIp
フィールドはサポートされていません。
ピア認証
機能 |
マネージド(TD) |
マネージド(istiod) |
自動 mTLS |
|
|
mTLS PERMISSIVE モード |
|
|
mTLS の STRICT モード |
* |
* |
mTLS DISABLE モード |
|
|
認証のリクエスト
機能 |
マネージド(TD) |
マネージド(istiod) |
JWT 認証(注 1) |
|
|
JWT Claim Based Routing |
|
|
JWT Copy Claim to Headers |
|
|
注:
- サードパーティの JWT はデフォルトで有効になっています。
- RequestAuthentication API を定義するときに、JWKSURI に完全な FQDN/ホスト名を追加します。
- マネージド コントロール プレーンは、JWKS URI を指定するときに Envoy が JWKS をフェッチするように強制します。
Telemetry
指標
機能 |
マネージド(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) |
Cloud Trace |
* |
* |
Jaeger トレース(顧客管理の Jaeger の使用を許可する) |
|
互換 |
Zipkin トレース(顧客管理の Zipkin の使用を許可する) |
|
互換 |
ネットワーキング
トラフィックのインターセプトとリダイレクトのメカニズム
機能 |
マネージド(TD) |
マネージド(istiod) |
CAP_NET_ADMIN と init コンテナを使用する iptables の従来のユースケース |
|
|
Istio 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、Kafka、Cassandra、RabbitMQ、Cloud SQL のプロトコル向けに構成されているサービスはサポートされません。TCP バイト ストリームのサポートを使用して、プロトコルを機能させることができます。TCP バイト ストリームがプロトコルをサポートできない場合(たとえば、Kafka がプロトコル固有の応答でリダイレクト アドレスを送信し、このリダイレクトが Cloud Service Mesh のルーティング ロジックに対応していない場合)、プロトコルはサポートされません。
Envoy のデプロイ
機能 |
マネージド(TD) |
マネージド(istiod) |
サイドカー |
|
|
Ingress ゲートウェイ |
|
|
サイドカーから直接の下り(外向き) |
|
|
Egress ゲートウェイを使用した下り(外向き) |
* |
* |
CRD サポート
機能 |
マネージド(TD) |
マネージド(istiod) |
サイドカー リソース |
|
|
サービス エントリ リソース |
|
|
割合、フォールト インジェクション、パスマッチング、リダイレクト、再試行、書き換え、タイムアウト、再試行、ミラーリング、ヘッダー操作、CORS ルーティング ルール |
|
|
`EnvoyFilter` API |
§ |
|
`WasmPlugin` API |
|
|
Istio Operator |
|
|
Istio Ingress ゲートウェイのロードバランサ
機能 |
マネージド(TD) |
マネージド(istiod) |
サードパーティの外部ロードバランサ |
|
|
Google Cloud 内部ロードバランサ |
* |
* |
サービス メッシュ クラウド ゲートウェイ
機能 |
マネージド(TD) |
マネージド(istiod) |
サービス メッシュ クラウド ゲートウェイ |
|
|
Kubernetes Gateway API
機能 |
マネージド(TD) |
マネージド(istiod) |
Kubernetes Gateway API |
|
|
負荷分散ポリシー
機能 |
マネージド(TD) |
マネージド(istiod) |
ラウンドロビン |
|
|
最小接続 |
|
|
ランダム |
|
|
パススルー |
|
|
コンシステント ハッシュ |
|
|
局所性 |
|
|
サービス エントリ
機能 |
マネージド(TD) |
マネージド(istiod) |
ServiceEntry v1beta1 |
† |
|
† TRAFFIC_DIRECTOR
コントロール プレーンの実装では、次のフィールドとフィールド内の値はサポートされていません。
workloadSelector
フィールド
endpoints[].network
フィールド
endpoints[].locality
フィールド
endpoints[].weight
フィールド
endpoints[].serviceAccount
フィールド
resolution
フィールドの DNS_ROUND_ROBIN
値
location
フィールドの MESH_INTERNAL
値
endpoints[].address
フィールドの Unix ドメイン ソケット アドレス
subjectAltNames
フィールド
宛先ルール
機能 |
マネージド(TD) |
マネージド(istiod) |
DestinationRule v1beta1 |
† |
|
† TRAFFIC_DIRECTOR
コントロール プレーンの実装では、trafficPolicy.loadBalancer.localityLbSetting
フィールドと trafficPolicy.tunnel
フィールドはサポートされていません。また、TRAFFIC_DIRECTOR
コントロール プレーンの実装では、サブセットを定義する宛先ルールが Kubernetes Service または ServiceEntry と同じ Namespace とクラスタにある必要があります。
Sidecar
機能 |
マネージド(TD) |
マネージド(istiod) |
Sidecar v1beta1 |
† |
|
† TRAFFIC_DIRECTOR
コントロール プレーンの実装では、次のフィールドとフィールド内の値はサポートされていません。
ingress
フィールド
egress.port
フィールド
egress.bind
フィールド
egress.captureMode
フィールド
inboundConnectionPool
フィールド
MeshConfig
機能 |
マネージド(TD) |
マネージド(istiod) |
LocalityLB |
§ |
|
ExtensionProviders |
§ |
|
CACert |
|
|
ImageType - distroless |
§ |
|
OutboundTrafficPolicy |
§ |
|
defaultProviders.accessLogging |
|
|
defaultProviders.tracing |
|
|
defaultConfig.tracing.stackdriver |
§ |
|
accessLogFile |
§ |
|
ProxyConfig
機能 |
マネージド(TD) |
マネージド(istiod) |
DNS プロキシ(ISTIO_META_DNS_CAPTURE、ISTIO_META_DNS_AUTO_ALLOCATE) |
|
|
HTTP/1.0 のサポート(ISTIO_META_NETWORK) |
|
|
イメージの選択(Distroless またはベースイメージ) |
† |
|
† インジェクションには Distroless イメージが使用されます。
リージョン
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-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 |
トロント(カナダ) |
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 ツール |
|
|