第 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 安装的配置。此步骤中的替换文件为小规模 Hybrid 运行时安装提供基本配置,适合首次安装。

  3. overrides.yaml 中,添加所需属性值,如下所示。下面还提供每个属性的详细说明:

    语法

    请确保 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"
    
    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
    
    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

用于标识此实例的唯一字符串。该 ID 可以是字母和数字的任意组合,长度不得超过 63 个字符。

您可以在同一集群中创建多个组织,但同一 kubernetes 集群中的所有组织必须使用相同的 instanceId
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 使用您在界面中创建环境时所用的相同名称,详见项目和组织设置 - 第 5 步:创建环境组
synchronizer-service-account-name 对于非生产环境,单个服务账号的名称,默认为 non-prod。对于生产环境,apigee-synchronizer您生成的服务账号密钥文件create-service-account工具Hybrid 运行时设置 - 第 6 步:创建服务账号和凭据。您可以在 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 (下一步)第 8 步:启用 Synchronizer 访问权限 9