步驟 3:安裝 apigeectl

本步驟說明如何下載及安裝 apigeectl、設定安裝目錄,以及建立混合式元件通訊所需的 Google Cloud 服務帳戶,和 Apigee Hybrid 運作所需的 TLS 憑證。

下載並安裝 apigeectl

apigeectl 是指令列介面 (CLI),用於在 Kubernetes 叢集中安裝及管理 Apigee Hybrid。

下列步驟說明如何取得 apigeectl

  1. 使用下列指令將最新版本號碼儲存在變數中:
    export VERSION=$(curl -s \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1)
  2. 使用下列指令,確認變數是否已填入版本號碼。如要使用其他版本,可以改為將該版本儲存在環境變數中。
    echo $VERSION
  3. 使用下列指令,下載適用於您作業系統的發布套件:

    Mac 64 位元:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_64.tar.gz

    Linux 64 位元:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_64.tar.gz

    Mac 32 位元:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_32.tar.gz

    Linux 32 位元:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_32.tar.gz
  4. 在系統上建立目錄,做為 Apigee Hybrid 安裝的基本目錄
  5. 使用下列指令,將下載的 gzip 檔案內容解壓縮到您剛才建立的基底目錄:

    tar xvzf filename.tar.gz -C path-to-base-directory
  6. 使用 cd 指令將目錄變更為基本目錄。
  7. 根據預設,tar 內容會展開至目錄中,且目錄名稱會包含版本和平台。例如:./apigeectl_1.0.0-f7b96a8_linux_64。使用下列指令將該目錄重新命名為 apigeectl

    mv apigeectl_1.0.0-f7b96a8_linux_64 apigeectl
  8. 使用下列指令切換至該目錄:
    cd ./apigeectl

    這個目錄是 apigeectl 主目錄。這是 apigeectl 可執行指令所在的目錄。

  9. 使用下列指令建立環境變數,以保留這個主目錄路徑:
    export APIGEECTL_HOME=$PWD
  10. 使用下列指令確認變數是否包含正確路徑:
    echo $APIGEECTL_HOME

設定專案目錄結構

以下目錄結構是建議的做法。可將 Apigee Hybrid 版本軟體與您必須建立的設定檔分開。使用 $APIGEECTL_HOME 變數和您建立的符號連結,即可輕鬆切換至新版軟體。另請參閱「升級 Apigee Hybrid」。

  1. 請使用下列指令,確認您位於基本目錄 (apigeectl 目錄所在的目錄):
    cd $APIGEECTL_HOME/..
  2. 使用下列指令建立名為 hybrid-files 的新資料夾。您可以為目錄指定任何名稱,但文件一律使用 hybrid-files 這個名稱。稍後,您會將設定檔、服務帳戶金鑰和 TLS 憑證儲存在這個資料夾中。這個資料夾可讓您將設定檔與軟體安裝作業分開。apigeectl
    mkdir hybrid-files
  3. 目前的目錄結構如下所示:
    pwd && ls
    /hybrid-base-directory
      apigeectl
      hybrid-files
  4. 使用下列指令將目錄變更為 hybrid-files 資料夾:
    cd hybrid-files
  5. hybrid-files 目錄中,建立下列子目錄,以便整理稍後建立的檔案:
    mkdir overrides
    mkdir service-accounts
    mkdir certs
  6. hybrid-files 目錄中,建立下列符號連結至 $APIGEECTL_HOME。這些連結可讓您從 hybrid-files 目錄內執行 apigeectl 指令,如下例所示:
    ln -s $APIGEECTL_HOME/tools tools
    ln -s $APIGEECTL_HOME/config config
    ln -s $APIGEECTL_HOME/templates templates
    ln -s $APIGEECTL_HOME/plugins plugins
  7. 如要確認符號連結是否建立正確,請執行下列指令,並確認連結路徑指向正確位置:
    ls -l | grep ^l

建立服務帳戶

Apigee Hybrid 會使用 Google Cloud 服務帳戶,允許 Hybrid 元件透過發出已授權的 API 呼叫進行通訊。在本步驟中,您會使用 Apigee Hybrid 指令列工具建立一組服務帳戶。這項工具也會為您下載服務帳戶私密金鑰。接著,您必須將這些金鑰新增至 Apigee Hybrid 叢集設定檔。

Apigee 提供 create-service-account 工具,可透過單一指令建立服務帳戶、將角色指派給服務帳戶,以及建立並下載服務帳戶的金鑰檔案。如要瞭解相關的 Google Cloud 概念,請參閱「建立及管理服務帳戶」和「建立及管理服務帳戶金鑰」。

  1. 請確認您位於「設定專案目錄結構」中設定的 base_directory/hybrid-files 目錄。
  2. hybrid-files 目錄中執行下列指令。這項指令會為 apigee-metrics 元件建立服務帳戶,並將下載的金鑰放在 ./service-accounts 目錄中。
    ./tools/create-service-account apigee-metrics ./service-accounts

    看到下列提示時,請輸入 y

    [INFO]: gcloud configured project ID is project_id.
     Press: y to proceed with creating service account in project: project_id
     Press: n to abort.

    如果這是第一次建立工具指派確切名稱的 SA,工具會直接建立,您不必採取任何行動。

    不過,如果看到下列訊息和提示,請輸入 y 來產生新金鑰:

    [INFO]: Service account apigee-metrics@project_id.iam.gserviceaccount.com already exists.
    ...
     [INFO]: The service account might have keys associated with it. It is recommended to use existing keys.
     Press: y to generate new keys.(this does not de-activate existing keys)
     Press: n to skip generating new keys.
    
  3. 現在,請使用下列指令建立其餘服務帳戶。create-service-account 指令是互動式指令,每個帳戶都必須回應。
    ./tools/create-service-account apigee-synchronizer ./service-accounts
    ./tools/create-service-account apigee-udca ./service-accounts
    ./tools/create-service-account apigee-mart ./service-accounts
    ./tools/create-service-account apigee-cassandra ./service-accounts
    ./tools/create-service-account apigee-logger ./service-accounts
    ./tools/create-service-account apigee-watcher ./service-accounts
  4. 使用下列指令,確認服務帳戶金鑰已建立。您必須妥善儲存這些私密金鑰。金鑰檔案名稱會加上 Google Cloud 專案名稱做為前置字元。
    ls ./service-accounts

    結果應如下所示:

    gcp-project-id-apigee-cassandra.json
    gcp-project-id-apigee-logger.json
    gcp-project-id-apigee-mart.json
    gcp-project-id-apigee-metrics.json
    gcp-project-id-apigee-synchronizer.json
    gcp-project-id-apigee-udca.json
    gcp-project-id-apigee-watcher.json
  5. 將 Apigee 機構管理員角色指派給 apigee-org-admin 服務帳戶:
  6. 確認 apigee-org-admin 服務帳戶的電子郵件地址符合 service_account@PROJECT_ID.iam.gserviceaccount.com 模式,如下例所示:
    gcloud iam service-accounts list --filter "apigee-org-admin"
  7. 使用下列指令指派角色:
    gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member serviceAccount:apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com --role roles/apigee.admin

    其中 PROJECT_ID 是您的 Google Cloud 專案。如果服務帳戶電子郵件地址與這個模式不同,請相應地替換。

    輸出內容應包含所有服務帳戶及其角色清單,包括:

    - members:
      - serviceAccount:apigee-org-admin@hybrid-example-2.iam.gserviceaccount.com
      role: roles/apigee.admin

建立傳輸層安全標準 (TLS) 憑證

您必須在 Apigee Hybrid 設定中,為執行階段 Ingress 閘道提供 TLS 憑證。為配合本快速入門導覽課程 (非正式版試用安裝),執行階段閘道可接受自行簽署的憑證。在下列步驟中,openssl 用於產生自行簽署的憑證。

在這個步驟中,您會建立 TLS 憑證檔案,並將其新增至 base_directory/hybrid-files/certs 目錄。在「Step 4: Configure the cluster」(步驟 4:設定叢集)中,您會將檔案路徑新增至叢集設定檔。

  1. 請確認您位於「設定專案目錄結構」中設定的 base_directory/hybrid-files 目錄。
  2. 請使用下列指令,確認網域名稱已儲存至 DOMAIN 環境變數:
    echo $DOMAIN
  3. hybrid-files 目錄內執行下列指令:
    openssl req  -nodes -new -x509 -keyout ./certs/keystore.key -out \
        ./certs/keystore.pem -subj '/CN='$DOMAIN'' -days 3650

    其中 DOMAIN 是您在快速入門 (混合式) 步驟 5:設定 DNS 中為混合式安裝保留的網域。

    這項指令會建立一組自行簽署的憑證/金鑰,可用於快速入門安裝作業。

  4. 使用下列指令檢查檔案是否位於 ./certs 目錄中:
    ls ./certs
      keystore.pem
      keystore.key

    其中 keystore.pem 是自行簽署的 TLS 憑證檔案,keystore.key 是金鑰檔案。

現在您已擁有主機,可從中在 Kubernetes 叢集設定、部署及管理 Apigee Hybrid。接下來,您將建立 Kubernetes 用來將混合式執行階段元件部署至叢集的檔案。

1 2 3 (NEXT) Step 4: Configure the cluster 5