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

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 のインストールを準備する

  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 の上限の詳細については、割り当てと上限をご覧ください。

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. 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: クラスタの管理に使用しているクラスタ管理者権限を持つアカウント。
  3. 次のコマンドを使用して、コンテキストをプロジェクトとリージョンに設定します。

    デフォルトのプロジェクト ID を設定します。

    gcloud config set project ${PROJECT_ID}

    リージョン クラスタを使用する場合は、デフォルトのコンピューティング リージョンを設定します。

    gcloud config set compute/region ${CLUSTER_LOCATION}
  4. 次のコマンドを使用して認証情報を取得します。
    gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION} --project ${PROJECT_ID}
  5. 次の内容で、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 プロパティは残します。
  6. 手順に沿って、ASM のインストールを準備します。
    1. Anthos の前提条件
    2. Anthos Service Mesh のインストールに必要な権限
    3. インストールを計画する
  7. 必要なツールをインストールするの手順に沿って、asmcli と必要なツール(git、kubectl、jq など)をインストールします。
  8. クラスタ管理者の権限を付与するの手順に沿って進み、完了します。「プロジェクトとクラスタを検証する」手順は行わないでください。
  9. オプション機能を使用して 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