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 コントロール プレーンの実装を受け取ります。
  • フリート内のいずれかのクラスタが 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 アドオンから直接(スキップレベル)アップグレード(間接アップグレードに関する注意事項を参照)
オプション機能の有効化

環境

特徴 マネージド(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

プラットフォーム環境

特徴 マネージド(TD) マネージド(istiod)
単一ネットワーク
マルチネットワーク
単一プロジェクト
共有 VPC を使用したマルチプロジェクト

マルチクラスタ デプロイ

特徴 マネージド(TD) マネージド(istiod)
マルチプライマリ
プライマリリモート
宣言型 API を使用したマルチクラスタ エンドポイントの検出
リモート シークレットを使用したマルチクラスタ エンドポイント ディスカバリ

用語に関する注意事項

  • マルチプライマリ構成とは、すべてのクラスタでその構成を複製する必要があることを意味います。
  • プライマリリモート構成とは、単一のクラスタにその構成が含まれ、信頼できる送信元と見なされることを意味します。
  • Cloud Service Mesh では、一般的な接続に基づいて、簡素化されたネットワーク定義を使用しています。ワークロード インスタンスは、ゲートウェイなしで直接通信できる場合は同じネットワーク上に存在します。

ベースイメージ

特徴 マネージド(TD) マネージド(istiod)
Distroless プロキシ イメージ

† マネージド(TD)コントロール プレーンを備えた Cloud Service Mesh は、distroless イメージタイプのみをサポートします。これは変更できません。

distroless イメージのバイナリは最小限であり、distroless イメージには存在しないため、bash や curl などの通常のコマンドを実行できません。 ただし、エフェメラル コンテナを使用して実行中のワークロード Pod に接続し、Pod を検査してカスタム コマンドを実行できます。たとえば、Cloud Service Mesh ログの収集をご覧ください。

セキュリティ

VPC Service Controls

特徴 マネージド(TD) マネージド(istiod)
VPC Service Controls プレビュー
VPC Service Controls GA

証明書の配布とローテーションのメカニズム

特徴 マネージド(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 認可ポリシー §

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

注:

  1. サードパーティの JWT はデフォルトで有効になっています。
  2. RequestAuthentication API を定義するときに、完全な fqdn/ホスト名を JWKSURI に追加します。
  3. マネージド コントロール プレーンでは、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)
トラフィック ログ
アクセスログ * *

トレース

特徴 マネージド(TD) マネージド(istiod)
Cloud Trace * *
Jaeger トレース(顧客管理の Jaeger の使用を許可する) 互換
Zipkin トレース(顧客管理の Zipkin の使用を許可する) 互換

ネットワーキング

トラフィックのインターセプトとリダイレクトのメカニズム

特徴 マネージド(TD) マネージド(istiod)
CAP_NET_ADMINinit コンテナを使用する iptables の従来のユースケース
Istio Container Network Interface(CNI)
ホワイトボックス サイドカー

プロトコル サポート

特徴 マネージド(TD) マネージド(istiod)
IPv4
HTTP/1.1
HTTP/2
TCP バイト ストリーム(注 1)
gRPC
IPv6

注:

  1. TCP はネットワーキング対応のプロトコルで、TCP 指標は収集されますが、報告されません。指標は、Google Cloud コンソール内の HTTP サービスにのみ表示されます。
  2. レイヤ 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 ツール