步驟 3:安裝 ASM

安裝 ASM

Apigee Hybrid 會使用 Anthos 服務網格 (ASM) 提供的 Istio 發行版本。 請按照下列步驟,在叢集中安裝 ASM。

支援的 ASM 版本

如要瞭解 1.7 版混合式環境支援的 ASM 版本,請參閱「Apigee hybrid:支援的平台」。

執行 ASM 設定步驟

如要完成 ASM 安裝作業,請先按照 ASM 說明文件中的步驟,完成 ASM 專屬的設定。然後,您必須返回這裡完成混合專屬設定,再將設定套用至叢集。

安裝及設定 ASM 的操作說明會因平台而異。平台可分為下列類別:

  • GKE:在 Google Cloud 上執行的 Google Kubernetes Engine 叢集。
  • Google Cloud 以外:在下列項目上執行的 Anthos 叢集:
    • VMware 中的 Anthos 叢集 (GKE On-Prem)
    • Anthos on bare metal
    • AWS 中的 Anthos 叢集
    • 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 屬性,但保留 typeports 屬性。
  3. 按照操作說明準備安裝 ASM:
    1. Anthos 先決條件
    2. 安裝 Anthos 服務網格所需的權限
    3. 規劃安裝作業
  4. 按照「安裝必要工具」一文中的操作說明,安裝 asmcli 和所有必要工具,例如 git、kubectl 和 jq。
  5. 繼續執行步驟,授予叢集管理員權限,然後停止。請勿執行「驗證專案和叢集」步驟。
  6. 安裝 ASM,並啟用選用功能。 使用 --option legacy-default-ingressgateway 指定舊版輸入閘道。 例如:
    ./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 是您要設定 ASM 安裝作業的輸出目錄,包括所有子目錄。asmcli
    • 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 Hybrid 執行個體,安裝及設定 ASM:

  • VMware 中的 Anthos 叢集 (GKE On-Prem)
  • Anthos on bare metal
  • AWS 中的 Anthos 叢集
  • 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 說明文件的「使用 kubeconfig 檔案整理叢集存取權」。
    • DIR_PATH ASMCLI 的輸出目錄。這是指建立 Istio 設定檔的路徑。例如:./asm
    • GATEWAY_NAMESPACE Istio 輸入閘道的命名空間,例如: istio
    • REVISION這個 ASM 版本的修訂版本標籤。使用 asm-1260-11
    • CONTEXTKubernetes 環境。使用下列指令,確認 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 屬性,但保留 typeports 屬性。
  6. 按照操作說明準備安裝 ASM:
    1. Anthos 先決條件
    2. 安裝 Anthos 服務網格所需的權限
    3. 規劃安裝作業
  7. 按照「安裝必要工具」一文中的操作說明,安裝 asmcli 和所有必要工具,例如 git、kubectl 和 jq。
  8. 繼續執行步驟,授予叢集管理員權限,然後停止。請勿執行「驗證專案和叢集」步驟。
  9. 安裝 ASM,並啟用選用功能。 使用 --option legacy-default-ingressgateway 指定舊版輸入閘道。 例如:
    ./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 是您要設定 ASM 安裝作業的輸出目錄,包括所有子目錄。asmcli
    • 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.26.0-asm.11 。請參閱本指南,在下列環境中安裝 Anthos 服務網格:

  • Kubernetes 上的 Amazon Elastic Kubernetes Service (Amazon EKS)
  • Kubernetes 上的 Microsoft Azure Kubernetes Service (Microsoft AKS)
  • Red Hat OpenShift

準備安裝 Anthos Service Mesh

    Linux

  1. 將 Anthos 服務網格安裝檔案下載至目前的工作目錄:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-linux-amd64.tar.gz
  2. 下載簽名檔,並使用 openssl 驗證簽名:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.26.0-asm.11-linux-amd64.tar.gz.1.sig istio-1.26.0-asm.11-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  3. 將檔案的內容解壓縮到您檔案系統上的任何位置,舉例來說,如要將內容解壓縮至目前的工作目錄,請執行下列指令:
    tar xzf istio-1.26.0-asm.11-linux-amd64.tar.gz

    這個指令會在目前的工作目錄中建立名為 istio-1.26.0-asm.11 的安裝目錄,其中包含:

    • samples 目錄中的範例應用程式。
    • 您用來安裝 Anthos 服務網格的 istioctl 指令列工具位於 bin 目錄中。
    • Anthos 服務網格設定檔位於 manifests/profiles 目錄中。
  4. 確認您位於 Anthos Service Mesh 安裝的根目錄中:
    cd istio-1.26.0-asm.11
  5. 為方便起見,請將 /bin 目錄中的工具新增至 PATH:
    export PATH=$PWD/bin:$PATH
  6. Mac OS

  7. 將 Anthos 服務網格安裝檔案下載至目前的工作目錄:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-osx.tar.gz
  8. 下載簽名檔,並使用 openssl 驗證簽名:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.26.0-asm.11-osx.tar.gz.1.sig istio-1.26.0-asm.11-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  9. 將檔案的內容解壓縮到您檔案系統上的任何位置,舉例來說,如要將內容解壓縮至目前的工作目錄,請執行下列指令:
    tar xzf istio-1.26.0-asm.11-osx.tar.gz

    這個指令會在目前的工作目錄中建立名為 istio-1.26.0-asm.11 的安裝目錄,其中包含:

    • samples 目錄中的範例應用程式。
    • 您用來安裝 Anthos 服務網格的 istioctl 指令列工具位於 bin 目錄中。
    • Anthos 服務網格設定檔位於 manifests/profiles 目錄中。
  10. 確認您位於 Anthos Service Mesh 安裝的根目錄中:
    cd istio-1.26.0-asm.11
  11. 為方便起見,請將 /bin 目錄中的工具新增至 PATH:
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. 將 Anthos 服務網格安裝檔案下載至目前的工作目錄:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-win.zip
  14. 下載簽名檔,並使用 openssl 驗證簽名:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.26.0-asm.11-win.zip.1.sig istio-1.26.0-asm.11-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  15. 將檔案的內容解壓縮到您檔案系統上的任何位置,舉例來說,如要將內容解壓縮至目前的工作目錄,請執行下列指令:
    tar xzf istio-1.26.0-asm.11-win.zip

    這個指令會在目前的工作目錄中建立名為 istio-1.26.0-asm.11 的安裝目錄,其中包含:

    • samples 目錄中的範例應用程式。
    • 您用來安裝 Anthos 服務網格的 istioctl 指令列工具位於 bin 目錄中。
    • Anthos 服務網格設定檔位於 manifests\profiles 目錄中。
  16. 確認您位於 Anthos Service Mesh 安裝的根目錄中:
    cd istio-1.26.0-asm.11
  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 服務網格:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1260-11" \
        --filename overlay.yaml

    --set revision 引數會將修訂版本標籤新增至 istiod,格式為 istio.io/rev=asm-1260-11。自動 Sidecar 注入器 Webhook 會使用修訂版本標籤,將注入的 Sidecar 與特定 istiod 修訂版本建立關聯。如要為命名空間啟用 Sidecar 自動插入功能,您必須使用與 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-1260-11-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1260-11-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-1260-11     ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

EKS

設定及下載 ASM

開始前,請詳閱下列步驟。 我們會請您執行 ASM 說明文件列出的一些步驟,然後返回這個頁面完成安裝。

本指南說明如何在 Anthos 附加叢集上,乾淨安裝 Anthos Service Mesh (ASM) 版本 1.26.0-asm.11 。請參閱本指南,在下列環境中安裝 Anthos 服務網格:

  • Kubernetes 上的 Amazon Elastic Kubernetes Service (Amazon EKS)
  • Kubernetes 上的 Microsoft Azure Kubernetes Service (Microsoft AKS)
  • Red Hat OpenShift

準備安裝 Anthos Service Mesh

    Linux

  1. 將 Anthos 服務網格安裝檔案下載至目前的工作目錄:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-linux-amd64.tar.gz
  2. 下載簽名檔,並使用 openssl 驗證簽名:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.26.0-asm.11-linux-amd64.tar.gz.1.sig istio-1.26.0-asm.11-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  3. 將檔案的內容解壓縮到您檔案系統上的任何位置,舉例來說,如要將內容解壓縮至目前的工作目錄,請執行下列指令:
    tar xzf istio-1.26.0-asm.11-linux-amd64.tar.gz

    這個指令會在目前的工作目錄中建立名為 istio-1.26.0-asm.11 的安裝目錄,其中包含:

    • samples 目錄中的範例應用程式。
    • 您用來安裝 Anthos 服務網格的 istioctl 指令列工具位於 bin 目錄中。
    • Anthos 服務網格設定檔位於 manifests/profiles 目錄中。
  4. 確認您位於 Anthos Service Mesh 安裝的根目錄中:
    cd istio-1.26.0-asm.11
  5. 為方便起見,請將 /bin 目錄中的工具新增至 PATH:
    export PATH=$PWD/bin:$PATH
  6. Mac OS

  7. 將 Anthos 服務網格安裝檔案下載至目前的工作目錄:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-osx.tar.gz
  8. 下載簽名檔,並使用 openssl 驗證簽名:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.26.0-asm.11-osx.tar.gz.1.sig istio-1.26.0-asm.11-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  9. 將檔案的內容解壓縮到您檔案系統上的任何位置,舉例來說,如要將內容解壓縮至目前的工作目錄,請執行下列指令:
    tar xzf istio-1.26.0-asm.11-osx.tar.gz

    這個指令會在目前的工作目錄中建立名為 istio-1.26.0-asm.11 的安裝目錄,其中包含:

    • samples 目錄中的範例應用程式。
    • 您用來安裝 Anthos 服務網格的 istioctl 指令列工具位於 bin 目錄中。
    • Anthos 服務網格設定檔位於 manifests/profiles 目錄中。
  10. 確認您位於 Anthos Service Mesh 安裝的根目錄中:
    cd istio-1.26.0-asm.11
  11. 為方便起見,請將 /bin 目錄中的工具新增至 PATH:
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. 將 Anthos 服務網格安裝檔案下載至目前的工作目錄:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-win.zip
  14. 下載簽名檔,並使用 openssl 驗證簽名:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.26.0-asm.11-win.zip.1.sig istio-1.26.0-asm.11-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  15. 將檔案的內容解壓縮到您檔案系統上的任何位置,舉例來說,如要將內容解壓縮至目前的工作目錄,請執行下列指令:
    tar xzf istio-1.26.0-asm.11-win.zip

    這個指令會在目前的工作目錄中建立名為 istio-1.26.0-asm.11 的安裝目錄,其中包含:

    • samples 目錄中的範例應用程式。
    • 您用來安裝 Anthos 服務網格的 istioctl 指令列工具位於 bin 目錄中。
    • Anthos 服務網格設定檔位於 manifests\profiles 目錄中。
  16. 確認您位於 Anthos Service Mesh 安裝的根目錄中:
    cd istio-1.26.0-asm.11
  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 服務網格:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1260-11" \
        --filename overlay.yaml

    --set revision 引數會將修訂版本標籤新增至 istiod,格式為 istio.io/rev=asm-1260-11。自動 Sidecar 注入器 Webhook 會使用修訂版本標籤,將注入的 Sidecar 與特定 istiod 修訂版本建立關聯。如要為命名空間啟用 Sidecar 自動插入功能,您必須使用與 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-1260-11-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1260-11-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-1260-11     ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

OpenShift

設定及下載 ASM

開始前,請詳閱下列步驟。 我們會請您執行 ASM 說明文件列出的一些步驟,然後返回這個頁面完成安裝。

本指南說明如何在 Anthos 附加叢集上,乾淨安裝 Anthos Service Mesh (ASM) 版本 1.26.0-asm.11 。請參閱本指南,在下列環境中安裝 Anthos 服務網格:

  • 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 服務網格安裝檔案下載至目前的工作目錄:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-linux-amd64.tar.gz
  3. 下載簽名檔,並使用 openssl 驗證簽名:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.26.0-asm.11-linux-amd64.tar.gz.1.sig istio-1.26.0-asm.11-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  4. 將檔案的內容解壓縮到您檔案系統上的任何位置,舉例來說,如要將內容解壓縮至目前的工作目錄,請執行下列指令:
    tar xzf istio-1.26.0-asm.11-linux-amd64.tar.gz

    這個指令會在目前的工作目錄中建立名為 istio-1.26.0-asm.11 的安裝目錄,其中包含:

    • samples 目錄中的範例應用程式。
    • 您用來安裝 Anthos 服務網格的 istioctl 指令列工具位於 bin 目錄中。
    • Anthos 服務網格設定檔位於 manifests/profiles 目錄中。
  5. 確認您位於 Anthos Service Mesh 安裝的根目錄中:
    cd istio-1.26.0-asm.11
  6. 為方便起見,請將 /bin 目錄中的工具新增至 PATH:
    export PATH=$PWD/bin:$PATH
  7. Mac OS

  8. 使用下列 oc 指令,將 anyuid 安全性內容限制 (SCC) 授予 istio-system:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  9. 將 Anthos 服務網格安裝檔案下載至目前的工作目錄:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-osx.tar.gz
  10. 下載簽名檔,並使用 openssl 驗證簽名:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.26.0-asm.11-osx.tar.gz.1.sig istio-1.26.0-asm.11-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  11. 將檔案的內容解壓縮到您檔案系統上的任何位置,舉例來說,如要將內容解壓縮至目前的工作目錄,請執行下列指令:
    tar xzf istio-1.26.0-asm.11-osx.tar.gz

    這個指令會在目前的工作目錄中建立名為 istio-1.26.0-asm.11 的安裝目錄,其中包含:

    • samples 目錄中的範例應用程式。
    • 您用來安裝 Anthos 服務網格的 istioctl 指令列工具位於 bin 目錄中。
    • Anthos 服務網格設定檔位於 manifests/profiles 目錄中。
  12. 確認您位於 Anthos Service Mesh 安裝的根目錄中:
    cd istio-1.26.0-asm.11
  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 服務網格安裝檔案下載至目前的工作目錄:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-win.zip
  17. 下載簽名檔,並使用 openssl 驗證簽名:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.0-asm.11-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.26.0-asm.11-win.zip.1.sig istio-1.26.0-asm.11-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  18. 將檔案的內容解壓縮到您檔案系統上的任何位置,舉例來說,如要將內容解壓縮至目前的工作目錄,請執行下列指令:
    tar xzf istio-1.26.0-asm.11-win.zip

    這個指令會在目前的工作目錄中建立名為 istio-1.26.0-asm.11 的安裝目錄,其中包含:

    • samples 目錄中的範例應用程式。
    • 您用來安裝 Anthos 服務網格的 istioctl 指令列工具位於 bin 目錄中。
    • Anthos 服務網格設定檔位於 manifests\profiles 目錄中。
  19. 確認您位於 Anthos Service Mesh 安裝的根目錄中:
    cd istio-1.26.0-asm.11
  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 服務網格:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1260-11" \
        --filename overlay.yaml

    --set revision 引數會將修訂版本標籤新增至 istiod,格式為 istio.io/rev=asm-1260-11。自動 Sidecar 注入器 Webhook 會使用修訂版本標籤,將注入的 Sidecar 與特定 istiod 修訂版本建立關聯。如要為命名空間啟用 Sidecar 自動插入功能,您必須使用與 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-1260-11-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1260-11-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-1260-11     ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

自訂 ASM 安裝作業

您剛執行的 ASM 安裝作業是最低限度的安裝,足以測試及使用 Apigee Hybrid 的基本用途。如要瞭解如何處理更進階的用途,例如新增、移除或修改負載平衡器連接埠號碼,請參閱「啟用選用功能」。

摘要

您現在已安裝 cert-manager 和 ASM,可以開始在本機安裝 Apigee Hybrid 指令列工具。

1 2 3 (NEXT) Step 4: Install apigeectl 5 6 7 8 9