步驟 1:建立叢集

這個步驟說明如何建立要執行 Apigee Hybrid 的叢集。操作說明會因執行混合式作業的平台而異。開始之前,請務必詳閱下列資訊:

建立叢集

請依據所選平台適用的步驟操作:

GKE

在 GKE 建立叢集

以下步驟說明如何在 Google Cloud 專案中設定及建立 GKE 叢集。

Apigee 建議建立區域叢集,而非可用區叢集。如果您不熟悉區域和可用區之間的差異,請參閱「區域和可用區」一文。如要查看可用區域,請參閱「可用的區域和可用區」。請注意,us-west1 是有效的區域名稱,而 us-west1-a 是該區域中的可用區。

  1. 請確認您使用的 GKE 版本支援 Hybrid 1.16.11 版。請參閱「Apigee Hybrid 支援的平台和版本」。
  2. 如「必要條件」一節所述,請確保所有節點和應用程式伺服器上的時鐘都與網路時間通訊協定 (NTP) 同步。Cassandra 資料庫會依賴網路時間通訊協定 (NTP) 同步處理,以維持資料一致性。如果您打算在多個區域安裝混合式服務,請務必在所有區域中與 NTP 同步。
  3. (僅限 GKE 私人叢集) 如果您在 GKE 上建立私人叢集,請新增防火牆規則,允許 GKE 主節點和 GKE worker 節點之間透過通訊埠 9443 進行通訊,並允許 GKE 主節點存取 Apigee 變動 Webhook。請按照 Google Kubernetes Engine 說明文件中的為特定用途新增防火牆規則程序操作。詳情請參閱「GKE 中的私人叢集」。

    如果您要建立標準或公開叢集,則不需要新增這項規則。

  4. 按照「建立具有多可用區節點集區的區域叢集」一文中的操作說明,建立標準叢集。建立叢集時,只要使用預設節點集區即可。您將在下一個步驟中設定及建立必要的 Apigee Hybrid 節點集區。

    請等到叢集建立成功後,再繼續下一步。

  5. 按照「新增及管理節點集區」中的操作說明,建立兩個節點集區。請務必根據下表所列的最低需求,設定節點集區。

    節點集區基本規定

    建立節點集區時,請務必滿足這些基本需求。請務必根據您建構的 Apigee hybrid 安裝,選取「Production」或「Non-prod」 (測試或示範) 的值。非正式環境安裝適用於測試和展示,但不足以處理正式環境流量。如果使用 Google Cloud 控制台,請務必設定「Node pool details」(節點集區詳細資料) 和「Nodes」(節點) 區段。

    節點集區名稱 說明 節點數量下限 正式版
    最低
    機型
    非正式環境
    最低
    機型
    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 記憶體)

    如要進一步瞭解節點集區設定,請參閱「設定專屬節點集區」。

  6. (選用) 您可以視需要刪除 default 節點集區。請參閱「刪除節點集區」。
  7. 如果您尚未建立下列環境變數,請先建立。這些變數會用於下列 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:您建立叢集的區域 (適用於區域叢集) 或可用區 (適用於可用區叢集),例如 us-west1 或 us-west1-a。
    • PROJECT_ID:您的 Google Cloud 專案 ID。
  8. 驗證節點集區設定:

    地區性叢集

    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}
  9. 請取得 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 指令的預設叢集」。

  10. 為 Cassandra 設定永久固態硬碟 (SSD) 儲存空間。我們不支援使用本機 SSD。詳情請參閱 Kubernetes 說明文件中的「 變更預設儲存空間類別」。

    1. 取得目前預設 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
    2. 說明名為 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>
    3. 建立名為 storageclass.yaml 的新檔案。
    4. 將這段程式碼新增至檔案。請注意,新儲存空間級別的名稱是 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
    5. 將新的 StorageClass 套用至 Kubernetes 叢集:
      kubectl apply -f storageclass.yaml
    6. 執行下列兩項指令,變更預設 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"}}}'
    7. 執行下列指令,確認新的預設 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
  11. 為叢集啟用 Workload Identity Federation for GKE。Workload Identity Federation for GKE 可讓 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}
  12. 使用下列指令,確認是否已成功啟用 Workload Identity Federation for GKE:

    地區性叢集

    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"

    輸出內容大致如下:

    workloadIdentityConfig:
      workloadPool: my-project.svc.id.goog
    

安裝並執行叢集後,請前往下一個步驟。

VMware 上的 Google Distributed Cloud

建立 VMware 叢集

這些步驟說明如何設定及建立 Apigee Hybrid 的 GKE 叢集,做為 VMware 部署作業中僅含軟體的 Google Distributed Cloud 一環。

  1. 請確認您使用的 Google Distributed Cloud 版本支援混合版本 1.16.11。請參閱「Apigee Hybrid 支援的平台和版本」。
  2. 如「必要條件」一節所述,請確保所有節點和應用程式伺服器上的時鐘都與網路時間通訊協定 (NTP) 同步。Cassandra 資料庫仰賴網路時間通訊協定 (NTP) 同步處理,以維持資料一致性。如果您打算在多個區域安裝混合式服務,請務必在所有區域中與 NTP 同步。
  3. 按照「建立基本叢集」中的操作說明建立叢集。建立叢集時,只使用預設節點集區也沒問題。您將在下一個步驟中設定及建立必要的 Apigee Hybrid 節點集區。

    請等到叢集建立完成後,再繼續執行下一個步驟。

  4. 按照「建立及管理節點集區」中的操作說明建立兩個節點集區。請設定符合下表所列最低要求的節點集區。

    節點集區基本規定

    建立節點集區時,請務必符合這些基本需求。根據您要建構的 Apigee Hybrid 安裝作業,選取「Production」(正式環境)或「Non-prod」(非正式環境) (測試或試用) 的值。非正式環境安裝適用於測試和展示,但不適合用於正式環境流量。

    節點集區名稱 說明 節點數量下限 正式版
    最低
    機型
    非正式環境
    最低
    機型
    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 記憶體)

    如要進一步瞭解節點集區設定,請參閱「設定專屬節點集區」。

  5. (選用) 您可以視需要刪除 default 節點集區。請參閱「刪除節點集區」。
  6. 為 Cassandra 設定永久固態硬碟 (SSD) 儲存空間。我們不支援使用本機 SSD。詳情請參閱 Kubernetes 說明文件中的「 變更預設儲存空間類別」。

    1. 取得目前預設 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
    2. 說明名為 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>
    3. 建立名為 storageclass.yaml 的新檔案。
    4. 將這段程式碼新增至檔案。請注意,新儲存空間級別的名稱為 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
    5. 將新的 StorageClass 套用至 Kubernetes 叢集:
      kubectl apply -f storageclass.yaml
    6. 執行下列兩項指令,變更預設 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"}}}'
    7. 執行下列指令,確認新的預設 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

安裝並執行叢集後,請前往下一個步驟。

裸機上的 Google Distributed Cloud

建立裸機叢集

下列步驟說明如何設定及建立 Apigee Hybrid 適用的 GKE 叢集,做為 Google Distributed Cloud 裸機軟體部署作業的一部分。有了 Google Distributed Cloud on bare metal,您就能直接在自己的機器資源上執行 Kubernetes 叢集。

  1. 請確認您使用的 Google Distributed Cloud 版本支援混合 1.16.11 版。請參閱「Apigee Hybrid 支援的平台和版本」。
  2. 請確認所有節點和應用程式伺服器上的時鐘都與網路時間通訊協定 (NTP) 同步,如「必要條件」一節所述。Cassandra 資料庫仰賴網路時間通訊協定 (NTP) 同步處理,以維持資料一致性。如果您打算在多個區域安裝混合式系統,請務必確保所有區域都與 NTP 同步。
  3. 請參閱「 安裝必要條件總覽」和「建立叢集:總覽」。
  4. 建立叢集,並設定兩個節點集區,如下所示:
    • 按照「建立基本叢集」中的叢集建立操作說明進行。
    • 建立至少兩個節點集區。請根據下表列出的最低需求,設定節點集區。

      叢集的最低設定如下:

      設定 具狀態的節點集區 無狀態節點集區
      目的 用於 Cassandra 資料庫的有狀態節點集區。 執行階段訊息處理器使用的無狀態節點集區。
      標籤名稱 apigee-data apigee-runtime
      節點數量 每個可用區 1 個 (每個區域 3 個) 每個可用區 1 個 (每個區域 3 個)
      CPU 8 (正式版)
      4 (非正式版)
      8 (正式版)
      4 (非正式版)
      RAM 32 (正式版)
      16 (非正式版)
      32 (正式環境)
      16 (非正式環境)
      儲存空間 動態 使用 ApigeeDeployment CRD 管理
      磁碟 IOPS 下限 2000 IOPS (使用 SAN 或直接連接儲存空間)。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。 2000 IOPS (使用 SAN 或直接連接的儲存空間)。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。
      各機器執行個體類型的網路頻寬 1 Gbps 1 Gbps

      如要進一步瞭解叢集最低設定,請參閱: 叢集最低設定

安裝並執行叢集後,請前往下一個步驟。

AKS

在 AKS 建立叢集

下列步驟說明如何在 AKS 上設定及建立 Apigee hybrid 叢集。

  1. 請確認您使用的 AKS 版本支援混合式 1.16.11 版。 請參閱「Apigee Hybrid 支援的平台和版本」。
  2. 請確認所有節點和應用程式伺服器上的時鐘都與網路時間通訊協定 (NTP) 同步,如「必要條件」一節所述。Cassandra 資料庫仰賴網路時間通訊協定 (NTP) 同步處理,以維持資料一致性。如果您打算在多個區域安裝混合式服務,請務必在所有區域中與 NTP 同步。
  3. 使用 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 下限 2000 IOPS (使用 SAN 或直接連接儲存空間)。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。 2000 IOPS (使用 SAN 或直接連接的儲存空間)。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。
    各機器執行個體類型的網路頻寬 1 Gbps 1 Gbps

    如要進一步瞭解叢集最低設定,請參閱: 叢集最低設定

  4. 安裝並執行叢集後,請前往下一個步驟。

EKS

在 EKS 建立叢集

以下步驟說明如何為 EKS 上的 Apigee hybrid 設定及建立叢集。

  1. 請確認您使用的 EKS 版本支援混合式版本 1.16.11。 請參閱「Apigee Hybrid 支援的平台和版本」。
  2. 請確認所有節點和應用程式伺服器上的時鐘都與網路時間通訊協定 (NTP) 同步,如「必要條件」一節所述。Cassandra 資料庫會依賴網路時間通訊協定 (NTP) 同步處理,以維持資料一致性。如果您打算在多個區域安裝混合式服務,請務必在所有區域中與 NTP 同步。
  3. 如果您使用 Kubernetes 1.24 以上版本,請務必安裝 Amazon EBS 的 Kubernetes CSI 驅動程式。
  4. 請按照下列操作說明建立使用者叢集,並建立兩個節點集區,如下所示。

    叢集的最低設定如下:

    設定 具狀態的節點集區 無狀態節點集區
    目的 用於 Cassandra 資料庫的有狀態節點集區。 執行階段訊息處理器使用的無狀態節點集區。
    標籤名稱 apigee-data apigee-runtime
    節點數量 每個可用區 1 個 (每個區域 3 個) 每個可用區 1 個 (每個區域 3 個)
    CPU 8 (正式版)
    4 (非正式版)
    8 (正式版)
    4 (非正式版)
    RAM 32 (正式版)
    16 (非正式版)
    32 (正式環境)
    16 (非正式環境)
    儲存空間 動態 使用 ApigeeDeployment CRD 管理
    磁碟 IOPS 下限 2000 IOPS (使用 SAN 或直接連接儲存空間)。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。 2000 IOPS (使用 SAN 或直接連接的儲存空間)。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。
    各機器執行個體類型的網路頻寬 1 Gbps 1 Gbps

    如要進一步瞭解叢集最低設定,請參閱: 叢集最低設定

安裝並執行叢集後,請前往下一個步驟。

OpenShift

在 OpenShift 建立叢集

下列步驟說明如何設定及建立 OpenShift 上的 Apigee hybrid 叢集。

  1. 請確認您使用的 OpenShift 版本支援混合 1.16.11 版。請參閱「Apigee Hybrid 支援的平台和版本」。
  2. 如「必要條件」一節所述,請確保所有節點和應用程式伺服器上的時鐘都與網路時間通訊協定 (NTP) 同步。Cassandra 資料庫會依賴網路時間通訊協定 (NTP) 同步處理,以維持資料一致性。如果您打算在多個區域安裝混合式服務,請務必在所有區域中與 NTP 同步。
  3. 建構 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 下限 2000 IOPS (使用 SAN 或直接連接儲存空間)。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。 2000 IOPS (使用 SAN 或直接連接的儲存空間)。即使 NFS 可以支援所需的 IOPS,我們仍不建議使用。
    各機器執行個體類型的網路頻寬 1 Gbps 1 Gbps

    如要進一步瞭解最低叢集設定,請參閱:最低叢集設定

安裝叢集後,請前往下一個步驟。

 

下一步

1 (下一步) 步驟 2:下載 Helm 圖表 3 4 5 6 7 8 9 10 11