將設定套用到叢集
如要在叢集中安裝 Apigee Hybrid,請按照下列步驟操作:
- 請確認您位於
hybrid-base-directory/hybrid-files目錄。 - 執行
init指令:$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml
init指令會安裝 Apigee 部署服務 Apigee Deployment Controller 和 Apigee Admission Webhook,並部署非 Apigee 元件 Istio 和 Cert Manager。 - 如要檢查部署作業的狀態,可以使用下列指令:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
和
kubectl get pods -n apigee-system
和
kubectl get pods -n istio-system
Pod 準備就緒後,請前往下一個步驟。
- 進行「模擬」安裝。執行加上
--dry-run=true旗標的apply指令。進行試運轉可讓您在叢集進行任何變更前,檢查是否有錯誤。$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
-
如果沒有錯誤,您可以將 Apigee 專屬的執行階段元件套用至叢集:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
- 如要檢查部署作業的狀態:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
重複這個步驟,直到所有 Pod 都準備就緒。 Pod 可能需要幾分鐘才能啟動。
在 /etc/hosts 中新增 Cassandra 的靜態主機名稱
在這個步驟中,您會取得指派給 Cassandra 的工作節點 IP 和主機名稱,並將這些資訊新增至 /etc/hosts 檔案。使用主機網路時,Pod 會使用節點主機名稱和 IP。節點主機名稱不在 DNS 中,因此您必須在 /etc/hosts 中為每個 Cassandra 工作站節點新增靜態主機名稱項目。
- 執行這個指令,取得 Cassandra 工作站節點。參數
apigee-data是 Cassandra 指派的預設節點標籤。如果您使用其他節點標籤,請代入您使用的標籤。請參閱如何標記工作節點。kubectl get nodes -l apigee.com/apigee-nodepool=apigee-data -o wide
輸出範例:
kubectl get nodes -o wide my-cluster1-844788cc8c-2gx7d NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME my-cluster1-844788cc8c-2gx7d Ready none 19d v1.14.7-gke.24 21.0.129.248 21.0.129.248 Ubuntu 18.04.3 LTS 4.15.0-62-generic docker://17.3.2
- 將先前指令傳回的節點名稱和外部 IP 新增至
/etc/hosts檔案,每個 Cassandra 工作站節點各新增一行:cat /etc/hosts 127.0.0.1 localhost 21.0.129.248 my-cluster1-844788cc8c-2gx7d
啟用同步處理工具存取權
- 建立 GCP 服務帳戶,並將 Apigee 機構管理員角色新增至該帳戶。這個服務帳戶會用於驗證您在後續步驟中發出的 API 呼叫。建立服務帳戶的簡單方法是透過 GCP 控制台。 如需操作說明,請參閱 GCP 文件中的「 建立及管理服務帳戶」。
- 將服務帳戶金鑰下載到您的系統。請按照 GCP 說明文件中的 建立服務帳戶金鑰操作。
- 將下載的服務帳戶金鑰移至服務帳戶目錄:
/hybrid-base-directory
/hybrid-files/service-accounts。 - 執行下列兩個指令來取得權杖:
export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-fileexport TOKEN=$(gcloud auth application-default print-access-token)其中 org-admin-service-account-file 是系統上服務帳戶金鑰的路徑,您已透過 Apigee 機構管理員角色下載該金鑰。
- 呼叫 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"]}' - 如要確認服務帳戶已設定完成,請呼叫下列 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 IP 新增至貴機構
您必須將 MART 端點的 IP 位址新增至 Apigee 機構。您先前在覆寫檔案中設定 mart.hostAlias 屬性的值時,已設定這個值。管理平面需要這個位址,才能透過 MART 與執行階段平面通訊。
請按照下列步驟將 MART IP 新增至貴機構:
- 取得您先前在覆寫檔案中為
mart.hostAlias屬性設定的值。主機別名必須是完整網域名稱,MART 才能正常運作。 - 在「啟用同步器存取權」一節中,找出先前下載的服務帳戶金鑰,該金鑰具有「Apigee 機構管理員」角色。
- 執行下列兩個指令來取得權杖:
export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-fileexport TOKEN=$(gcloud auth application-default print-access-token)其中 org-admin-service-account-file 是系統中服務帳戶金鑰的路徑,您已透過 Apigee 機構管理員角色下載該金鑰。
- 呼叫下列管理 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" } ] } }'
儲存覆寫檔案
請務必儲存覆寫檔案。日後升級、修補或修改叢集設定時,都需要用到這個檔案。