本步驟將說明如何建立要用於執行 Apigee Hybrid 的叢集。操作說明會因執行混合型應用程式的平台而異。開始之前,請務必詳閱下列資訊:
建立叢集
請按照所選平台的步驟操作:
GKE
在 GKE 上建立叢集
這些步驟說明如何在 Google Cloud 專案中設定及建立 GKE 叢集。
Apigee 建議您建立地區叢集,而非可用區叢集。如果您不清楚地區和區域的差異,請參閱「地區和區域」一文。可用地區列於可用地區和區域。請注意,例如 us-west1 是有效的地區名稱,而 us-west1-a 則是該地區中的區域。
- 請確認您使用的 GKE 版本支援混合型版本 1.10.5。 請參閱「Apigee Hybrid 支援的平台和版本」。
- 請確認所有節點和應用程式伺服器的時鐘都與網路時間通訊協定 (NTP) 同步,詳情請參閱「必要條件」一節。Cassandra 資料庫會使用網路時間通訊協定 (NTP) 同步處理功能,維持資料一致性。如果您打算在多個區域中安裝混合型,請務必確保這些區域都與 NTP 同步。
- (僅限 GKE 私人叢集) 如果您要建立私人叢集,請新增防火牆規則,允許 GKE 主要節點和 GKE 工作節點之間透過通訊埠 9443 進行通訊,並允許 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 / macOSexport CLUSTER_NAME="YOUR_CLUSTER_NAME"export CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION"Windowsset CLUSTER_NAME="YOUR_CLUSTER_NAME"set CLUSTER_LOCATION=YOUR_CLUSTER_LOCATIONset PROJECT_ID=YOUR_PROJECT_ID其中: - 
              CLUSTER_NAME:叢集名稱。
- CLUSTER_LOCATION:建立叢集的區域。
 
- 
              
- 驗證節點集區設定:
    地區性叢集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 scNAME 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 scNAME 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 Identity」。 
-  使用下列指令,確認是否已成功啟用 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 內部部署叢集。
- 請確認您使用的 Anthos 內部部署 VMWare 版本支援混合式 1.10.5 版。 請參閱「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 scNAME 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 scNAME 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 的名稱:
安裝及執行叢集後,請繼續執行下一個步驟。
裸機中的 Anthos
在 Anthos on bare metal 上建立叢集
這些步驟說明如何在 Anthos 上設定及建立 Apigee hybrid 的叢集。有了裸機中的 Anthos,您就能直接在自己的機器資源上執行 Kubernetes 叢集。
- 請確認您使用的裸機中的 Anthos 版本支援混合式版本 1.10.5。請參閱「Apigee Hybrid 支援的平台和版本」。
- 請確認所有節點和應用程式伺服器的時鐘都與網路時間通訊協定 (NTP) 同步,詳情請參閱「必要條件」一節。Cassandra 資料庫會使用網路時間通訊協定 (NTP) 同步處理功能,維持資料一致性。如果您打算在多個地區安裝混合型,請務必確保這些地區都與 NTP 同步。
- 請參閱「 安裝必要條件總覽」和「建立叢集:總覽」。
- 建立叢集,並按照下列說明設定兩個節點集區:
    - 按照裸機中的 Anthos 叢集快速入門的叢集建立操作說明操作。
- 至少建立兩個節點集區。根據下表列出的最低需求設定節點集區。
          
      叢集的最低設定如下: 設定 具狀態的節點集區 無狀態節點集區 目的 用於 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.10.5。請參閱「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.10.5。 請參閱「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.10.5。 請參閱「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.10.5。 請參閱「Apigee Hybrid 支援的平台和版本」。
- 請確認所有節點和應用程式伺服器的時鐘都與網路時間通訊協定 (NTP) 保持同步,詳情請參閱「必要條件」一節。Cassandra 資料庫會使用網路時間通訊協定 (NTP) 同步處理功能,維持資料一致性。如果您打算在多個區域中安裝混合型,請務必確保這些區域都與 NTP 同步。
- 建構要部署在執行階段平面上的 OpenShift 叢集、在 OpenShift 使用者叢集中安裝 Apigee,以及建立兩個節點集區。在 OpenShift 安裝作業中,請安裝並設定 ocCLI 工具。請參閱 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 6 7 9 9 10 11