步驟 3:安裝 ASM

安裝 ASM

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

支援的 ASM 版本

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

執行 ASM 設定步驟

如要完成 ASM 安裝程序,您必須先按照 ASM 說明文件中的 ASM 專屬設定步驟操作。接著,您必須返回這裡完成混合型專屬設定,才能將設定套用至叢集。

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

  • GKE:在 Google Cloud 上執行的 Google Kubernetes Engine 叢集。
  • Google Cloud 以外:在下列系統上執行的 Anthos 叢集:
    • VMware 中的 Anthos 叢集 (GKE On-Prem)
    • 裸機中的 Anthos
    • 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
    • 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 是您要讓 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 Hybrid 執行個體,用於安裝及設定 ASM:

  • VMware 中的 Anthos 叢集 (GKE On-Prem)
  • 裸機中的 Anthos
  • AWS 中的 Anthos 叢集
  • 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 屬性,但保留 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 是您要讓 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 服務網格 (ASM) 版本 的全新安裝作業。您可以參考本指南在下列環境中安裝 Anthos 服務網格:

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

準備安裝 Anthos 服務網格

    Linux

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

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

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

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

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

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

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

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

    • samples 目錄中的範例應用程式。
    • 用來安裝 Anthos 服務網格的 istioctl 指令列工具位於 bin 目錄中。
    • Anthos 服務網格設定檔位於 manifests\profiles 目錄中。
  16. 請確認您位於 Anthos 服務網格安裝的根目錄中:
    cd 
  17. 為方便起見,請將 \bin 目錄中的工具新增至 PATH:
    set PATH=%CD%\bin:%PATH%
  18. 安裝 ASM Istio 後,請檢查 istioctl 的版本:
    istioctl version
  19. 為控制平面元件建立名為 istio-system 的命名空間:
    kubectl create namespace istio-system

安裝 Anthos 服務網格

  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="" \
        --filename overlay.yaml

    --set revision 引數會將以 istio.io/rev= 格式編寫的修訂版本標籤新增至 istiod。自動附加元件注入器 webhook 會使用修訂版本標籤,將注入的附加元件與特定 istiod 修訂版本建立關聯。如要為命名空間啟用自動補充插入功能,您必須使用與 istiod 上的標籤相符的修訂版本標記命名空間。

  3. 使用 kubectl get pods 檢查 istiod Pod 是否正在執行:
    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--dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod--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-     ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

EKS

設定及下載 ASM

開始前,請詳閱下列步驟。我們會請您執行 ASM 說明文件中列出的部分步驟,然後返回此處完成安裝作業。

本指南說明如何在 Anthos 已連結叢集中,執行 Anthos 服務網格 (ASM) 版本 的全新安裝作業。您可以參考本指南在下列環境中安裝 Anthos 服務網格:

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

準備安裝 Anthos 服務網格

    Linux

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

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

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

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

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

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

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

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

    • samples 目錄中的範例應用程式。
    • 用來安裝 Anthos 服務網格的 istioctl 指令列工具位於 bin 目錄中。
    • Anthos 服務網格設定檔位於 manifests\profiles 目錄中。
  16. 請確認您位於 Anthos 服務網格安裝的根目錄中:
    cd 
  17. 為方便起見,請將 \bin 目錄中的工具新增至 PATH:
    set PATH=%CD%\bin:%PATH%
  18. 安裝 ASM Istio 後,請檢查 istioctl 的版本:
    istioctl version
  19. 為控制平面元件建立名為 istio-system 的命名空間:
    kubectl create namespace istio-system

安裝 Anthos 服務網格

  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="" \
        --filename overlay.yaml

    --set revision 引數會將以 istio.io/rev= 格式編寫的修訂版本標籤新增至 istiod。自動附加元件注入器 webhook 會使用修訂版本標籤,將注入的附加元件與特定 istiod 修訂版本建立關聯。如要為命名空間啟用自動補充插入功能,您必須使用與 istiod 上的標籤相符的修訂版本標記命名空間。

  3. 使用 kubectl get pods 檢查 istiod Pod 是否正在執行:
    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--dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod--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-     ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

OpenShift

設定及下載 ASM

開始前,請詳閱下列步驟。我們會請您執行 ASM 說明文件中列出的部分步驟,然後返回此處完成安裝作業。

本指南說明如何在 Anthos 已連結叢集中,執行 Anthos 服務網格 (ASM) 版本 的全新安裝作業。您可以參考本指南在下列環境中安裝 Anthos 服務網格:

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

準備安裝 Anthos 服務網格

    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/-linux-amd64.tar.gz
  3. 下載簽章檔案,然後使用 openssl 驗證簽章:
    curl -LO https://storage.googleapis.com/gke-release/asm/-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature -linux-amd64.tar.gz.1.sig -linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  4. 將檔案的內容解壓縮到您檔案系統上的任何位置,例如,如要將內容擷取至目前的工作目錄:
    tar xzf -linux-amd64.tar.gz

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

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

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

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

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

    • samples 目錄中的範例應用程式。
    • 用來安裝 Anthos 服務網格的 istioctl 指令列工具位於 bin 目錄中。
    • Anthos 服務網格設定檔位於 manifests\profiles 目錄中。
  19. 請確認您位於 Anthos 服務網格安裝的根目錄中:
    cd 
  20. 為方便起見,請將 \bin 目錄中的工具新增至 PATH:
    set PATH=%CD%\bin:%PATH%
  21. 安裝 ASM Istio 後,請檢查 istioctl 的版本:
    istioctl version
  22. 為控制平面元件建立名為 istio-system 的命名空間:
    kubectl create namespace istio-system

安裝 Anthos 服務網格

  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="" \
        --filename overlay.yaml

    --set revision 引數會將以 istio.io/rev= 格式編寫的修訂版本標籤新增至 istiod。自動附加元件注入器 webhook 會使用修訂版本標籤,將注入的附加元件與特定 istiod 修訂版本建立關聯。如要為命名空間啟用自動補充插入功能,您必須使用與 istiod 上的標籤相符的修訂版本標記命名空間。

  3. 使用 kubectl get pods 檢查 istiod Pod 是否正在執行:
    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--dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod--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-     ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

自訂 ASM 安裝作業

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

摘要

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

1 2 3 5 6 9