ASM をインストールする
Apigee ハイブリッドは、Anthos Service Mesh(ASM)に付属の Istio ディストリビューションを使用します。クラスタに ASM をインストールする手順は次のとおりです。
サポートされている ASM のバージョン
ハイブリッド バージョン 1.5 でサポートされている 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
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}
- 次の内容で、
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 の上限の詳細については、割り当てと上限をご覧ください。
その他のプラットフォーム上の GKE
この手順では、次の場所で実行される Anthos を使用して Apigee ハイブリッド インスタンスに ASM をインストールして設定する方法について説明します。
- GKE On-Prem(Anthos)
- Anthos on bare metal
- GKE on AWS
開始する前に、以下の手順をよくお読みください。ASM ドキュメントにある手順をいくつか行ってから、この説明に戻ってインストールを完了してください。
- ASM ドキュメントのインストール ファイルのダウンロードの手順に沿って、
istioctl
をダウンロードして解凍します。 - 使用する認証局に応じて、次のいずれかのセクションの手順に沿って ASM をインストールします。
- Mesh CA を使用する: Mesh CA を使用する Anthos Service Mesh のインストール
- Istio CA を使用して独自の証明書を提供する: Istio CA を使用する Anthos Service Mesh のインストール
- 検証 Webhook の構成の手順に沿って、検証 Webhook を構成します。
- コントロール プレーン コンポーネントの確認の手順に沿って、コントロール プレーン コンポーネントを確認します。
「サイドカー プロキシの挿入」は続行しないでください。
その他の 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 のインストール
asm-multicloud
プロファイルを使用し、istioctl
を使用して Anthos Service Mesh をインストールします。istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3"
--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
検証 Webhook を構成する
Anthos Service Mesh をインストールするときに、istiod にリビジョン ラベルを設定します。検証 Webhook に同じリビジョンを設定する必要があります。
- 次の内容のファイルを
istiod-service.yaml
という名前で作成します。apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1129-3 app: istiod istio: pilot release: istio spec: ports: - port: 15010 name: grpc-xds # plaintext protocol: TCP - port: 15012 name: https-dns # mTLS with k8s-signed cert protocol: TCP - port: 443 name: https-webhook # validation and injection targetPort: 15017 protocol: TCP - port: 15014 name: http-monitoring # prometheus stats protocol: TCP selector: app: istiod istio.io/rev: asm-1129-3 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)%"}'
kubectl
を使用して検証 Webhook 構成を適用します。kubectl apply -f istiod-service.yaml
- 構成が適用されたことを確認します。
kubectl get svc -n istio-system
レスポンスは次のようになります。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 22s
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 のインストール
asm-multicloud
プロファイルを使用し、istioctl
を使用して Anthos Service Mesh をインストールします。istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3"
--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
検証 Webhook を構成する
Anthos Service Mesh をインストールするときに、istiod にリビジョン ラベルを設定します。検証 Webhook に同じリビジョンを設定する必要があります。
- 次の内容のファイルを
istiod-service.yaml
という名前で作成します。apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1129-3 app: istiod istio: pilot release: istio spec: ports: - port: 15010 name: grpc-xds # plaintext protocol: TCP - port: 15012 name: https-dns # mTLS with k8s-signed cert protocol: TCP - port: 443 name: https-webhook # validation and injection targetPort: 15017 protocol: TCP - port: 15014 name: http-monitoring # prometheus stats protocol: TCP selector: app: istiod istio.io/rev: asm-1129-3 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)%"}'
kubectl
を使用して検証 Webhook 構成を適用します。kubectl apply -f istiod-service.yaml
- 構成が適用されたことを確認します。
kubectl get svc -n istio-system
レスポンスは次のようになります。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 22s
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 のインストール
asm-multicloud
プロファイルを使用し、istioctl
を使用して Anthos Service Mesh をインストールします。istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3"
--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
検証 Webhook を構成する
Anthos Service Mesh をインストールするときに、istiod にリビジョン ラベルを設定します。検証 Webhook に同じリビジョンを設定する必要があります。
- 次の内容のファイルを
istiod-service.yaml
という名前で作成します。apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1129-3 app: istiod istio: pilot release: istio spec: ports: - port: 15010 name: grpc-xds # plaintext protocol: TCP - port: 15012 name: https-dns # mTLS with k8s-signed cert protocol: TCP - port: 443 name: https-webhook # validation and injection targetPort: 15017 protocol: TCP - port: 15014 name: http-monitoring # prometheus stats protocol: TCP selector: app: istiod istio.io/rev: asm-1129-3 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)%"}'
kubectl
を使用して検証 Webhook 構成を適用します。kubectl apply -f istiod-service.yaml
- 構成が適用されたことを確認します。
kubectl get svc -n istio-system
レスポンスは次のようになります。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 22s
ASM インストールのカスタマイズ
先ほど行った ASM のインストールは最小限のインストールですが、基本的なユースケースについて Apigee ハイブリッドをテストして使用するには十分です。ロードバランサのポート番号の追加、削除、変更といった高度なユースケースについては、オプション機能の有効化をご覧ください。
まとめ
これで、cert-manager と ASM がインストールされ、お使いのローカルマシンに Apigee ハイブリッド コマンドライン ツールをインストールする準備ができました。
1 2 3 (次)ステップ 4: apigeectl をインストールする 5 6 7 8 9