步驟 4:在 GKE 上安裝 Hybrid

將設定套用至叢集

如要將 Apigee Hybrid 安裝到叢集中,請按照下列步驟操作:

  1. 請確認您位於 hybrid-base-directory/hybrid-files 目錄。
  2. 確認 kubectl 已設為正確的內容。您應將目前的背景資訊設為要部署的叢集:
    kubectl config get-contexts
  3. 執行 init 指令:
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    init 指令會安裝 Apigee 部署服務 Apigee Deployment Controller 和 Apigee Admission Webhook,並部署非 Apigee 元件 IstioCert Manager

  4. 如要查看部署作業的狀態,您可以使用下列指令:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    kubectl get pods -n apigee-system

    kubectl get pods -n istio-system

    當 Pod 準備就緒後,請繼續執行下一個步驟。

  5. 進行「模擬安裝」作業。執行含有 --dry-run=true 旗標的 apply 指令。進行模擬執行作業後,您就能在對叢集進行任何變更前,先檢查是否有任何錯誤。
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
  6. 如果沒有錯誤,您可以將 Apigee 專屬的執行階段元件套用至叢集:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  7. 如要查看部署作業的狀態,請按照下列步驟操作:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    重複執行這項步驟,直到所有 Pod 都就緒為止。 Pod 可能需要幾分鐘的時間才能啟動。

啟用同步器存取權

  1. 建立 GCP 服務帳戶,並為該帳戶新增 Apigee 機構組織管理員角色。這個服務帳戶會用於驗證您在後續步驟中要發出的 API 呼叫。您可以透過 GCP 主控台輕鬆建立服務帳戶。如需詳細操作說明,請參閱 GCP 說明文件中的「 建立及管理服務帳戶」一節。
  2. 將服務帳戶金鑰下載至系統。請按照 GCP 說明文件中的「 建立服務帳戶金鑰」一節操作說明。
  3. 將下載的服務帳戶金鑰移至服務帳戶目錄: /hybrid-base-directory/hybrid-files/service-accounts
  4. 執行下列兩個指令,取得符記:
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    其中 org-admin-service-account-file 是系統中服務帳戶金鑰的路徑,您可以使用 Apigee 機構管理員角色下載該金鑰。

  5. 呼叫 setSyncAuthorization API,為 Synchronizer 啟用必要權限:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:synchronizer-manager-service-account-email"]}'
    

    其中:

    • your_org_name:混合型機構名稱。
    • synchronizer-manager-service-account-email:具備 Apigee 同步處理工具管理員角色的服務帳戶名稱。名稱的格式類似電子郵件地址。例如: apigee-synchronizer@my-project.iam.gserviceaccount.com

    範例:

    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:apigee-synchronizer@my-project.iam.gserviceaccount.com"]}'
    
  6. 如要確認服務帳戶是否已設定,請呼叫下列 API 取得服務帳戶清單:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \
       -d ''
    

    輸出內容會類似以下內容:

    {
       "identities":[
          "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }
        

將 MART 主機別名新增至貴機構

您必須將 MART 端點的代管服務器別名新增至 Apigee 機構。您先前在覆寫檔案中設定 mart.hostAlias 屬性的值時,就已設定這個值。管理層需要這個位址,才能透過 MART 與執行階段層進行通訊。

如要將 MART 主機別名新增至貴機構,請按照下列步驟操作:

  1. 取得先前在覆寫檔案中為 mart.hostAlias 屬性設定的值。主機別名必須是完整的網域名稱,才能讓 MART 運作。
  2. 在「啟用同步器存取權」一節中,找出具有先前下載的 Apigee 組織管理員 角色的服務帳戶金鑰。
  3. 執行下列兩個指令,取得符記:
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    其中 org-admin-service-account-file 是系統中服務帳戶金鑰的路徑,您可以使用 Apigee 機構管理員角色下載該金鑰。

  4. 請呼叫下列管理 API,以 MART 端點更新貴機構:
    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/your_org_name \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "your_org_name",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.server.endpoint",
          "value" : "https://HOST_ALIAS_DNS"
        } ]
      }
    }'

    以下提供範例。請務必在主機別名中加上「https://」前置字串。

    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/my_organization \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "my_organization",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.server.endpoint",
          "value" : "https://foo-mart.example.com"
        } ]
      }
    }'

儲存覆寫檔案

請務必儲存覆寫檔案。您需要這個檔案才能執行日後的升級、修補或叢集設定的任何其他修改。