ステップ 3: ASM をインストールする

ASM をインストールする

Apigee ハイブリッドは、Anthos Service Mesh(ASM)に付属の Istio ディストリビューションを使用します。クラスタに ASM をインストールする手順は次のとおりです。

サポートされている ASM のバージョン

ハイブリッド バージョン 1.6 でサポートされている 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 のインストールを準備する

  1. 次のステップで必要な環境変数を確認し、必要に応じて設定します。
    echo $PROJECT_ID
    echo $CLUSTER_NAME
    echo $CLUSTER_LOCATION
  2. 次の内容で、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 プロパティは残します。
  3. 手順に沿って、ASM のインストールを準備します。
    1. Anthos の前提条件
    2. Anthos Service Mesh のインストールに必要な権限
    3. インストールを計画する
  4. 必要なツールをインストールするの手順に沿って、asmcli と必要なツール(git、kubectl、jq など)をインストールします。
  5. クラスタ管理者の権限を付与するの手順に沿って進み、完了します。「プロジェクトとクラスタを検証する」手順は行わないでください。
  6. オプション機能を使用して 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 は前の手順で作成したオーバーレイ ファイルです。

    これらの設定は、オプション機能を使用してインストールするの手順を実施するときに使用します。

トラブルシューティング

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 を再度実行してください。

  1. プロジェクトの GKE Hub メンバーシップを一覧表示します。
    gcloud container hub memberships list --project=$PROJECT_ID
  2. 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 のインストールを準備する

  1. 次のステップで必要な環境変数を確認し、必要に応じて設定します。
    echo ${PROJECT_ID}
    echo ${CLUSTER_NAME}
    echo ${CLUSTER_LOCATION}
  2. 次の内容で、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 プロパティは残します。
  3. 手順に沿って、ASM のインストールを準備します。
    1. Anthos の前提条件
    2. Anthos Service Mesh のインストールに必要な権限
    3. インストールを計画する
  4. 必要なツールをインストールするの手順に沿って、asmcli と必要なツール(git、kubectl、jq など)をインストールします。
  5. クラスタ管理者の権限を付与するの手順に沿って進み、完了します。「プロジェクトとクラスタを検証する」手順は行わないでください。
  6. オプション機能を使用して 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 は前の手順で作成したオーバーレイ ファイルです。

    これらの設定は、オプション機能を使用してインストールするの手順を実施するときに使用します。

トラブルシューティング

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 を再度実行してください。

  1. プロジェクトの GKE Hub メンバーシップを一覧表示します。
    gcloud container hub memberships list --project=$PROJECT_ID
  2. 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 のインストールの準備

    Linux

  1. Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
  2. 署名ファイルをダウンロードし、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
  3. ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
    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 ディレクトリにあります。
  4. Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
    cd istio-1.12.9-asm.3
  5. 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
    export PATH=$PWD/bin:$PATH
  6. macOS

  7. Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
  8. 署名ファイルをダウンロードし、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
  9. ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
    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 ディレクトリにあります。
  10. Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
    cd istio-1.12.9-asm.3
  11. 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
  14. 署名ファイルをダウンロードし、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
  15. ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
    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 ディレクトリにあります。
  16. Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
    cd istio-1.12.9-asm.3
  17. 利便性を考えて、\bin ディレクトリ内のツールを PATH に追加します。
    set PATH=%CD%\bin:%PATH%
  18. ASM Istio がインストールされたので、istioctl のバージョンを確認します。
    istioctl version
  19. コントロール プレーン コンポーネント用に istio-system という名前空間を作成します。
    kubectl create namespace istio-system

Anthos Service Mesh のインストール

  1. 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
    
  2. 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 のラベルと一致するリビジョンのラベルを付ける必要があります。

  3. 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
  4. インストールが完了したことを確認します。
    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 のインストールの準備

    Linux

  1. Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
  2. 署名ファイルをダウンロードし、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
  3. ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
    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 ディレクトリにあります。
  4. Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
    cd istio-1.12.9-asm.3
  5. 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
    export PATH=$PWD/bin:$PATH
  6. macOS

  7. Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
  8. 署名ファイルをダウンロードし、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
  9. ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
    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 ディレクトリにあります。
  10. Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
    cd istio-1.12.9-asm.3
  11. 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
  14. 署名ファイルをダウンロードし、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
  15. ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
    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 ディレクトリにあります。
  16. Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
    cd istio-1.12.9-asm.3
  17. 利便性を考えて、\bin ディレクトリ内のツールを PATH に追加します。
    set PATH=%CD%\bin:%PATH%
  18. ASM Istio がインストールされたので、istioctl のバージョンを確認します。
    istioctl version
  19. コントロール プレーン コンポーネント用に istio-system という名前空間を作成します。
    kubectl create namespace istio-system

Anthos Service Mesh のインストール

  1. 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
    
  2. 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 のラベルと一致するリビジョンのラベルを付ける必要があります。

  3. 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
  4. インストールが完了したことを確認します。
    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 のインストールの準備

    Linux

  1. 次の oc コマンドを使用して、anyuid セキュリティ コンテキスト制約(SCC)を istio-system に付与します。
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  2. Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
  3. 署名ファイルをダウンロードし、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
  4. ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
    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 ディレクトリにあります。
  5. Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
    cd istio-1.12.9-asm.3
  6. 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
    export PATH=$PWD/bin:$PATH
  7. MacOS

  8. 次の oc コマンドを使用して、anyuid セキュリティ コンテキスト制約(SCC)を istio-system に付与します。
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  9. Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
  10. 署名ファイルをダウンロードし、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
  11. ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
    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 ディレクトリにあります。
  12. Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
    cd istio-1.12.9-asm.3
  13. 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
    export PATH=$PWD/bin:$PATH
  14. Windows

  15. 次の OpenShift CLI(oc)コマンドを使用して、anyuid セキュリティ コンテキスト制約(SCC)を istio-system に付与します。
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  16. Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
  17. 署名ファイルをダウンロードし、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
  18. ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
    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 ディレクトリにあります。
  19. Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
    cd istio-1.12.9-asm.3
  20. 利便性を考えて、\bin ディレクトリ内のツールを PATH に追加します。
    set PATH=%CD%\bin:%PATH%
  21. ASM Istio がインストールされたので、istioctl のバージョンを確認します。
    istioctl version
  22. コントロール プレーン コンポーネント用に istio-system という名前空間を作成します。
    kubectl create namespace istio-system

Anthos Service Mesh のインストール

  1. 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
    
  2. 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 のラベルと一致するリビジョンのラベルを付ける必要があります。

  3. 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
  4. インストールが完了したことを確認します。
    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