ASM をインストールする
Apigee ハイブリッドは、Anthos Service Mesh(ASM)に付属の Istio ディストリビューションを使用します。クラスタに ASM をインストールする手順は次のとおりです。
サポートされている ASM のバージョン
ハイブリッド バージョン 1.7 でサポートされている ASM のバージョンについては、Apigee ハイブリッド: 対応プラットフォームをご覧ください。
ASM の設定と構成手順を行う
ASM のインストールを完了するには、まず、ASM ドキュメントに記載されている ASM 固有の設定と構成を行う必要があります。その後、ここに戻ってハイブリッド固有の構成を完了してから、構成をクラスタに適用する必要があります。
ASM をインストールして構成する手順は、プラットフォームによって異なります。プラットフォームは、次のカテゴリに分類されます。
- GKE: Google Cloud で実行されている Google Kubernetes Engine クラスタ。
- Google Cloud 以外: 次の場所で実行されている Anthos clusters。
- Anthos clusters on VMware(GKE On-Pprem)
- Anthos on bare metal
- Anthos clusters on AWS
- Amazon EKS
- その他の Kubernetes プラットフォーム: 以下で作成され、実行される正規のクラスタ。
- AKS
- EKS
- OpenShift
GKE
ASM のインストールを準備する
- 次のステップで必要な環境変数を確認し、必要に応じて設定します。
echo $PROJECT_ID
echo $CLUSTER_NAME
echo $CLUSTER_LOCATION
- 次の内容で、
overlay.yaml
という名前のオーバーレイ ファイルを作成します。apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
apigee-runtime
はノードセレクタのデフォルト値です。これは、ステップ 1: クラスタを作成するで作成したapigee-runtime
ノードプールです。別のノードセレクタを使用している場合やノードセレクタを使用していない場合は、nodeSelector
プロパティを変更するか省略してください。- STATIC_IP はロードバランサの IP アドレスです。設定していない場合は
loadBalancerIP
プロパティを省略しますが、type
プロパティとports
プロパティは残します。
- 手順に沿って、ASM のインストールを準備します。
- 必要なツールをインストールするの手順に沿って、
asmcli
と必要なツール(git、kubectl、jq など)をインストールします。 - クラスタ管理者の権限を付与するの手順に沿って進み、完了します。「プロジェクトとクラスタを検証する」手順は行わないでください。
- オプション機能を使用して ASM をインストールします。
--option legacy-default-ingressgateway
を使用してレガシー Ingress ゲートウェイを指定します。次に例を示します。./asmcli install \ --verbose \ --project_id $PROJECT_ID \ --cluster_name $CLUSTER_NAME \ --cluster_location $CLUSTER_LOCATION \ --output_dir dir_path \ --custom_overlay overlay.yaml \ --enable_all \ --option legacy-default-ingressgateway
- dir_path は、
asmcli
が ASM インストールを設定する出力ディレクトリです(すべてのサブディレクトリを含む)。 - overlay.yaml は前の手順で作成したオーバーレイ ファイルです。
これらの設定は、オプション機能を使用してインストールするの手順を実施するときに使用します。
- dir_path は、
トラブルシューティング
gcloud container hub memberships register
を参照する際にエラーが発生した場合、GKE Hub に登録されたクラスタの最大数を超えている可能性があります。次に例を示します。
asmcli_1.12: [WARNING]: Command 'run_command gcloud container hub memberships register my-hybrid-example ...' failed.
次の手順でこのエラーを解決してから asmcli install
を再度実行してください。
- プロジェクトの GKE Hub メンバーシップを一覧表示します。
gcloud container hub memberships list --project=$PROJECT_ID
- GKE Hub メンバーシップを削除します。
gcloud container hub memberships delete "membership" --project=$PROJECT_ID
GKE Hub の上限の詳細については、割り当てと上限をご覧ください。
Google Cloud 以外
この手順では、次の場所で実行される Anthos を使用して Apigee ハイブリッド インスタンスに ASM をインストールして設定する方法について説明します。
- Anthos clusters on VMware(GKE On-Pprem)
- Anthos on bare metal
- Anthos clusters on AWS
- Amazon EKS
ASM のインストールを準備する
- 次のステップで必要な環境変数を確認し、必要に応じて設定します。
echo ${PROJECT_ID}
echo ${CLUSTER_NAME}
echo ${CLUSTER_LOCATION}
ASMCLI
で必要になる値をメモしておきます。これらの値は、ASM のドキュメントの手順に沿うときに指定するよう求められます。- FLEET_PROJECT_ID は、クラスタが関連付けられるプロジェクトの名前です。このインストール用に作成したプロジェクト(
${PROJECT_ID}
環境変数に保存)を使用します。 - KUBECONFIG_FILE: kubeconfig ファイルのフルパス。デフォルトのパスは
$HOME/.kube/config
です。詳細については、Kubernetes ドキュメントの Organizing Cluster Access Using kubeconfig Files をご覧ください。 - DIR_PATH: ASMCLI の出力ディレクトリ。これは、Istio 構成ファイルを作成するパスです。例:
./asm
。 - GATEWAY_NAMESPACE: Istio Ingress ゲートウェイの Namespace(例:
istio
)。 - REVISION: ASM のこのリリースのリビジョン ラベル。
asm-1129-3
を使用します。 - CONTEXT: Kubernetes コンテキスト。次のコマンドを使用して、Kubernetes がクラスタのコンテキストを使用していることを確認します。
kubectl config get-contexts
現在のクラスタが現在のコンテキストでない場合は、次のコマンドを使用して設定できます。
kubectl config use-context CONTEXT
- USER_ACCOUNT: クラスタの管理に使用しているクラスタ管理者権限を持つアカウント。
- FLEET_PROJECT_ID は、クラスタが関連付けられるプロジェクトの名前です。このインストール用に作成したプロジェクト(
- 次のコマンドを使用して、コンテキストをプロジェクトとリージョンに設定します。
デフォルトのプロジェクト ID を設定します。
gcloud config set project ${PROJECT_ID}
リージョン クラスタを使用する場合は、デフォルトのコンピューティング リージョンを設定します。
gcloud config set compute/region ${CLUSTER_LOCATION}
- 次のコマンドを使用して認証情報を取得します。
gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION} --project ${PROJECT_ID}
- 次の内容で、
overlay.yaml
という名前のオーバーレイ ファイルを作成します。apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
apigee-runtime
はノードセレクタのデフォルト値です。これは、ステップ 1: クラスタを作成するで作成したapigee-runtime
ノードプールです。別のノードセレクタを使用している場合やノードセレクタを使用していない場合は、nodeSelector
プロパティを変更するか省略してください。- STATIC_IP はロードバランサの IP アドレスです。設定していない場合は
loadBalancerIP
プロパティを省略しますが、type
プロパティとports
プロパティは残します。
- 手順に沿って、ASM のインストールを準備します。
- 必要なツールをインストールするの手順に沿って、
asmcli
と必要なツール(git、kubectl、jq など)をインストールします。 - クラスタ管理者の権限を付与するの手順に沿って進み、完了します。「プロジェクトとクラスタを検証する」手順は行わないでください。
- オプション機能を使用して ASM をインストールします。
--option legacy-default-ingressgateway
を使用してレガシー Ingress ゲートウェイを指定します。次に例を示します。./asmcli install \ --verbose \ --project_id $PROJECT_ID \ --cluster_name $CLUSTER_NAME \ --cluster_location $CLUSTER_LOCATION \ --output_dir dir_path \ --custom_overlay overlay.yaml \ --enable_all \ --option legacy-default-ingressgateway
- dir_path は、
asmcli
が ASM インストールを設定する出力ディレクトリです(すべてのサブディレクトリを含む)。 - overlay.yaml は前の手順で作成したオーバーレイ ファイルです。
これらの設定は、オプション機能を使用してインストールするの手順を実施するときに使用します。
- dir_path は、
トラブルシューティング
gcloud container hub memberships register
を参照する際にエラーが発生した場合、GKE Hub に登録されたクラスタの最大数を超えている可能性があります。次に例を示します。
asmcli_1.12: [WARNING]: Command 'run_command gcloud container hub memberships register my-hybrid-example ...' failed.
次の手順でこのエラーを解決してから asmcli install
を再度実行してください。
- プロジェクトの GKE Hub メンバーシップを一覧表示します。
gcloud container hub memberships list --project=$PROJECT_ID
- GKE Hub メンバーシップを削除します。
gcloud container hub memberships delete "membership" --project=$PROJECT_ID
GKE Hub の上限の詳細については、割り当てと上限をご覧ください。
その他の Kubernetes プラットフォーム
AKS
ASM を設定してダウンロードする
開始する前に、以下の手順をよくお読みください。ASM ドキュメントにある手順をいくつか行ってから、この説明に戻り、インストールを完了してください。
このガイドでは、Anthos に接続しているクラスタに Anthos Service Mesh(ASM)バージョン 1.12.9-asm.3 をクリーン インストールする方法について説明します。このガイドでは、次の環境に Anthos Service Mesh をインストールします。
- Kubernetes 上の Amazon Elastic Kubernetes Service(Amazon EKS)
- Kubernetes 上の Microsoft Azure Kubernetes Service(Microsoft AKS)
- Red Hat OpenShift
Anthos Service Mesh のインストールの準備
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3-linux-amd64.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests/profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
export PATH=$PWD/bin:$PATH
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3-osx.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-osx.tar.gz
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests/profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
export PATH=$PWD/bin:$PATH
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3-win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-win.zip
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests\profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、\bin ディレクトリ内のツールを PATH に追加します。
set PATH=%CD%\bin:%PATH%
- ASM Istio がインストールされたので、
istioctl
のバージョンを確認します。istioctl version
- コントロール プレーン コンポーネント用に istio-system という名前空間を作成します。
kubectl create namespace istio-system
Linux
macOS
Windows
Anthos Service Mesh のインストール
overlay.yaml
ファイルを作成し、次の内容を追加します。apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: /dev/stdout enableTracing: true accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443
asm-multicloud
プロファイルを使用し、istioctl
を使用して Anthos Service Mesh をインストールします。istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3" \ --filename overlay.yaml
--set revision
引数は、istio.io/rev=asm-1129-3
形式のリビジョン ラベルを istiod に追加します。リビジョン ラベルは、自動サイドカー インジェクタ Webhook によって使用され、挿入されたサイドカーを特定の istiod リビジョンに関連付けます。Namespace のサイドカー自動挿入を有効にするには、istiod のラベルと一致するリビジョンのラベルを付ける必要があります。istiod
Pod がkubectl get pods
で実行されていることを確認します。kubectl get pods -n istio-system
出力は次のようになります。
NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-dbfb7c7b6-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-dbfb7c7b6-fnj8c 1/1 Running 1 3m21s
- インストールが完了したことを確認します。
kubectl get svc -n istio-system
出力は次のようになります。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
EKS
ASM を設定してダウンロードする
開始する前に、以下の手順をよくお読みください。ASM ドキュメントにある手順をいくつか行ってから、この説明に戻り、インストールを完了してください。
このガイドでは、Anthos に接続しているクラスタに Anthos Service Mesh(ASM)バージョン 1.12.9-asm.3 をクリーン インストールする方法について説明します。このガイドでは、次の環境に Anthos Service Mesh をインストールします。
- Kubernetes 上の Amazon Elastic Kubernetes Service(Amazon EKS)
- Kubernetes 上の Microsoft Azure Kubernetes Service(Microsoft AKS)
- Red Hat OpenShift
Anthos Service Mesh のインストールの準備
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3-linux-amd64.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests/profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
export PATH=$PWD/bin:$PATH
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3-osx.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-osx.tar.gz
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests/profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
export PATH=$PWD/bin:$PATH
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3-win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-win.zip
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests\profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、\bin ディレクトリ内のツールを PATH に追加します。
set PATH=%CD%\bin:%PATH%
- ASM Istio がインストールされたので、
istioctl
のバージョンを確認します。istioctl version
- コントロール プレーン コンポーネント用に istio-system という名前空間を作成します。
kubectl create namespace istio-system
Linux
macOS
Windows
Anthos Service Mesh のインストール
overlay.yaml
ファイルを作成し、次の内容を追加します。apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: /dev/stdout enableTracing: true accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443
asm-multicloud
プロファイルを使用し、istioctl
を使用して Anthos Service Mesh をインストールします。istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3" \ --filename overlay.yaml
--set revision
引数は、istio.io/rev=asm-1129-3
形式のリビジョン ラベルを istiod に追加します。リビジョン ラベルは、自動サイドカー インジェクタ Webhook によって使用され、挿入されたサイドカーを特定の istiod リビジョンに関連付けます。Namespace のサイドカー自動挿入を有効にするには、istiod のラベルと一致するリビジョンのラベルを付ける必要があります。istiod
Pod がkubectl get pods
で実行されていることを確認します。kubectl get pods -n istio-system
出力は次のようになります。
NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-dbfb7c7b6-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-dbfb7c7b6-fnj8c 1/1 Running 1 3m21s
- インストールが完了したことを確認します。
kubectl get svc -n istio-system
出力は次のようになります。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
OpenShift
ASM を設定してダウンロードする
開始する前に、以下の手順をよくお読みください。ASM ドキュメントにある手順をいくつか行ってから、この説明に戻り、インストールを完了してください。
このガイドでは、Anthos に接続しているクラスタに Anthos Service Mesh(ASM)バージョン 1.12.9-asm.3 をクリーン インストールする方法について説明します。このガイドでは、次の環境に Anthos Service Mesh をインストールします。
- Kubernetes 上の Amazon Elastic Kubernetes Service(Amazon EKS)
- Kubernetes 上の Microsoft Azure Kubernetes Service(Microsoft AKS)
- Red Hat OpenShift
Anthos Service Mesh のインストールの準備
- 次の
oc
コマンドを使用して、anyuid
セキュリティ コンテキスト制約(SCC)を istio-system に付与します。oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3-linux-amd64.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests/profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
export PATH=$PWD/bin:$PATH
- 次の
oc
コマンドを使用して、anyuid
セキュリティ コンテキスト制約(SCC)を istio-system に付与します。oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3-osx.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-osx.tar.gz
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests/profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
export PATH=$PWD/bin:$PATH
- 次の OpenShift CLI(
oc
)コマンドを使用して、anyuid
セキュリティ コンテキスト制約(SCC)を istio-system に付与します。oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3-win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-win.zip
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests\profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、\bin ディレクトリ内のツールを PATH に追加します。
set PATH=%CD%\bin:%PATH%
- ASM Istio がインストールされたので、
istioctl
のバージョンを確認します。istioctl version
- コントロール プレーン コンポーネント用に istio-system という名前空間を作成します。
kubectl create namespace istio-system
Linux
MacOS
Windows
Anthos Service Mesh のインストール
overlay.yaml
ファイルを作成し、次の内容を追加します。apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: /dev/stdout enableTracing: true accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443
asm-multicloud
プロファイルを使用し、istioctl
を使用して Anthos Service Mesh をインストールします。istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3" \ --filename overlay.yaml
--set revision
引数は、istio.io/rev=asm-1129-3
形式のリビジョン ラベルを istiod に追加します。リビジョン ラベルは、自動サイドカー インジェクタ Webhook によって使用され、挿入されたサイドカーを特定の istiod リビジョンに関連付けます。Namespace のサイドカー自動挿入を有効にするには、istiod のラベルと一致するリビジョンのラベルを付ける必要があります。istiod
Pod がkubectl get pods
で実行されていることを確認します。kubectl get pods -n istio-system
出力は次のようになります。
NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-dbfb7c7b6-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-dbfb7c7b6-fnj8c 1/1 Running 1 3m21s
- インストールが完了したことを確認します。
kubectl get svc -n istio-system
出力は次のようになります。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
ASM インストールのカスタマイズ
先ほど行った ASM のインストールは最小限のインストールですが、基本的なユースケースについて Apigee ハイブリッドをテストして使用するには十分です。ロードバランサのポート番号の追加、削除、変更といった高度なユースケースについては、オプション機能の有効化をご覧ください。
まとめ
これで、cert-manager と ASM がインストールされ、お使いのローカルマシンに Apigee ハイブリッド コマンドライン ツールをインストールする準備ができました。
1 2 3 (次)ステップ 4: apigeectl をインストールする 5 6 7 8 9