本主題將說明如何在現有的 Kubernetes 叢集中新增第二個 Apigee Hybrid 機構 (org)。在這種多機構設定中,兩個機構都會使用及共用相同的 Cassandra 環。每個組織都可以設定多個環境和環境群組。
限制
系統支援每個叢集的多個機構設定,但有下列限制。在這些限制緩解之前,我們不建議您使用這項設定:
- 如果您要建立多個 Apigee 混合執行個體,每個執行個體都應有自己的叢集。在同一個 Kubernetes 叢集中執行多個 Apigee 混合式執行個體,可能會導致不穩定的問題,進而導致服務中斷。
- 所有 Pod 記錄都會傳送至第一個已設定的 Google Cloud 專案。這項限制在 Cloud Logging 工具中最為明顯。其他 Apigee 機構的記錄不會傳送至相符的 Google Cloud 專案。記錄仍會在 Pod 層級擷取,並可透過
kubectl
指令擷取。不過,這些記錄並未透過 Cloud Logging 傳送至正確的雲端專案。 - 您無法只刪除 Cassandra 資料庫中某個機構的資料。也就是說,您無法選擇性地移除機構。任何資料庫設定變更都會影響部署至該叢集的所有機構。
- 混合升級程序會一次升級整個叢集。
- 備份和還原作業是以叢集為單位進行,無法針對特定組織執行。
- Apigee API Monitoring 功能 (時間軸、近期、調查) 僅適用於所設定及部署的第一個機構。但不適用於多機構叢集中的其他機構。
多機構選項
本節說明 Apigee 支援團隊如何處理現有的多機構叢集,以及日後部署作業的建議:
- 如果您在非正式環境和正式環境中部署了現有的多機構 Kubernetes 叢集,Apigee 支援團隊將繼續提供支援。不過,請注意下一節所述的技術限制。建議您將日後的正式部署作業變更為每個叢集使用一個 Apigee 機構。
- 如果您在非正式作業環境中擁有現有的多機構叢集,Apigee 支援團隊仍會繼續提供支援。建議您將所有正式叢集遷移至新設定,以便每個叢集使用一個 Apigee 機構。
先決條件
繼續操作前,請注意下列事項:
- 您必須擁有現有的混合式機構,並在現有的 Kubernetes 叢集中安裝及設定一或多個環境。請參閱混合式安裝作業說明。
- 在單一叢集中合併多個組織時,混合版本必須全部相符。在叢集中新增第二個機構前,請視需要升級現有的混合式安裝作業。請參閱「升級 Apigee Hybrid」。
建立要新增至現有叢集的機構
如要建立其他機構,請按照「第 1 部分:專案和機構設定」中的步驟操作。
設定新機構
在後續步驟中,您將建立新的覆寫檔案,並為新機構設定該檔案。overrides.yaml
檔案只能支援一個機構的資訊。因此,您必須建立新的 overrides.yaml
檔案,並將其套用至現有的 Kubernetes 叢集。
- 建立服務帳戶,以便與新機構搭配使用。請參閱「建立服務帳戶」。
- 請記下
certs
目錄中的 TLS 憑證檔案 (.key
和.pem
)。如果您需要再次建立憑證,請按照「建立 TLS 憑證」中的操作說明進行。 - 將現有的
overrides.yaml
複製到新檔案,做為設定新機構的起點。例如:new-overrides.yaml
。 - 使用下列設定編輯新的覆寫檔案:
org: "new-org-name" instanceID: "instance-id" ## Must match the instanceID of your existing org. multiOrgCluster: true ## Enables exporting metrics for this org to the Google Cloud Project named with gcp:projectID k8sCluster: name: "existing-cluster-name" region: "existing-cluster-analytics-region" gcp: projectID: "new-project-id" name: "new-project-id" region: "new-project-default-location" namespace: namespace ## must be the same for both new and existing orgs virtualhosts: - name: new-environment-group-name sslCertPath: ./certs/cert-file-name # .crt or .pem sslKeyPath: ./certs/key-file-name # .key envs: - name: new-environment-name serviceAccountPaths: runtime: ./new-service-accounts-directory/new-project-id-apigee-runtime.json synchronizer: ./new-service-accounts-directory/new-project-id-apigee-synchronizer.json udca: ./new-service-accounts-directory/new-project-id-apigee-udca.json connectAgent: serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-mart.json mart: serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-mart.json metrics: serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-metrics.json watcher: serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-watcher.json
下表說明您必須在覆寫檔案中提供的每個屬性值。詳情請參閱「設定屬性參考資料」。
變數 說明 new-org-name 新機構的名稱。 instance-id 這個叢集中的所有機構都必須使用相同的執行個體 ID。因此,這必須與原始機構的覆寫檔案中的 instanceID
項目相符。existing-cluster-name 您要新增這個機構的叢集名稱。必須與原始叢集中覆寫檔案中的 k8sCluster.name
項目相符。existing-cluster-analytics-region 原始叢集的布建區域。必須與原始叢集中覆寫檔案中的 k8sCluster.region
項目相符。new-project-id 新專案的專案 ID。專案 ID 和組織名稱相同。 new-project-default-location 您在建立新機構時指定的數據分析區域。不必與現有機構的區域相同。 namespace 叢集中的所有機構都必須共用相同的命名空間。請務必使用原始機構使用的相同命名空間。大多數安裝作業的命名空間為 apigee
。new-environment-group-name 您為新組織建立的新環境群組。 cert-file-name 和
key-file-name您在本節步驟 1 中檢查或建立的叢集的 TLS 憑證和金鑰檔案。 new-environment-name 您為新機構建立的環境名稱。 new-service-accounts-directory 您為新機構建立的服務帳戶金鑰檔案所在的目錄。
套用設定
將新的機構設定套用至叢集:
- 進行模擬安裝作業,檢查是否有任何問題:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml \ --dry-run=server
- 如果沒有任何問題,請套用機構層級元件。這個步驟會安裝 Cassandra 工作 (使用者和結構定義)、Apigee Connect、Apigee Watcher 和 MART 服務:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f NEW_OVERRIDES_FILE.yaml
- 安裝環境。這個步驟會依照環境安裝 apigee-runtime、Synchronizer 和 UDCA 元件:
helm upgrade ENV_NAME apigee-env/ \ --install \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f overrides.yaml \ --dry-run=server
helm upgrade ENV_NAME apigee-env/ \ --install \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f overrides.yaml
- 套用負載平衡器變更。這個步驟會設定 ingress,讓其監聽第二個機構的新虛擬主機:
helm upgrade NEW_ENV_GROUP_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --atomic \ --set envgroup=NEW_ENV_GROUP_NAME \ -f overrides.yaml \ --dry-run=server
helm upgrade NEW_ENV_GROUP_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --atomic \ --set envgroup=NEW_ENV_GROUP_NAME \ -f overrides.yaml
- 按照「啟用控制層存取權」中的步驟,為新機構啟用同步處理工具存取權。
- 根據預設,首次安裝 Apigee 混合式執行階段時,系統會將追蹤元件設為停用
multiOrgCluster
。請按照下列步驟,為叢集中的每個機構組織啟用多機構追蹤記錄:- 使用下列指令刪除現有的遙測元件:
helm delete telemetry
- 在現有機構的
overrides.yaml
檔案中新增下列程式碼行。multiOrgCluster: true
- 套用變更,為機構安裝追蹤元件。
請先執行模擬測試:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -f FIRST_OVERRIDES_FILE.yaml \ --dry-run=server
如果模擬執行成功,請套用變更並安裝遙測元件:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -f FIRST_OVERRIDES_FILE.yaml
- 請確認每個新組織的
overrides.yaml
檔案中都包含以下程式碼行:multiOrgCluster: true
- 套用變更,為每個新機構安裝追蹤元件。針對多機構叢集中的每個新機構重複執行這項操作。
請先執行模擬測試:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -f NEW_OVERRIDES_FILE.yaml \ --dry-run=server
如果模擬執行成功,請套用變更並安裝遙測元件:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -f NEW_OVERRIDES_FILE.yaml
- 使用下列指令刪除現有的遙測元件: