啟用同步處理工具存取權
如何啟用同步處理工具存取權:
- 建立 Google Cloud 服務帳戶,並為該帳戶新增 Apigee 機構管理員角色。這個服務帳戶會用於驗證您在後續步驟中發出的 API 呼叫。建立服務帳戶的簡單方法是透過 GCP 控制台。
如需操作說明,請參閱 GCP 文件中的「
建立及管理服務帳戶」。
舉例來說,下列
gcloud指令會建立服務帳戶,並為該帳戶指派 Apigee 機構管理員:- 建立帳戶:
gcloud iam service-accounts create apigee-org-admin \ --display-name="apigee-org-admin"其中 apigee-org-admin 是您要建立的服務帳戶名稱。 建議在本教學課程中使用「
apigee-org-admin」。 - 將 Apigee 機構管理員角色指派給服務帳戶:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.admin"其中:
- $PROJECT_ID 是您在步驟 2:建立 Google Cloud 專案中建立的 Google Cloud 專案名稱。
- apigee-org-admin 是您剛建立的服務帳戶名稱。
- roles/apigee.admin 是 Apigee 機構管理員角色。
- 建立帳戶:
- 將服務帳戶金鑰下載到您的系統。使用下列指令將金鑰下載到
service-accounts/目錄。詳情請參閱 GCP 說明文件中的「 建立服務帳戶金鑰」一節。- 確認您位於
/hybrid-base-directory/hybrid-files/目錄。 - 下載金鑰:
gcloud iam service-accounts keys create ./service-accounts/$PROJECT_ID-apigee-org-admin.json \ --iam-account apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com
輸出內容應如下所示:
created key [a0b1c2d3e4f5a0b1c2d3e4f5a0b1c2d3e4f5a0b1] of type [json] as [./service-accounts/hybrid- example-apigee-org-admin.json] for [apigee-org-admin@my-hybrid.iam.gserviceaccount.com] $
- 確認您位於
- 使用下列指令驗證 Apigee Org Admin 服務帳戶金鑰的路徑:
ls service-accounts/*admin*
結果應如下所示:
service-accounts/hybrid-example-apigee-org-admin.json
- 建立 ORG_ADMIN_ACCOUNT 環境變數,並使用金鑰檔案的名稱。
例如:
export ORG_ADMIN_ACCOUNT="hybrid-example-apigee-org-admin.json"
- 執行下列指令來取得權杖:
export GOOGLE_APPLICATION_CREDENTIALS=./service-accounts/$ORG_ADMIN_ACCOUNTexport TOKEN=$(gcloud auth application-default print-access-token) - 使用下列指令取得
apigee-synchronizer服務帳戶的電子郵件地址:gcloud iam service-accounts list --filter "apigee-synchronizer"
如果符合
apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com模式,您可以在下一個步驟中使用該模式。 - 呼叫 setSyncAuthorization API,使用下列指令為 Synchronizer 啟用必要權限:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:setSyncAuthorization" \ -d '{"identities":["'"serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com"'"]}'其中:
$ORG_NAME:混合式機構的名稱。apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com:apigee-syncnronizer 服務帳戶的電子郵件地址。
- 如要確認服務帳戶已設定完成,請使用下列指令呼叫 API,取得服務帳戶清單:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:getSyncAuthorization" \ -d ''
輸出結果看起來與下列內容相似:
{ "identities":[ "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com" ], "etag":"BwWJgyS8I4w=" }
將設定套用到叢集
請按照下列步驟,將 Apigee Hybrid 安裝至叢集:
- 請務必位於
hybrid-base-directory/hybrid-files目錄。 - 使用下列指令,確認
kubectl已設為正確的環境。 目前的環境應設為要部署 Apigee Hybrid 的叢集。kubectl config get-contexts
- 僅適用於 AWS on GKE、EKS 和 GKE on prem 平台:使用下列指令確認
KUBECONFIG變數已設定。echo $KUBECONFIG
- 執行模擬測試初始化作業。執行
init指令並加上--dry-run旗標。進行試運轉可讓您在叢集進行任何變更前,檢查是否有錯誤。在混合式版本 1.4.4 中,
--dry-run旗標的語法取決於您執行的kubectl版本。使用下列指令檢查kubectl版本:kubectl version
kubectl1.17 以下版本:$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=true
kubectl1.18 以上版本:$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=client
- 如果沒有錯誤,請執行
init指令,如下所示:$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml
init指令會安裝 Apigee 部署服務、Apigee Deployment Controller 和 Apigee Admission Webhook。 - 如要檢查部署作業的狀態,可以使用下列指令:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yamlkubectl get pods -n apigee-systemkubectl get pods -n istio-systemPod 準備就緒後,請前往下一個步驟。
- 執行模擬測試安裝。執行
apply指令並加上--dry-run旗標。kubectl1.17 以下版本:$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
kubectl1.18 以上版本:$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=client
-
如果沒有錯誤,您可以使用下列指令,將
Apigee 專屬的執行階段元件套用至叢集:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
- 如要檢查部署作業的狀態,請執行下列指令:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
重複這個步驟,直到所有 Pod 都準備就緒。Pod 可能需要幾分鐘才能啟動。