這個步驟說明如何建立叢集,以便執行 Apigee Hybrid。操作說明會因執行混合式應用程式的平台而異。開始之前,請務必詳閱下列資訊:
建立叢集
請依據所選平台適用的步驟操作:
GKE
在 GKE 上建立叢集
這些步驟說明如何在 Google Cloud 專案中設定及建立 GKE 叢集。
Apigee 建議建立「地區叢集」,而非「可用區叢集」。如不熟悉區域和可用區的區別,請參閱區域和可用區。
如需可用地區的清單,請參閱「可用地區和區域」。請注意,舉例來說,us-west1
是有效的區域名稱,而 us-west1-a
是該區域中的可用區。
- 請確認您使用的 GKE 版本支援 Hybrid 1.13.4。 請參閱 Apigee Hybrid 支援的平台和版本。
- 如「必要條件」一節所述,請確保所有節點和應用程式伺服器上的時鐘都與網路時間通訊協定 (NTP) 同步。Cassandra 資料庫會依賴網路時間通訊協定 (NTP) 同步處理,以維持資料一致性。如果您打算在多個區域安裝 Hybrid,請確保所有區域都與 NTP 同步。
- (僅限 GKE 私人叢集) 如果您要在 GKE 上建立私人叢集,請新增防火牆規則,允許通訊埠 9443 在 GKE 主要節點和 GKE 工作人員節點之間通訊,並允許 GKE 主要節點存取 Apigee 變動 Webhook。請按照 Google Kubernetes Engine 說明文件中的新增特定用途的防火牆規則程序操作。詳情請參閱 GKE 中的私人叢集。
如果您要建立標準或公開叢集,則不需要新增這項規則。
- 按照「建立具有多區域節點集區的區域叢集」一文中的操作說明,建立標準叢集。只使用預設節點集區建立叢集也沒問題。您將在下一個步驟中,設定及建立必要的 Apigee Hybrid 節點集區。
」一文的指示操作。
叢集建立成功後,再繼續執行下一個步驟。
- 按照「新增及管理節點集區」中的操作說明,建立兩個節點集區。請務必設定節點集區,使其符合下表列出的最低需求。
節點集區基本規定
建立節點集區時,請務必滿足這些基本需求。請務必根據您要建構的 Apigee Hybrid 安裝項目,選取「Prod」或「Non-prod」的值。非正式環境安裝適用於測試和展示,但不足以處理正式環境流量。如果您使用 Google Cloud 控制台,請務必設定「節點集區詳細資料」和「節點」部分。
節點集區名稱 說明 節點數量下限 Prod
Minimum
machine type非正式版
機器類型下限apigee-data
用於 Cassandra 資料庫的有狀態節點集區。 每個可用區 1 個
(每個區域 3 個)e2-standard-8
(8 個 vCPU,32 GB 記憶體)e2-standard-4
(4 個 vCPU,16 GB 記憶體)apigee-runtime
執行階段訊息處理器使用的無狀態節點集區。 每個可用區 1 個
(每個區域 3 個)e2-standard-8
(8 個 vCPU,32 GB 記憶體)e2-standard-4
(4 個 vCPU,16 GB 記憶體)如要進一步瞭解節點集區設定,請參閱「設定專用的節點集區」。
- (選用) 如要刪除
default
節點集區,請參閱「刪除節點集區」。 - 如果尚未建立下列環境變數,請先完成這項作業。這些變數會用於下列 gcloud 指令。
Linux / MacOS
export CLUSTER_NAME="YOUR_CLUSTER_NAME"
export CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION"
export PROJECT_ID="YOUR_PROJECT_ID"
Windows
set CLUSTER_NAME="YOUR_CLUSTER_NAME"
set CLUSTER_LOCATION=YOUR_CLUSTER_LOCATION
set PROJECT_ID=YOUR_PROJECT_ID
其中:
-
CLUSTER_NAME
:叢集名稱。 -
CLUSTER_LOCATION
:您建立叢集的區域。 -
PROJECT_ID
:您的 Google Cloud 專案 ID。
-
- 驗證節點集區設定:
地區性叢集
gcloud container node-pools list \ --cluster=${CLUSTER_NAME} \ --region=${CLUSTER_LOCATION} \ --project=${PROJECT_ID}
區域叢集
gcloud container node-pools list \ --cluster=${CLUSTER_NAME} \ --zone=${CLUSTER_LOCATION} \ --project=${PROJECT_ID}
- 請先取得叢集,確認叢集已設為
kubectl
的預設叢集。 您剛建立的叢集gcloud
憑證:地區性叢集
gcloud container clusters get-credentials ${CLUSTER_NAME} \ --region ${CLUSTER_LOCATION} \ --project ${PROJECT_ID}
區域叢集
gcloud container clusters get-credentials ${CLUSTER_NAME} \ --zone ${CLUSTER_LOCATION} \ --project ${PROJECT_ID}
請參閱 為 kubectl 指令設定預設叢集。
-
為 Cassandra 設定永久固態硬碟 (SSD) 儲存空間。 我們不支援使用本機 SSD。詳情請參閱 Kubernetes 說明文件中的「 變更預設儲存空間類別」。
- 取得目前預設 StorageClass 的名稱:
kubectl get sc
例如:
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h - 說明名為
standard-rwo
的 StorageClass。請注意,其類型為pd-balanced
:kubectl describe sc standard-rwo
例如:
kubectl describe sc standard-rwo
Name: standard-rwo IsDefaultClass: Yes Annotations: components.gke.io/layer=addon,storageclass.kubernetes.io/is-default-class=false Provisioner: pd.csi.storage.gke.io Parameters: type=pd-balanced AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: <none>
- 建立名為
storageclass.yaml
的新檔案。 - 將這段程式碼新增至檔案。請注意,新儲存空間級別的名稱是
apigee-sc
。您可以使用自己偏好的名稱。此外,請注意儲存空間類型為pd-ssd
:--- kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: "apigee-sc" provisioner: kubernetes.io/gce-pd parameters: type: pd-ssd replication-type: none volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true
- 將新的 StorageClass 套用至 Kubernetes 叢集:
kubectl apply -f storageclass.yaml
- 執行下列兩項指令,變更預設 StorageClass:
kubectl patch storageclass standard-rwo \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
kubectl patch storageclass apigee-sc \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
- 執行這項指令,確認新的預設 StorageClass 名為
apigee-sc
:kubectl get sc
例如:
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE apigee-sc (default) kubernetes.io/gce-pd Delete WaitForFirstConsumer true 14h premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h
- 取得目前預設 StorageClass 的名稱:
- 為叢集啟用 Workload Identity。透過 Workload Identity,GKE 叢集中的工作負載可以模擬 Identity and Access Management (IAM) 服務帳戶,存取 Google Cloud 服務。這項作業最多需要 30 分鐘才能完成:
地區性叢集
gcloud container clusters update ${CLUSTER_NAME} \ --workload-pool=${PROJECT_ID}.svc.id.goog \ --project ${PROJECT_ID} \ --region ${CLUSTER_LOCATION}
區域叢集
gcloud container clusters update ${CLUSTER_NAME} \ --workload-pool=${PROJECT_ID}.svc.id.goog \ --zone ${CLUSTER_LOCATION} \ --project ${PROJECT_ID}
- 執行下列指令,確認 Workload Identity 是否已成功啟用:
地區性叢集
gcloud container clusters describe ${CLUSTER_NAME} \ --project ${PROJECT_ID} \ --region ${CLUSTER_LOCATION} | grep -i "workload"
區域叢集
gcloud container clusters describe ${CLUSTER_NAME} \ --zone ${CLUSTER_LOCATION} \ --project ${PROJECT_ID} | grep -i "workload"
安裝並執行叢集後,請前往下一個步驟。
VMware 上的 Google Distributed Cloud
建立 VMware 叢集
這些步驟說明如何設定及建立 Apigee Hybrid 的 GKE 叢集,做為 VMware 部署的 Google Distributed Cloud 軟體的一部分。
- 請確認您使用的 Google Distributed Cloud 版本支援混合式 1.13.4。 請參閱 Apigee Hybrid 支援的平台和版本。
- 如「必要條件」一節所述,請確保所有節點和應用程式伺服器上的時鐘都與網路時間通訊協定 (NTP) 同步。Cassandra 資料庫會依賴網路時間通訊協定 (NTP) 同步處理,以維持資料一致性。如果您打算在多個區域安裝混合式系統,請務必確保所有區域都與 NTP 同步。
- 按照「建立基本叢集」一文中的操作說明建立叢集。
只使用預設節點集區建立叢集也沒問題。您將在下一個步驟中,設定及建立必要的 Apigee Hybrid 節點集區。
叢集建立成功後,再繼續執行下一個步驟。
- 按照建立及管理節點集區中的操作說明,建立兩個節點集區。請根據下表列出的最低需求,設定節點集區。
節點集區基本規定
建立節點集區時,請務必滿足這些基本需求。根據您要建構的 Apigee Hybrid 安裝項目,選取「Prod」或「Non-prod」的值。非正式環境安裝適用於測試和展示,但不足以應付正式環境流量。
節點集區名稱 說明 節點數量下限 Prod
Minimum
machine type非正式版
機器類型下限apigee-data
用於 Cassandra 資料庫的有狀態節點集區。 每個可用區 1 個
(每個區域 3 個)e2-standard-8
(8 個 vCPU,16 GB 記憶體)e2-standard-4
(4 個 vCPU,16 GB 記憶體)apigee-runtime
執行階段訊息處理器使用的無狀態節點集區。 每個可用區 1 個
(每個區域 3 個)e2-standard-8
(8 個 vCPU,16 GB 記憶體)e2-standard-4
(4 個 vCPU,16 GB 記憶體)如要進一步瞭解節點集區設定,請參閱「設定專用的節點集區」。
- (選用) 如要刪除
default
節點集區,請參閱刪除節點集區。 -
為 Cassandra 設定永久固態硬碟 (SSD) 儲存空間。 我們不支援使用本機 SSD。詳情請參閱 Kubernetes 說明文件中的「 變更預設儲存空間類別」。
- 取得目前預設 StorageClass 的名稱:
kubectl get sc
例如:
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h - 說明名為
standard-rwo
的 StorageClass。請注意,其型別為pd-balanced
:kubectl describe sc standard-rwo
例如:
kubectl describe sc standard-rwo
Name: standard-rwo IsDefaultClass: Yes Annotations: components.gke.io/layer=addon,storageclass.kubernetes.io/is-default-class=false Provisioner: pd.csi.storage.gke.io Parameters: type=pd-balanced AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: <none>
- 建立名為
storageclass.yaml
的新檔案。 - 將這段程式碼新增至檔案。請注意,新儲存空間級別的名稱是
apigee-sc
。您可以使用自己偏好的名稱。此外,請注意儲存空間類型為pd-ssd
:--- kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: "apigee-sc" provisioner: kubernetes.io/gce-pd parameters: type: pd-ssd replication-type: none volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true
- 將新的 StorageClass 套用至 Kubernetes 叢集:
kubectl apply -f storageclass.yaml
- 執行下列兩項指令,變更預設 StorageClass:
kubectl patch storageclass standard-rwo \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
kubectl patch storageclass apigee-sc \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
- 執行這項指令,確認新的預設 StorageClass 名為
apigee-sc
:kubectl get sc
例如:
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE apigee-sc (default) kubernetes.io/gce-pd Delete WaitForFirstConsumer true 14h premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h
- 取得目前預設 StorageClass 的名稱:
安裝並執行叢集後,請前往下一個步驟。
Google Distributed Cloud on bare metal
建立 bare metal 叢集
這些步驟說明如何設定及建立 Apigee Hybrid 的 GKE 叢集,這是 Google Distributed Cloud on Bare Metal 軟體部署作業的一部分。透過裸機上的 Google Distributed Cloud,您可以在自己的機器資源上直接執行 Kubernetes 叢集。
- 請確認您使用的 Google Distributed Cloud 版本支援混合式 1.13.4。 請參閱 Apigee Hybrid 支援的平台和版本。
- 如「必要條件」一節所述,請確保所有節點和應用程式伺服器上的時鐘都與網路時間通訊協定 (NTP) 同步。Cassandra 資料庫會依賴網路時間通訊協定 (NTP) 同步處理,以維持資料一致性。如果您打算在多個區域安裝混合式系統,請務必確保所有區域都與 NTP 同步。
- 請參閱「 安裝需求條件總覽」和「建立叢集:總覽」。
- 建立叢集,並設定兩個節點集區,如下所示:
- 請按照「建立基本叢集」中的叢集建立說明操作。
- 至少要建立兩個節點集區。設定節點集區,並符合下表列出的最低需求。
叢集的最低設定如下:
設定 具狀態的節點集區 無狀態節點集區 目的 用於 Cassandra 資料庫的有狀態節點集區。 執行階段訊息處理器使用的無狀態節點集區。 標籤名稱 apigee-data apigee-runtime 節點數量 每個可用區 1 個 (每個區域 3 個) 每個可用區 1 個 (每個區域 3 個) CPU 8 (正式環境)
4 (非正式環境)8 (正式環境)
4 (非正式環境)RAM 32 (正式版)
16 (非正式版)32 (正式版)
16 (非正式版)儲存空間 動態 使用 ApigeeDeployment CRD 管理 磁碟 IOPS 下限 使用 SAN 或直接連接的儲存裝置時,IOPS 為 2000。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。 使用 SAN 或直接連接的儲存裝置時,IOPS 為 2000。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。 各機器執行個體類型的網路頻寬 1 Gbps 1 Gbps 如要進一步瞭解叢集設定最低需求,請參閱: 叢集設定最低需求
安裝並執行叢集後,請前往下一個步驟。
AKS
在 AKS 上建立叢集
下列步驟說明如何設定及建立 AKS 上的 Apigee Hybrid 叢集。
- 確認您使用的 AKS 版本支援混合式版本 1.13.4。 請參閱 Apigee Hybrid 支援的平台和版本。
- 如「必要條件」一節所述,請確保所有節點和應用程式伺服器上的時鐘都與網路時間通訊協定 (NTP) 同步。Cassandra 資料庫依賴網路時間通訊協定 (NTP) 同步處理,以維持資料一致性。如果您打算在多個區域安裝混合式系統,請務必確保所有區域都與 NTP 同步。
- 使用 Azure CLI 或 Azure 入口網站建立叢集,並按照下文說明建立兩個節點集區。
叢集的最低設定如下:
設定 具狀態的節點集區 無狀態節點集區 目的 用於 Cassandra 資料庫的有狀態節點集區。 執行階段訊息處理器使用的無狀態節點集區。 標籤名稱 apigee-data apigee-runtime 節點數量 每個可用區 1 個 (每個區域 3 個) 每個可用區 1 個 (每個區域 3 個) CPU 8 (正式環境)
4 (非正式環境)8 (正式環境)
4 (非正式環境)RAM 32 (正式版)
16 (非正式版)32 (正式版)
16 (非正式版)儲存空間 動態 使用 ApigeeDeployment CRD 管理 磁碟 IOPS 下限 使用 SAN 或直接連接的儲存裝置時,IOPS 為 2000。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。 使用 SAN 或直接連接的儲存裝置時,IOPS 為 2000。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。 各機器執行個體類型的網路頻寬 1 Gbps 1 Gbps 如要進一步瞭解叢集設定最低需求,請參閱: 叢集設定最低需求
安裝並執行叢集後,請前往下一個步驟。
EKS
在 EKS 上建立叢集
下列步驟說明如何設定及建立 EKS 上的 Apigee Hybrid 叢集。
- 確認您使用的 EKS 版本支援混合式 1.13.4 版。 請參閱 Apigee Hybrid 支援的平台和版本。
- 如「必要條件」一節所述,請確保所有節點和應用程式伺服器上的時鐘都與網路時間通訊協定 (NTP) 同步。Cassandra 資料庫依賴網路時間通訊協定 (NTP) 同步處理,以維持資料一致性。如果您打算在多個區域安裝混合式系統,請務必確保所有區域都與 NTP 同步。
- 如果您使用 Kubernetes 1.24 以上版本,請務必安裝 Amazon EBS 的 Kubernetes CSI 驅動程式。
- 請按照下列操作說明建立使用者叢集,並建立兩個節點集區,如下所述。
叢集的最低設定如下:
設定 具狀態的節點集區 無狀態節點集區 目的 用於 Cassandra 資料庫的有狀態節點集區。 執行階段訊息處理器使用的無狀態節點集區。 標籤名稱 apigee-data apigee-runtime 節點數量 每個可用區 1 個 (每個區域 3 個) 每個可用區 1 個 (每個區域 3 個) CPU 8 (正式環境)
4 (非正式環境)8 (正式環境)
4 (非正式環境)RAM 32 (正式版)
16 (非正式版)32 (正式版)
16 (非正式版)儲存空間 動態 使用 ApigeeDeployment CRD 管理 磁碟 IOPS 下限 使用 SAN 或直接連接的儲存裝置時,IOPS 為 2000。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。 使用 SAN 或直接連接的儲存裝置時,IOPS 為 2000。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。 各機器執行個體類型的網路頻寬 1 Gbps 1 Gbps 如要進一步瞭解叢集設定最低需求,請參閱: 叢集設定最低需求
安裝並執行叢集後,請前往下一個步驟。
GKE on AWS
在 GKE on AWS 上建立叢集
這些步驟說明如何設定及建立叢集,以便在 GKE on AWS 上使用 Apigee Hybrid。
- 請確認您使用的 GKE on AWS 版本支援 Hybrid 1.13.4。 請參閱 Apigee Hybrid 支援的平台和版本。
- 如「必要條件」一節所述,請確保所有節點和應用程式伺服器上的時鐘都與網路時間通訊協定 (NTP) 同步。Cassandra 資料庫依賴網路時間通訊協定 (NTP) 同步處理,以維持資料一致性。如果您打算在多個區域安裝混合式系統,請務必確保所有區域都與 NTP 同步。
- 請按照下列操作說明建立使用者叢集,並建立兩個節點集區,如下所述。
叢集的最低設定如下:
設定 具狀態的節點集區 無狀態節點集區 目的 用於 Cassandra 資料庫的有狀態節點集區。 執行階段訊息處理器使用的無狀態節點集區。 標籤名稱 apigee-data apigee-runtime 節點數量 每個可用區 1 個 (每個區域 3 個) 每個可用區 1 個 (每個區域 3 個) CPU 8 (正式環境)
4 (非正式環境)8 (正式環境)
4 (非正式環境)RAM 32 (正式版)
16 (非正式版)32 (正式版)
16 (非正式版)儲存空間 動態 使用 ApigeeDeployment CRD 管理 磁碟 IOPS 下限 使用 SAN 或直接連接的儲存裝置時,IOPS 為 2000。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。 使用 SAN 或直接連接的儲存裝置時,IOPS 為 2000。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。 各機器執行個體類型的網路頻寬 1 Gbps 1 Gbps 如要進一步瞭解叢集設定最低需求,請參閱: 叢集設定最低需求
安裝並執行叢集後,請前往下一個步驟。
OpenShift
在 OpenShift 上建立叢集
下列步驟說明如何在 OpenShift 上設定及建立 Apigee Hybrid 叢集。
- 確認您使用的 OpenShift 版本支援混合式 1.13.4。 請參閱 Apigee Hybrid 支援的平台和版本。
- 如「必要條件」一節所述,請確保所有節點和應用程式伺服器上的時鐘都與網路時間通訊協定 (NTP) 同步。Cassandra 資料庫依賴網路時間通訊協定 (NTP) 同步處理,以維持資料一致性。如果您打算在多個區域安裝混合式系統,請務必確保所有區域都與 NTP 同步。
- 建構 OpenShift 叢集以部署至執行階段平面、在 OpenShift 使用者叢集上安裝 Apigee,並建立兩個節點集區。
安裝 OpenShift 時,請一併安裝及設定
oc
CLI 工具。請參閱 OpenShift 說明文件中的「開始使用 OpenShift CLI」。叢集的最低設定如下:
設定 具狀態的節點集區 無狀態節點集區 目的 用於 Cassandra 資料庫的有狀態節點集區。 執行階段訊息處理器使用的無狀態節點集區。 標籤名稱 apigee-data apigee-runtime 節點數量 每個可用區 1 個 (每個區域 3 個) 每個可用區 1 個 (每個區域 3 個) CPU 8 (正式環境)
4 (非正式環境)8 (正式環境)
4 (非正式環境)RAM 32 (正式版)
16 (非正式版)32 (正式版)
16 (非正式版)儲存空間 動態 使用 ApigeeDeployment CRD 管理 磁碟 IOPS 下限 使用 SAN 或直接連接的儲存裝置時,IOPS 為 2000。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。 使用 SAN 或直接連接的儲存裝置時,IOPS 為 2000。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。 各機器執行個體類型的網路頻寬 1 Gbps 1 Gbps 如要進一步瞭解叢集設定最低需求,請參閱: 叢集設定最低需求
安裝叢集後,請前往下一個步驟。