本步驟將說明如何建立要用於執行 Apigee Hybrid 的叢集。操作說明會因執行混合型應用程式的平台而異。開始之前,請務必詳閱下列資訊:
建立叢集
請按照所選平台的步驟操作:
GKE
在 GKE 上建立叢集
這些步驟說明如何在 Google Cloud 專案中設定及建立 GKE 叢集。
Apigee 建議您建立地區叢集,而非可用區叢集。如果您不清楚地區和區域的差異,請參閱「地區和區域」一文。可用地區列於可用地區和區域。請注意,例如 us-west1
是有效的地區名稱,而 us-west1-a
則是該地區中的區域。
- 請確認您使用的 GKE 版本支援混合型版本 1.11.2。 請參閱「Apigee Hybrid 支援的平台和版本」。
- 請確認所有節點和應用程式伺服器的時鐘都與網路時間通訊協定 (NTP) 同步,詳情請參閱「必要條件」一節。Cassandra 資料庫會使用網路時間通訊協定 (NTP) 同步處理功能,維持資料一致性。如果您打算在多個區域中安裝混合型,請務必確保這些區域都與 NTP 同步。
- (僅限 GKE 私人叢集) 如果您要在 GKE 上建立私人叢集,請新增防火牆規則,允許通訊埠 9443 用於 GKE 主要節點和 GKE 工作節點之間的通訊,並允許 GKE 主要執行個體存取 Apigee 變異 webhook。請按照 Google Kubernetes Engine 說明文件中「新增特定用途的防火牆規則」一節所述的程序進行。詳情請參閱「GKE 中的私人叢集」。
如果您要建立標準或公開叢集,則不需要新增這項規則。
- 請按照「建立含有多區域節點集區的區域叢集」一文的操作說明,建立標準叢集。您可以只使用預設節點集區建立叢集。您將在下一個步驟中設定並建立所需的 Apigee Hybrid 節點集區。
」一文中的指示操作。
請在叢集建立作業成功完成後,再繼續執行下一個步驟。
- 按照「新增及管理節點集區」一文的操作說明,建立兩個節點集區。請務必根據下表列出的最低需求設定節點集區。
節點集區最低需求條件
建立節點叢集時,請務必滿足這些基本要求。如果使用 Cloud 控制台,請務必設定「節點集區詳細資料」和「節點」部分。
節點集區名稱 說明 節點數量下限 機器類型下限 apigee-data
用於 Cassandra 資料庫的有狀態節點集區。 每個可用區 1 個
(每個區域 3 個)e2-standard-4
(4 個 vCPU,16 GB 記憶體)apigee-runtime
執行階段訊息處理器使用的無狀態節點集區。 每個可用區 1 個
(每個區域 3 個)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 叢集中的工作負載模擬身分與存取權管理 (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 身分:
地區性叢集
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"
安裝及執行叢集後,請繼續執行下一個步驟。
GKE On-Prem
在 GKE on-prem 上建立叢集
這些步驟說明如何設定及建立 Apigee Hybrid 的 GKE 內部部署叢集。
- 請確認您使用的 Google Distributed Cloud 版本支援混合型版本 1.11.2。 請參閱「Apigee Hybrid 支援的平台和版本」。
- 請確認所有節點和應用程式伺服器的時鐘都與網路時間通訊協定 (NTP) 同步,詳情請參閱「必要條件」一節。Cassandra 資料庫會使用網路時間通訊協定 (NTP) 同步處理功能,維持資料一致性。如果您打算在多個地區安裝混合型,請務必確保這些地區都與 NTP 同步。
- 按照「建立基本叢集」中的操作說明建立叢集。您可以只使用預設節點集區建立叢集。您將在下一個步驟中設定及建立所需的 Apigee Hybrid 節點集區。
請在叢集建立作業成功完成後,再繼續執行下一個步驟。
- 按照「建立及管理節點集區」中的操作說明,建立兩個節點集區。根據下表列出的最低需求設定節點集區。
節點集區最低需求條件
建立節點叢集時,請務必滿足這些基本需求。
節點集區名稱 說明 節點數量下限 機器類型下限 apigee-data
用於 Cassandra 資料庫的有狀態節點集區。 每個可用區 1 個
(每個區域 3 個)e2-standard-4
(4 個 vCPU,16 GB 記憶體)apigee-runtime
執行階段訊息處理器使用的無狀態節點集區。 每個可用區 1 個
(每個區域 3 個)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
在裸機上建立 Google Distributed Cloud 叢集
這些步驟說明如何在 Anthos 上設定及建立 Apigee hybrid 的叢集。有了裸機中的 Anthos,您就能直接在自己的機器資源上執行 Kubernetes 叢集。
- 請確認您使用的 Google Distributed Cloud on Bare Metal 版本支援混合型版本 1.11.2。請參閱「Apigee Hybrid 支援的平台和版本」。
- 請確認所有節點和應用程式伺服器的時鐘都與網路時間通訊協定 (NTP) 同步,詳情請參閱「必要條件」一節。Cassandra 資料庫會使用網路時間通訊協定 (NTP) 同步處理功能,維持資料一致性。如果您打算在多個地區安裝混合型,請務必確保這些地區都與 NTP 同步。
- 請參閱「 安裝必要條件總覽」和「建立叢集:總覽」。
- 建立叢集,並按照下列說明設定兩個節點集區:
- 請按照「Google Distributed Cloud on bare metal」說明文件中的「建立基本叢集」一節,按照叢集建立操作說明進行。
- 至少建立兩個節點集區。根據下表列出的最低需求設定節點集區。
叢集的最低設定如下:
設定 具狀態的節點集區 無狀態節點集區 目的 用於 Cassandra 資料庫的有狀態節點集區。 執行階段訊息處理器使用的無狀態節點集區。 標籤名稱 apigee-data apigee-runtime 節點數量 每個可用區 1 個 (每個區域 3 個) 每個可用區 1 個 (每個區域 3 個) CPU 4 4 RAM 15 15 儲存空間 動態 使用 ApigeeDeployment CRD 進行管理 磁碟 IOPS 下限 搭配 SAN 或直接連接的儲存空間,可達到 2000 IOPS。即使 NFS 可支援所需的 IOPS,也不建議使用。 搭配 SAN 或直接連接的儲存空間,可達到 2000 IOPS。即使 NFS 可支援所需的 IOPS,也不建議使用。 各機器執行個體類型的網路頻寬 1 Gbps 1 Gbps 如要進一步瞭解叢集設定最低需求,請參閱:叢集設定最低需求
安裝及執行叢集後,請繼續執行下一個步驟。
AKS
在 AKS 上建立叢集
這些步驟說明如何在 AKS 上設定及建立 Apigee hybrid 叢集。
- 請確認您使用的 AKS 版本支援混合型版本 1.11.2。請參閱「Apigee Hybrid 支援的平台和版本」。
- 請確認所有節點和應用程式伺服器的時鐘都與網路時間通訊協定 (NTP) 同步,詳情請參閱「必要條件」一節。Cassandra 資料庫會使用網路時間通訊協定 (NTP) 同步處理功能,維持資料一致性。如果您打算在多個地區安裝混合型,請務必確保這些地區都與 NTP 同步。
- 使用 Azure CLI 或 Azure 入口網站建立叢集,並按照下列說明建立兩個節點集區。
叢集的最低設定如下:
設定 具狀態的節點集區 無狀態節點集區 目的 用於 Cassandra 資料庫的有狀態節點集區。 執行階段訊息處理器使用的無狀態節點集區。 標籤名稱 apigee-data apigee-runtime 節點數量 每個可用區 1 個 (每個區域 3 個) 每個可用區 1 個 (每個區域 3 個) CPU 4 4 RAM 15 15 儲存空間 動態 使用 ApigeeDeployment CRD 進行管理 磁碟 IOPS 下限 搭配 SAN 或直接連接的儲存空間,可達到 2000 IOPS。即使 NFS 可支援所需的 IOPS,也不建議使用。 搭配 SAN 或直接連接的儲存空間,可達到 2000 IOPS。即使 NFS 可支援所需的 IOPS,也不建議使用。 各機器執行個體類型的網路頻寬 1 Gbps 1 Gbps 如要進一步瞭解叢集設定最低需求,請參閱:叢集設定最低需求
安裝及執行叢集後,請繼續執行下一個步驟。
EKS
在 EKS 上建立叢集
這些步驟說明如何在 EKS 上設定及建立 Apigee hybrid 叢集。
- 請確認您使用的 EKS 版本支援混合型版本 1.11.2。 請參閱「Apigee Hybrid 支援的平台和版本」。
- 請確認所有節點和應用程式伺服器的時鐘都與網路時間通訊協定 (NTP) 保持同步,詳情請參閱「必要條件」一節。Cassandra 資料庫會使用網路時間通訊協定 (NTP) 同步處理功能,維持資料一致性。如果您打算在多個區域中安裝混合型,請務必確保這些區域都與 NTP 同步。
- 如果您使用的是 Kubernetes 1.24 以上版本,請務必安裝 Amazon EBS 適用的 Kubernetes CSI 驅動程式。
- 請按照下列操作說明建立使用者叢集,並建立兩個節點集區,如下所述。
叢集的最低設定如下:
設定 具狀態的節點集區 無狀態節點集區 目的 用於 Cassandra 資料庫的有狀態節點集區。 執行階段訊息處理器使用的無狀態節點集區。 標籤名稱 apigee-data apigee-runtime 節點數量 每個可用區 1 個 (每個區域 3 個) 每個可用區 1 個 (每個區域 3 個) CPU 4 4 RAM 15 15 儲存空間 動態 使用 ApigeeDeployment CRD 進行管理 磁碟 IOPS 下限 搭配 SAN 或直接連接的儲存空間,可達到 2000 IOPS。即使 NFS 可支援所需的 IOPS,也不建議使用。 搭配 SAN 或直接連接的儲存空間,可達到 2000 IOPS。即使 NFS 可支援所需的 IOPS,也不建議使用。 各機器執行個體類型的網路頻寬 1 Gbps 1 Gbps 如要進一步瞭解叢集設定最低需求,請參閱:叢集設定最低需求
安裝及執行叢集後,請繼續執行下一個步驟。
GKE on AWS
在 AWS 上的 GKE 中建立叢集
這些步驟說明如何在 AWS 的 GKE 上設定及建立 Apigee Hybrid 叢集。
- 請確認您使用的 GKE 版本支援混合型版本 1.11.2。 請參閱「Apigee Hybrid 支援的平台和版本」。
- 請確認所有節點和應用程式伺服器的時鐘都與網路時間通訊協定 (NTP) 保持同步,詳情請參閱「必要條件」一節。Cassandra 資料庫會使用網路時間通訊協定 (NTP) 同步處理功能,維持資料一致性。如果您打算在多個區域中安裝混合型,請務必確保這些區域都與 NTP 同步。
- 請按照下列操作說明建立使用者叢集,並建立兩個節點集區,如下所述。
叢集的最低設定如下:
設定 具狀態的節點集區 無狀態節點集區 目的 用於 Cassandra 資料庫的有狀態節點集區。 執行階段訊息處理器使用的無狀態節點集區。 標籤名稱 apigee-data apigee-runtime 節點數量 每個可用區 1 個 (每個區域 3 個) 每個可用區 1 個 (每個區域 3 個) CPU 4 4 RAM 15 15 儲存空間 動態 使用 ApigeeDeployment CRD 進行管理 磁碟 IOPS 下限 搭配 SAN 或直接連接的儲存空間,可達到 2000 IOPS。即使 NFS 可支援所需的 IOPS,也不建議使用。 搭配 SAN 或直接連接的儲存空間,可達到 2000 IOPS。即使 NFS 可支援所需的 IOPS,也不建議使用。 各機器執行個體類型的網路頻寬 1 Gbps 1 Gbps 如要進一步瞭解叢集設定最低需求,請參閱:叢集設定最低需求
安裝及執行叢集後,請繼續執行下一個步驟。
OpenShift
在 OpenShift 上建立叢集
這些步驟說明如何在 OpenShift 上設定及建立 Apigee Hybrid 叢集。
- 請確認您使用的 OpenShift 版本支援混合型版本 1.11.2。 請參閱「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 4 4 RAM 15 15 儲存空間 動態 使用 ApigeeDeployment CRD 進行管理 磁碟 IOPS 下限 搭配 SAN 或直接連接的儲存空間,可達到 2000 IOPS。即使 NFS 可支援所需的 IOPS,也不建議使用。 搭配 SAN 或直接連接的儲存空間,可達到 2000 IOPS。即使 NFS 可支援所需的 IOPS,也不建議使用。 各機器執行個體類型的網路頻寬 1 Gbps 1 Gbps 如要進一步瞭解叢集設定最低需求,請參閱: 叢集設定最低需求
安裝叢集後,請繼續執行下一個步驟。
1 (NEXT) 步驟 2:安裝 cert-manager 3 4 5 6 7 8 9 10