Istio API を使用したサポートされている機能(マネージド コントロール プレーン)
このページでは、コントロール プレーンとして TRAFFIC_DIRECTOR
または ISTIOD
を使用する Cloud Service Mesh でサポートされている機能と制限事項と、各実装の違いについて説明します。これは選択できるオプションではないことに留意してください。ISTIOD
の実装は、既存のユーザーにのみ使用できます。新規インストールでは、可能な場合、TRAFFIC_DIRECTOR
の実装を使用します。
クラスタ内コントロール プレーンの Cloud Service Mesh でサポートされている機能の一覧については、Istio API の使用(クラスタ内 istiod
コントロール プレーン) をご覧ください。使用している Cloud Service Mesh コントロール プレーンがわからない場合は、コントロール プレーンの実装を特定する の手順に沿ってコントロール プレーンの実装を確認できます。
制限事項
注意: Cloud Service Mesh を使用するには、1 つのメッシュ内のすべての Cloud Service Mesh クラスタが常に同じフリートに登録されている必要があります。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
コントロール プレーンの実装を受け取ります。
フリート内のいずれかのクラスタが GKE Sandbox を使用している場合、マネージド Cloud Service Mesh をプロビジョニングすると、ISTIOD
コントロール プレーンの実装を受け取ります。
コントロール プレーンの実装を特定する
次のコマンドを実行して、コントロール プレーンの実装を特定します。
gcloud container fleet mesh describe --project FLEET_PROJECT_ID
Google Cloud APIs で Cloud Service Mesh を使用している場合(Cloud Service Mesh について を参照)、このコマンドは機能しません。
出力は次のようになります。
...
membershipSpecs:
projects/746296320118/locations/us-central1/memberships/demo-cluster-1:
mesh:
management: MANAGEMENT_AUTOMATIC
membershipStates:
projects/746296320118/locations/us-central1/memberships/demo-cluster-1:
servicemesh:
controlPlaneManagement:
details:
- code: REVISION_READY
details: 'Ready: asm-managed'
state: ACTIVE
implementation: TRAFFIC_DIRECTOR
...
implementation
: 使用できる値:
TRAFFIC_DIRECTOR
: Google Cloud のコア インフラストラクチャは、Cloud Service Mesh コントロール プレーンとして機能します。
ISTIOD
: istiod
のマネージド インスタンスは Cloud Service Mesh のコントロール プレーンとして機能します。
UPDATING
: クラスタは実装間で移行されています。まもなく TRAFFIC_DIRECTOR
の実装が提供される予定です。
マネージド コントロール プレーンでサポートされている機能
インストール、アップグレード、ロールバック
特徴
マネージド(TD)
マネージド(istiod)
フリート 機能 API を使用した GKE クラスタへのインストール
Mesh CA を使用する ASM 1.9 バージョンからアップグレード
1.9 より前のバージョンの Cloud Service Mesh から直接(スキップレベル)アップグレード(間接的なアップグレードに関する注意事項を参照)
Istio OSS からの直接(スキップレベル)アップグレード(間接アップグレードに関する注意事項を参照)
Istio-on-GKE アドオンから直接(スキップレベル)アップグレード(間接アップグレードに関する注意事項を参照)
オプション機能 の有効化
注: 間接的な移行とアップグレードがサポートされています。つまり、標準の Cloud Service Mesh のアップグレード パス を使用できます。クラスタ内コントロール プレーンで Cloud Service Mesh 1.23 に到達するまで、各バージョンで処理が完了したら、マネージド コントロール プレーンに移行できます。直接移行とアップグレードは、Mesh CA と一緒にインストールされた Cloud Service Mesh バージョン 1.9 以降でのみサポートされます。Istio CA を使用してインストールする場合は、先に Mesh CA に移行する必要があります。 環境
特徴
マネージド(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 個の ServicePorts 、ServicePort あたり 36 個の Pod
注: これは 1 つのクラスタでサポートされるサービスとワークロードの数に関するソフトリミットです。このリミットを超える場合は Cloud サポートにご連絡ください。
特徴
マネージド(TD)
マネージド(istiod)
単一ネットワーク
マルチネットワーク
単一プロジェクト
共有 VPC を使用したマルチプロジェクト
マルチクラスタ デプロイ
特徴
マネージド(TD)
マネージド(istiod)
マルチプライマリ
プライマリリモート
宣言型 API を使用したマルチクラスタ エンドポイントの検出
リモート シークレット を使用したマルチクラスタ エンドポイント ディスカバリ
用語に関する注意事項
マルチプライマリ構成とは、すべてのクラスタでその構成を複製する必要があることを意味います。
プライマリリモート構成とは、単一のクラスタにその構成が含まれ、信頼できる送信元と見なされることを意味します。
Cloud Service Mesh では、一般的な接続に基づいて、簡素化されたネットワーク定義を使用しています。ワークロード インスタンスは、ゲートウェイなしで直接通信できる場合は同じネットワーク上に存在します。
ベースイメージ
† マネージド(TD)コントロール プレーンを備えた Cloud Service Mesh は、distroless イメージタイプのみをサポートします。これは変更できません。
distroless イメージのバイナリは最小限であり、distroless イメージには存在しないため、bash や curl などの通常のコマンドを実行できません。
ただし、エフェメラル コンテナを使用して実行中のワークロード 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 無効モード
認証のリクエスト
特徴
マネージド(TD)
マネージド(istiod)
JWT 認証(注 1)
JWT Claim Based Routing
JWT Copy Claim to Headers
注:
サードパーティの JWT はデフォルトで有効になっています。
RequestAuthentication API を定義するときに、完全な fqdn/ホスト名を JWKSURI に追加します。
マネージド コントロール プレーンでは、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 のサブセットをサポートしています。
注: サードパーティ テレメトリー プロダクト(Grafana、Prometheus など)は構成できますが、将来の互換性は保証されず、Cloud サポートでは管理の支援を提供できません。 プロキシ リクエストのロギング
トレース
特徴
マネージド(TD)
マネージド(istiod)
Cloud Trace
*
*
Jaeger トレース(顧客管理の Jaeger の使用を許可する)
互換
Zipkin トレース(顧客管理の Zipkin の使用を許可する)
互換
注: サードパーティ テレメトリー プロダクト(Jaeger、Zipkin、Grafana など)は構成できますが、将来の互換性は保証されず、Cloud サポートは保証できません。 ネットワーキング
トラフィックのインターセプトとリダイレクトのメカニズム
特徴
マネージド(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
§
wamPlugin 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)
宛先ルール v1beta1
†
† TRAFFIC_DIRECTOR
コントロール プレーンの実装では、trafficPolicy.loadBalancer.localityLbSetting
フィールドと trafficPolicy.tunnel
フィールドはサポートされていません。また、TRAFFIC_DIRECTOR
コントロール プレーンの実装では、サブセットを定義する宛先ルールは、Kubernetes Service または ServiceEntry と同じ名前空間とクラスタに存在する必要があります。
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 クラスタは、次のいずれかのリージョンまたは、次のリージョン内の任意のゾーンに存在する必要があります。
リージョン
場所
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
Doha
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
ツール