步驟 7:設定 Hybrid 執行階段

指定設定覆寫值

Apigee Hybrid 安裝程式會為許多設定使用預設值,但有些設定沒有預設值。您必須為這些設定提供值,如下文所述。

  1. 請確認您位於 hybrid-base-directory/hybrid-files/overrides/ 目錄。
    cd hybrid-base-directory/hybrid-files/overrides
  2. 使用您偏好的文字編輯器建立名為 overrides.yaml 的新檔案。例如:
    vi overrides.yaml

    overrides.yaml 會為您的 Apigee Hybrid 專屬安裝作業提供設定。這個步驟中的覆寫檔案會為小型混合式執行階段安裝作業提供基本設定,適合用於首次安裝作業。

  3. overrides.yaml 中新增必要的屬性值,如下所示。以下也提供各項屬性的詳細說明:

    如果是正式環境中的安裝作業,請參閱「為實際工作環境設定 Cassandra」一文,瞭解 Cassandra 資料庫的儲存空間需求。

    語法

    請確認 overrides.yaml 檔案具有下列結構和語法。red, bold italics 中的值是您必須提供的屬性值。請參閱下表的說明。

    Google Cloud 專案區域和 Kubernetes 叢集區域的不同平台之間存在差異。選擇要安裝 Apigee Hybrid 的平台。

    gcp:
      region: analytics-region
      projectID: gcp-project-id
    
    k8sCluster:
      name: cluster-name
      region: cluster-location # Must be the closest Google Cloud region to your cluster.
    org: org-name
    
    instanceID: "unique-instance-identifier"  # See the property description table below information about this parameter.
      
    cassandra:
      hostNetwork: false
        # Set to false for single region installations and multi-region installations
        # with connectivity between pods in different clusters, for example GKE installations.
        # Set to true  for multi-region installations with no communication between
        # pods in different clusters, for example GKE On-prem, GKE on AWS, Anthos on bare metal,
        # AKS, EKS, and OpenShift installations.
        # See Multi-region deployment: Prerequisites
      storage:
        capacity: 500Gi
      resources:
        requests:
          cpu: 7
          memory: 15Gi
      maxHeapSize: 8192M
      heapNewSize: 1200M
        # Minimum storage requirements for a production environment.
        # See Configure Cassandra for production.
    
    virtualhosts:
      - name: environment-group-name
        sslCertPath: ./certs/cert-name.pem
        sslKeyPath: ./certs/key-name.key
    
    envs:
      - name: environment-name
        serviceAccountPaths:
          synchronizer: ./service-accounts/synchronizer-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-synchronizer.json
          udca: ./service-accounts/udca-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-udca.json
          runtime: ./service-accounts/runtime-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-runtime.json
    
    mart:
      serviceAccountPath: ./service-accounts/mart-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-mart.json
    
    connectAgent:
      serviceAccountPath: ./service-accounts/mart-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-mart.json
            # Use the same service account for mart and connectAgent
    
    metrics:
      serviceAccountPath: ./service-accounts/metrics-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-metrics.json
    
    udca:
      serviceAccountPath: ./service-accounts/udca-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-udca.json
    
    watcher:
      serviceAccountPath: ./service-accounts/watcher-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-watcher.json
    
    logger:
      enabled: false
            # Set to false to disable logger for GKE installations.
            # Set to true for all platforms other than GKE.
            # See apigee-logger in Service accounts and roles used by hybrid components.
      serviceAccountPath: ./service-accounts/logger-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-logger.json
    
    

    範例

    以下範例顯示已完成的覆寫檔案,其中加入了屬性值範例:

    gcp:
      region: us-central1
      projectID: hybrid-example
    
    k8sCluster:
      name: apigee-hybrid
      region: us-central1
    
    org: hybrid-example
    
    instanceID: "my_hybrid_example"
      
    cassandra:
      hostNetwork: false
    
    virtualhosts:
      - name: example-env-group
        sslCertPath: ./certs/keystore.pem
        sslKeyPath: ./certs/keystore.key
    
    envs:
      - name: test
        serviceAccountPaths:
          synchronizer: ./service-accounts/hybrid-project-apigee-non-prod.json
            # for production environments, hybrid-project-apigee-synchronizer.json
          udca: ./service-accounts/hybrid-project-apigee-non-prod.json
            # for production environments, hybrid-project-apigee-udca.json
          runtime: ./service-accounts/hybrid-project-apigee-non-prod.json
            # for production environments, hybrid-project-apigee-runtime.json
    
    mart:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, hybrid-project-apigee-mart.json
    
    connectAgent:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, example-hybrid-apigee-mart.json
    
    metrics:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, hybrid-project-apigee-metrics.json
    
    udca:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, hybrid-project-apigee-udca.json
    
    watcher:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, hybrid-project-apigee-watcher.json
    
    logger:
      enabled: false # Set to "false" for GKE. Set to "true" for all other kubernetes platforms.
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, logger-service-account-name.json
    
    
  4. 完成後,請儲存檔案。

下表說明您必須在覆寫檔案中提供的每個屬性值。詳情請參閱「設定屬性參考資料」。

變數 說明
analytics-region 在 GKE 中,您必須將這個值設為叢集執行所在的區域。在所有其他平台中,選取與叢集最接近且支援 Analytics 的數據分析區域 (請參閱第 1 部分,步驟 4:建立機構中的表格)。

這是您先前指派給環境變數 ANALYTICS_REGION 的值。

gcp-project-id 指出 apigee-loggerapigee-metrics 推送資料的 Google Cloud 專案。這是指派給環境變數 PROJECT_ID 的值。
cluster-name Kubernetes 叢集名稱。這是指派給環境變數 CLUSTER_NAME 的值。
cluster-location 叢集執行的地區。這是您在步驟 1:建立叢集中建立叢集的地區。

這是您先前指派給環境變數 CLUSTER_LOCATION 的值。

org-name Apigee Hybrid 機構的 ID。這是指派給環境變數 ORG_NAME 的值。
unique-instance-identifier

用於識別每個叢集的 Apigee Hybrid 執行個體的專屬字串。字串可以是英文字母和數字的組合,長度上限為 63 個半形字元。

  • 您可以在單一叢集中建立多個機構。只要確保每次在同一個叢集中新增新組織時,都使用相同的 instanceID 值即可。
  • 如果您有多個叢集 (位於同一個區域或跨多個區域),每個叢集都需要一個專屬的 instanceID

如需產生專屬 ID 的相關協助,您可以使用隨機字串產生工具,例如 random.org/strings

environment-group-name 環境所屬環境群組的名稱。這是您在「專案和機構設定 - 步驟 5:建立環境群組」一節中建立的群組。這是指派給環境變數 ENV_GROUP 的值。
cert-name
key-name
輸入您先前在步驟 6:建立 TLS 憑證中產生的自行簽署 TLS 金鑰和憑證檔案名稱。這些檔案必須位於 base_directory/hybrid-files/certs 目錄中。例如:
sslCertPath: ./certs/keystore.pem
sslKeyPath: ./certs/keystore.key
environment-name 請使用在 UI 中建立環境時使用的名稱,如專案和機構設定 - 步驟 5:建立環境群組所述。
synchronizer-service-account-name 對於非正式環境,單一服務帳戶的名稱,預設為 non-prod。如為實際環境,請輸入您在混合式執行階段設定 - 步驟 6:建立服務帳戶和憑證中,使用 create-service-account 工具產生的 apigee-synchronizer 服務帳戶金鑰檔案名稱。您可以在 service-accounts/ 目錄中查看服務帳戶檔案清單。例如:
ls ../service-accounts/
udca-service-account-name 對於非正式環境,單一服務帳戶的名稱,預設為 non-prod。如為實際環境,請輸入您使用 create-service-account 工具產生的 apigee-udca 服務帳戶金鑰檔案名稱。
runtime-service-account-name 對於非正式環境,單一服務帳戶的名稱,預設為 non-prod。對於實際環境,請輸入您使用 create-service-account 工具產生的 apigee-runtime 服務帳戶金鑰檔案名稱。
mart-service-account-name 對於非正式環境,單一服務帳戶的名稱,預設為 non-prod。如為實際環境,請輸入您使用 create-service-account 工具產生的 apigee-mart 服務帳戶金鑰檔案名稱。
metrics-service-account-name 對於非正式環境,單一服務帳戶的名稱,預設為 non-prod。如為實際環境,請輸入您使用 create-service-account 工具產生的 apigee-metrics 服務帳戶金鑰檔案名稱。
udca-service-account-name 對於非正式環境,單一服務帳戶的名稱,預設為 non-prod。如為實際環境,請輸入您使用 create-service-account 工具產生的 apigee-udca 服務帳戶金鑰檔案名稱。
watcher-service-account-name 對於非正式環境,單一服務帳戶的名稱,預設為 non-prod。如為實際環境,請輸入您使用 create-service-account 工具產生的 apigee-watcher 服務帳戶金鑰檔案名稱。
logger-service-account-name 對於非正式環境,單一服務帳戶的名稱,預設為 non-prod。如為實際環境,請輸入您使用 create-service-account 工具產生的 apigee-logger 服務帳戶金鑰檔案名稱。

摘要

設定檔會告訴 Kubernetes 如何將混合型元件部署至叢集。接下來,您將啟用同步處理工具存取權,讓 Apigee 執行階段和管理計畫能夠進行通訊。

1 2 3 4 5 6 7 (NEXT) 步驟 8:啟用 Synchronizer 存取權 9