Anthos Service Mesh をインストールするときに、構成プロファイルを指定します。構成プロファイルは、Anthos Service Mesh でインストールされる機能を定義して構成する YAML ファイルです。Anthos Service Mesh では、次のプロファイルが提供されています。
asm-gcp
: すべての GKE クラスタが同じプロジェクトにある場合は、このプロファイルを使用します。このプロファイルを使用して Anthos Service Mesh をインストールすると、次の機能が有効になります。メッシュ テレメトリー。Google Cloud コンソールの Anthos Service Mesh ダッシュボードにデータを提供します。
asm-gcp
構成プロファイルでサポートされている他のデフォルト機能(サポートされる機能を参照)。
asm-gcp-multiproject
: このプロファイルは、GKE クラスタが共有 Virtual Private Cloud にあり、別のプロジェクトのクラスタを Anthos Service Mesh に追加する場合に使用します。asm-gcp-multiproject
プロファイルを使用して Anthos Service Mesh をインストールする場合:Google Cloud コンソールの Anthos Service Mesh ダッシュボードは現在利用できません。ただし、プロジェクトごとに Cloud Logging でログを表示し、Cloud Monitoring で指標を表示できます。
asm-gcp-multiproject
構成プロファイルでサポートされるデフォルト機能が有効になります(サポートされている機能を参照)。
asm-multicloud
: このプロファイルは、GKE on VMware、GKE on AWS、Amazon Elastic Kubernetes Service(Amazon EKS)、Microsoft Azure Kubernetes Service(Microsoft AKS)など、他のサポートされている環境のクラスタに使用します。asm-multicloud.yaml
プロファイルを使用して Anthos Service Mesh をインストールすると、asm-multicloud
構成プロファイルでサポートされているデフォルト機能が有効になります(サポートされている機能ページを参照)。
これらのプロファイルは、Anthos Service Mesh インストールのルート ディレクトリ内の manifests/profiles
サブディレクトリにあります。
構成プロファイルをオーバーライドして、サポートされているオプション機能を有効にするには、IstioOperator
API を使用します。IstioOperator
構成は YAML ファイル(feature.yaml
など)に指定します(YAML ファイルの名前は関係ありません)。
構成はプロファイルで変更できます。また、コマンドラインで、構成パラメータに --set
オプションを使用して変更することもできますが、他のリソース構成ファイルとともにバージョン管理システムに保存できるので、IstioOperator
構成 YAML ファイルを使用することをおすすめします。オプション機能を有効にする場合、コマンドラインで複数のファイルを指定できます。
例
Anthos Service Mesh のインストールまたはアップグレード時に機能を有効にするには、有効にする機能のプロファイルと YAML ファイルの両方を含める必要があります。これらの例では、インストール ガイドまたはアップグレード ガイドの説明に従い、Anthos Service Mesh をインストールするところまでを完了していることを前提としています。
Egress ゲートウェイを有効にする
この例では、GKE on VMware で Egress ゲートウェイを有効にする方法を説明します。
次の YAML を
feature.yaml
にコピーしてファイルを保存します。apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: egressGateways: - name: istio-egressgateway enabled: true
GKE on VMware に Anthos Service Mesh をインストールするには、次のコマンドラインの
REVISION
をインストール対象の Anthos Service Mesh の正確なバージョン(asm-1614-2
など)に置き換えます。istioctl install \ --set profile=asm-multicloud \ --set revision=REVISION \ -f feature.yaml
トレースを有効にする
以下の例は、GKE で Cloud Trace を有効にする方法を示します。
GKE でインストールとアップグレードを行うには、istio-operator.yaml
を準備する必要があります。これには、プロジェクトとクラスタに関する情報が含まれています。istio-operator.yaml
を構成するときに、使用するプロファイル(asm-gcp
または asm-gcp-multiproject
)を設定します。このプロファイルは istio-operator.yaml
で構成されているため、コマンドラインでプロファイルを指定する必要はありませんが、わかりやすくするため、指定することもできます。
次の YAML を
feature.yaml
にコピーしてファイルを保存します。apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: enableTracing: true values: global: proxy: tracer: stackdriver
GKE に Anthos Service Mesh をインストールするには、コマンドラインで以下の操作を行います。
PROFILE
は、使用しているプロファイル(asm-gcp
またはasm-gcp-multiproject
)に置き換えます。REVISION
は、インストールする Anthos Service Mesh の正確なバージョン(例:asm-1614-2
)に置き換えます。
istioctl install \ -f asm/cluster/istio-operator.yaml \ --set profile=PROFILE \ --set revision=REVISION \ -f feature.yaml
オプション機能の YAML
以降のセクションでは、オプション機能とサポートされている機能を有効にするための YAML について説明します。オプション機能を有効にする場合は、有効にする機能のプロファイルと YAML ファイルの両方をコマンドラインで指定する必要があります。GKE の場合、プロファイルは istio-operator.yaml
に構成されます。
mTLS STRICT
モード
アップグレードでの問題を防ぎ、柔軟性の高いインストールを可能にするため、global.mtls.enabled
構成は削除されました。STRICT
mTLS を有効にするには、代わりにピア認証ポリシーを構成してください。
Envoy を stdout に出力する
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: "/dev/stdout"
詳細については、Envoy のアクセス ロギングを有効にするをご覧ください。
Cloud Trace
GKE でインストールする場合は、Cloud Trace を有効にできます。料金の詳細については、Cloud Trace の料金ページをご覧ください。
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: enableTracing: true values: global: proxy: tracer: stackdriver
デフォルトのサンプリング レートは 1% ですが、traceSampling
値を指定してデフォルトをオーバーライドできます。値は 0.01 単位で、0.0~100.0 の範囲から設定してください。たとえば、10,000 件ごとに 5 件のリクエストをトレースするには、0.05 を使用します。
次の例は、100& のサンプリング レートを示しています(この操作は、デモまたはトラブルシューティングの目的でのみ行います)。
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: enableTracing: true values: pilot: traceSampling: 100 global: proxy: tracer: stackdriver
トレース コンテキストの伝播
サイドカー プロキシは、トレーススパンを自動的に送信できますが、トレース全体を関連付けるにはなんらかの情報が必要になります。このため、プロキシがスパン情報の送信時にスパンを 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
ヘッダーの伝播例については、トレース コンテキストの伝播をご覧ください。
Egress ゲートウェイ経由の下り(外向き)
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: egressGateways: - name: istio-egressgateway enabled: true
詳細については、Egress ゲートウェイをご覧ください。
Istio Container Network Interface
Istio Container Network Interface(CNI)を有効にする方法は、Anthos Service Mesh がインストールされている環境によって異なります。また、ネットワーク ポリシーを有効にする必要があります。
GKE で CNI を有効にする
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: cni: enabled: true namespace: kube-system values: cni: cniBinDir: /home/kubernetes/bin excludeNamespaces: - istio-system - kube-system
GKE on VMware で CNI を有効にする
GKE on VMware の場合は、gke-system
を excludeNamespaces
に追加し、values.cni.cniBinDir
は/opt/cni/bin
です。
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: cni: enabled: true namespace: kube-system values: cni: cniBinDir: /opt/cni/bin excludeNamespaces: - istio-system - kube-system - gke-system
内部ロードバランサを有効にする
GKE でインストールする場合は、Istio Ingress ゲートウェイの内部ロードバランサを有効にできます。次の YAML で、PROFILE
は、使用しているプロファイル(asm-gcp
または asm-gcp-multiproject
)に置き換えます。
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: profile: PROFILE components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: serviceAnnotations: cloud.google.com/load-balancer-type: "internal" service: ports: - name: status-port port: 15020 - name: http2 port: 80 - name: https port: 443
Ingress ゲートウェイの外部証明書の管理
Envoy の SDS を使用して Ingress ゲートウェイで外部証明書の管理を有効にする方法については、セキュア ゲートウェイをご覧ください。