xDS コントロール プレーン API

Traffic Director とそのクライアント(Envoy プロキシまたはプロキシレス gRPC ライブラリ)は、オープンソースの xDS API を使用して情報を交換します。Traffic Director を構成すると(たとえば、転送ルールやバックエンド サービスなどのリソースを使用すると)、Traffic Director がこれらのリソースを xDS 構成に変換してクライアントと共有します。

xDS バージョンのサポート

Traffic Director は xDS v3(強く推奨)と xDS v2 をサポートしています。xDS v2 のサポートは 2024 年 6 月 20 日に終了します。Traffic Director を初めてデプロイする場合は、xDS v3 を使用することを強くおすすめします。

Envoy と gRPC のどのバージョンが xDS v3 をサポートするかを確認するには、EnvoygRPC のドキュメントをご覧ください。

xDS v2 から xDS v3 に移行する

移行プロセスには次の 2 つのステップがあります。

  1. Traffic Director への接続時にクライアント(Envoy プロキシまたはプロキシレス gRPC ライブラリ)が使用するサービス アカウントに付与されている Identity and Access Management(IAM)権限を更新します。
  2. アプリケーションを更新して再デプロイします。具体的な手順はデプロイによって異なります。以降のセクションで説明します。

サービス アカウントの IAM 権限を更新する

Traffic Director クライアント(Envoy、プロキシレス gRPC)で使用するサービス アカウントに trafficdirector.networks.reportMetrics 権限と trafficdirector.networks.getConfigs 権限があることを確認します。これらの権限は、IAM Traffic Director Client ロールroles/trafficdirector.client)に含まれています。

IAM カスタムロールを使用している場合は、それらの権限をカスタムロールに追加できます。権限を追加したら、サービス アカウントから Compute ネットワーク閲覧者のロール(roles/compute.networkViewer)または Compute ネットワーク管理者のロール(roles/compute.networkAdmin)を削除できます。

アプリケーションを更新する

サービス アカウントの IAM 権限を更新したら、アプリケーションを更新します。

Compute Engine での Envoy

Compute Engine で自動 Envoy デプロイを使用している場合は、マネージド インスタンス グループのローリング再起動またはローリング置換を行います。xDS v3 をサポートする Envoy のバージョンが、仮想マシン(VM)インスタンスに自動的に追加されます。

Compute Engine VM に Envoy を手動でデプロイする場合は、設定ガイドに沿って新しいインスタンス テンプレートを作成します。設定ガイドでは、xDS v3 をサポートする Envoy の最新バージョンが使用されています。次に、新しいインスタンス テンプレートを指定して、ローリング アップデートを実行します。

GKE での Envoy

Google Kubernetes Engine(GKE)で自動 Envoy インジェクションを使用する場合は、Traffic Director で使用している GKE クラスタにサイドカー インジェクタを再インストールします。新しい Pod を作成すると、xDS v3 をサポートする Envoy サイドカー プロキシがワークロード Pod とともに自動的に挿入されます。

GKE で手動サイドカー インジェクションを使用する場合は、各 GKE クラスタにサイドカー プロキシを再デプロイします。

プロキシレス gRPC

移行プロセスには次の 2 つのステップがあります。

  1. 使用する gRPC のバージョンで xDS v3 がサポートされていることを確認します。詳細については、gRPC の xDS の機能をご覧ください。

  2. 次の手順でブートストラップ構成を更新します。

    1. ブートストラップ ファイルの例に示すように、"xds_servers" フィールドに "server_features": ["xds_v3"] を追加します。
    2. ノード ID を前の例に示されているような形式にする必要があります。

      "projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID"
      

アプリケーションに前述の変更を行ってから、アプリケーションをビルドして再デプロイします。

ブートストラップ構成に対する前述の変更は、xDS v3 をサポートしていない gRPC バージョンには影響しません。また、ブートストラップ構成に前述の変更がない場合、xDS v3 をサポートする gRPC バージョンは xDS v2 を使用します。

便宜上、Traffic Director gRPC ブートストラップ ジェネレータ バージョン 0.11.0 以降を使用して、xDS v3 と互換性のあるブートストラップ構成を生成できます。

Traffic Director クライアントが xDS v3 を使用していることを確認する

Traffic Director がクライアントに生成した構成を検査するには、クライアント ステータス ツールを使用します。このツールは、構成が xDS v2 か xDS v3 かを示します。

次のステップ