このページでは、クラスタ内コントロール プレーンでオプション機能を有効にする方法について説明します。Google 管理のコントロール プレーンの詳細については、マネージド Anthos Service Mesh の構成をご覧ください。
Anthos Service Mesh をインストールする際、デフォルトで有効になる機能はプラットフォームによって異なります。オプション機能を有効にするには、Anthos Service Mesh をインストール(またはアップグレード)する際に、オーバーレイ ファイルを追加します。オーバーレイ ファイルは IstioOperator
カスタム リソース(CR)を含む YAML ファイルで、これを使用してコントロール プレーンを構成します。オーバーレイ ファイルでデフォルトの構成をオーバーライドして、オプション機能を有効にする、またはデフォルトの機能を無効にすることができます。オーバーレイ ファイルごとに機能を 1 つずつ指定します。複数のオーバーレイを重ねることができます。各オーバーレイ ファイルは、以前のレイヤの構成をオーバーライドします。
オーバーレイ ファイルについて
このページのオーバーレイ ファイルは、GitHub の anthos-service-mesh
パッケージにあります。これらのファイルには、デフォルト構成に対する一般的なカスタマイズが含まれています。これらのファイルはそのまま使用することも、必要に応じて変更を加えることもできます。
Google が提供する asmcli
スクリプトを使用して Anthos Service Mesh をインストールする場合は、--option
または --custom_overlay
オプションで 1 つ以上のオーバーレイ ファイルを指定できます。anthos-service-mesh
リポジトリ内のファイルを変更する必要がない場合は、--option
を使用します。これにより、GitHub からファイルが取得されます。それ以外の場合は、オーバーレイ ファイルを変更してから、--custom_overlay
オプションを使用して asmcli
に渡します。
1 つのオーバーレイ ファイルに複数の CR を含めないでください | CR ごとに別々のオーバーレイ ファイルを作成します |
---|---|
anthos-service-mesh
パッケージのダウンロード
anthos-service-mesh
パッケージをダウンロードするには:
次の手順では、kpt
を使用して GitHub リポジトリから asm
パッケージをダウンロードします。代わりに、git clone
を使用することもできます。
まだインストールしていない場合は、
kpt
をインストールします。gcloud components install kpt
ファイルが含まれているパッケージをダウンロードします。
kpt pkg get \ https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.10-asm asm
次の例では、
asm
パッケージが現在の作業ディレクトリにあることを前提としています。
オプション機能を有効にする方法
次の例は、オプション機能を有効にすることを目的とした、カスタム オーバーレイの使用についてのみ示すため簡略化されています。OTHER_FLAGS
は、他のコマンドライン オプションに置き換えます。
asmcli install
コマンドには、オプション機能を有効にする 2 つの方法があります。使用するメソッドは、オーバーレイ ファイルに変更を加える必要があるかどうかによって異なります。
オーバーレイ ファイルを変更する必要がない場合は、
--option
を使用します。--option
では、asmcli
は GitHub リポジトリからファイルを取得するため、インターネットに接続している必要があります。./asmcli install \ OTHER_FLAGS \ --option OPTION_NAME
OPTION_NAME
は、有効にするオプションに置き換えます。オプションの一覧については、anthos-service-mesh
パッケージをご覧ください。オーバーレイ ファイルをカスタマイズする必要がある場合は、
--custom_overlay
を使用します。./asmcli install \ OTHER_FLAGS \ --custom_overlay PATH_TO_FILE
PATH_TO_FILE
は、使用するオーバーレイ ファイルのパスに置き換えます。
オプション機能の YAML
以降のセクションでは、オプション機能とサポートされている機能を有効にするための YAML について説明します。
mTLS STRICT
モード
アップグレードでの問題を防ぎ、柔軟性の高いインストールを可能にするため、global.mtls.enabled
構成は IstioOperator
CR から削除されました。STRICT
mTLS を有効にするには、代わりにピア認証ポリシーを構成してください。
Envoy を stdout に出力する
詳細については、Envoy のアクセス ロギングを有効にするをご覧ください。
Cloud Trace
Cloud Trace は、次のプラットフォームの Anthos Service Mesh インストールでご利用いただけます。
- Google Cloud 上の GKE
- Anthos Service Mesh 認証局(Mesh CA)を使用してインストールする場合、オンプレミスの GKE Enterprise クラスタ
料金の詳細については、Cloud Trace の料金ページをご覧ください。
デフォルトのサンプリング レートは 1% ですが、tracing.sampling
値を指定してデフォルトをオーバーライドできます。値は 0.01 単位で、0.0~100.0 の範囲から設定してください。たとえば、10,000 件ごとに 5 件のリクエストをトレースするには、0.05 を使用します。
次の例は、100& のサンプリング レートを示しています(この操作は、デモまたはトラブルシューティングの目的でのみ行います)。
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
enableTracing: true
defaultConfig:
tracing:
sampling: 100
values:
global:
proxy:
tracer: stackdriver
現在、トレーサー構成はプロキシ ブートストラップ構成の一部になっているため、トレーサーの更新を取得するためには、Pod を再起動して、再挿入する必要があります。たとえば、次のコマンドを使用すると、再起動 Pod をデプロイメントに入れることができます。
kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME
トレース コンテキストの伝播
サイドカー プロキシは、トレーススパンを自動的に送信できますが、トレース全体を関連付けるにはなんらかの情報が必要になります。このため、プロキシがスパン情報の送信時にスパンを 1 つのトレースに正しく関連付けられるように、適切な HTTP ヘッダーを伝播する必要があります。
これを行うには、受信リクエストから次のヘッダーを収集し、発信リクエストに反映する必要があります。
- x-request-id
- x-b3-traceid
- x-b3-spanid
- x-b3-parentspanid
- x-b3-sampled
- x-b3-flags
- x-ot-span-context
- x-cloud-trace-context
- traceparent
- grpc-trace-bin
ヘッダーの伝播例については、トレース コンテキストの伝播をご覧ください。
カスタム ID を使用してクライアントからトレースを作成する
カスタム ID を使用してクライアントからトレースを作成するには、curl
コマンドを使用して外部クライアントを含むリクエストを作成し、強制的にトレースを表示します。次に例を示します。
curl $URL --header "x-client-trace-id: 105445aa7843bc8bf206b12000100000"
x-client-trace-id
の詳細については、Envoy のドキュメントをご覧ください。
Egress ゲートウェイ経由の下り(外向き)
ゲートウェイのインストールとアップグレードの説明に従って、挿入されたゲートウェイをインストールすることをおすすめします。
Istio Container Network Interface
Istio Container Network Interface(CNI)を有効にする方法は、Anthos Service Mesh がインストールされている環境によって異なります。
実際のプラットフォームに合ったオーバーレイ ファイルを選択します。
GKE で CNI を有効にする
オンプレミスで CNI を有効にする
内部ロードバランサを有効にする
GKE で内部ロードバランサを設定するには、ゲートウェイのインストールとアップグレードの説明に従って、挿入されたゲートウェイをインストールすることをおすすめします。ゲートウェイ Service を構成するときに、アノテーション cloud.google.com/load-balancer-type: "internal"
を含めます。
Ingress ゲートウェイの外部証明書の管理
Envoy の SDS を使用して Ingress ゲートウェイで外部証明書の管理を有効にする方法については、セキュア ゲートウェイをご覧ください。