管理运行时层面组件

本主题介绍如何配置和管理 Apigee Hybrid 运行时平面组件。如需查看您可以配置的运行时平面组件列表,请参阅运行时服务配置概览

替换文件简介

首次将 Hybrid 运行时安装到集群中时,您必须创建配置替换文件。借助此文件,您可以根据需要替换默认配置值、配置环境、引用 TLS 证书和服务账号密钥、将 Kubernetes 节点池分配给特定 Hybrid 组件,等等。

Hybrid 安装步骤介绍创建替换文件并将配置应用到集群的过程。如果您希望稍后更改配置,请修改您创建的替换文件并重新应用。

进行配置更改

如需更改 Hybrid 运行时平面组件的配置,请修改替换文件,然后使用 apigeectl 应用这些更改。

例如,如需更改消息处理器上的副本计数,请执行以下步骤:

  1. 打开您的 OVERRIDES.yaml 文件。确保使用用于将 Hybrid 运行时安装到集群中的相同替换文件。
  2. 在文件中找到 runtime 元素。例如:
    ...
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 1
      replicaCountMax: 2
    ...
  3. 根据需要更改副本计数属性。例如:
    ...
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 2
      replicaCountMax: 4
    ...
  4. 使用 apigeectl 将更改应用到集群:
    apigeectl apply -f ./OVERRIDES.yaml --org --env ENV_NAME

您可以修改哪些配置属性?

您可以在配置属性参考文档中找到可配置属性的完整列表。该参考文档仅列出可修改的属性;如果您尝试修改不在参考文档中的属性,则系统会忽略该更改。

如何使用配置参考文档

配置属性参考文档使用点表示法来描述配置元素,其中第一项是顶级元素名称,后跟属性和子属性。例如:

authz.image.pullPolicy

在替换文件中,属性采用正确的 YAML 格式。在上述示例中,顶级 authz 元素左缩进,其下的子元素属性也会缩进。此外,YAML 要求每个元素和子元素的末尾都有一个英文冒号。

例如,如需将 authz.image.pullPolicy 属性设置为 Always,请在替换文件中找到以下 YAML Standa,然后设置如下:

authz:
  image:
    pullPolicy: Always

在另一个示例中,cassandra.auth.admin.password 属性(在配置属性参考文档中列出)用于设置 Cassandra 管理员密码。如需进行更改,请在替换文件中找到以下 YAML,然后按如下所示进行设置:

cassandra:
  auth:
    admin:
      password: abc123

请注意,配置属性参考文档描述了您可在 Hybrid 运行时平面组件上设置的所有属性。请按照上述模式在将更改应用到集群之前修改替换文件中的这些元素。

使用预定义替换文件示例

首次安装 Hybrid 运行时时,Apigee 建议您使用一个预配置的替换文件示例。 这些示例为特定安装场景(例如设置生产或测试安装)提供了一整套配置属性。您只需要为属性提供适当的值,并对集群应用替换文件。如需了解详情,请参阅第 7 步:配置 Hybrid 运行时

默认配置简介

Apigee 在 HYBRID_ROOT_DIR/config/values.yaml 文件中维护其默认组件配置。替换文件遵循与 values.yaml 相同的 YAML 结构。

替换文件通常仅包含 values.yaml 中的配置属性的子集。请记住,并非所有属性都可以修改。将配置应用于集群时,您的替换将与默认值合并,以创建完整的 Kubernetes 集群配置。另请参阅测试合并的配置

以下代码显示了 values.yamlmart 组件的默认配置。请注意,某些值都有默认值,而 sslCertPathsslKeyPath 等其他值没有默认值。您必须按照安装步骤中的说明在替换文件中提供这些缺失值。如果您要更改任何默认值,请确保通过检查配置属性参考文档修改这些值。

...
mart:
  replicaCountMin: 2
  replicaCountMax: 4
  targetCPUUtilizationPercentage: 75
  terminationGracePeriodSeconds: 30
  sslCertPath:
  sslKeyPath:
  hostAlias:
  nodeSelector:
    key:
    value:
  revision: blue
  image:
    url: "gcr.io/apigee-release/hybrid/apigee-mart-server"
    tag: "1.3.6"
    pullPolicy: IfNotPresent
  resources:
    requests:
      cpu: 500m
      memory: 512Mi
  initCheckCF:
    resources:
      requests:
        cpu: 10m
  livenessProbe:
    timeoutSeconds: 1
    failureThreshold: 12
    periodSeconds: 5
    initialDelaySeconds: 15
  readinessProbe:
    timeoutSeconds: 1
    successThreshold: 1
    failureThreshold: 2
    periodSeconds: 5
    initialDelaySeconds: 15
  metricsURL: "/v1/server/metrics"
  cwcAppend: |
...

如果您要修改组件的默认值,并且该组件尚未在替换文件中,则可以将其 YAML 从 values.yaml 复制到替换文件并在其中进行修改。

替换文件示例

Apigee 提供了一组替换文件示例,以帮助引导您设置 Hybrid 部署。最好复制和修改与您的安装要求最相符的替换文件。

HYBRID_ROOT_DIR/examples 目录中包含以下示例:

替换文件示例 说明
overrides-small.yaml 此示例非常适用于快速入门。它使用建议的最小占用空间来启动 Hybrid 运行时组件。此配置示例尽可能依赖于默认设置和值。所有最低副本数都设置为 1
overrides-medium.yaml 此示例是测试和质量检查环境的良好起点。我们为单个组件授予了更高级别的资源来处理附加流量。Cassandra 使用 SSD 磁盘提高性能。在此环境中,建议用户将有状态和无状态组件安装在单独的节点上。请参阅配置专用节点
overrides-large.yaml 此示例是预生产和生产等高性能环境的良好起点。本示例包含用于设置加密密钥、密码等的属性。单个组件至少需要两个副本。

自定义注释

注释是用于将元数据附加到 Apigee Hybrid Kubernetes pod 的键值对映射。您可以为配置属性参考文档中列出的以下属性创建自定义注释:

如需添加自定义注释,请在 OVERRIDES.yaml 文件中为相应组件添加节。

以下示例展示了如何在 runtime pod 中指定注释:

runtime:
  annotations:
    businessunit: "bu1"

测试合并的配置

您可以将 --dry-run 标志与 apigeectl 结合使用,以测试合并的配置文件,而无需实际将其应用于您的集群。此选项有助于调试安装问题,因为它可以清楚地显示将应用于集群的内容。测试配置并将其存储在源代码控制系统中也是一种良好的做法,这样您就可以引用在集群中安装和配置的资源。

在 Apigee Hybrid 中,--dry-run 标志的语法取决于您运行的 kubectl 的版本。使用以下命令检查 kubectl 的版本:

kubectl version

kubectl 1.17 版及更低版本

APIGEECTL_HOME/apigeectl init -f overrides/OVERRIDES.yaml --dry-run=true

kubectl 1.18 版及更高版本

APIGEECTL_HOME/apigeectl init -f overrides/OVERRIDES.yaml --dry-run=client

如需了解详情,请参阅 apigeectl

根据需要创建多个替换文件

您可以根据需要创建任意多个替换文件,其中每个替换文件都满足特定要求。例如,您可能会使用一个替换文件调整用于生产的集群,而使用另一个创建测试集群。然后,您可以在源代码控制系统中维护这些文件。

使用将 -f 选项与 apigeectl 搭配使用来指定替换文件的位置和名称。例如:

apigeectl apply  -f ./test_env_override.yaml

如需了解详情,请参阅 apigeectl

删除特定于 Hybrid 的运行时平面组件

要从集群中删除特定于 Hybrid 的运行时平面组件,请使用 apigeectl delete 命令。这些组件包括 synchronizermartruntimecassandraudca。务必指定您安装运行时组件所用的相同替换文件:

例如:

apigeectl delete -f ./OVERRIDES.yaml

您可以使用 apigeectl apply 命令重新创建一个或多个特定组件:

apigeectl apply --org --env ENV_NAME -f ./OVERRIDES.yaml

如需了解详情,请参阅 apigeectl

删除特定组件

例如,如需删除 synchronizer 组件,请使用以下命令:

apigeectl delete --org --env ENV_NAME -f ./OVERRIDES.yaml

然后,您可以使用 apigeectl apply 命令重新创建组件:

apigeectl apply --org --env ENV_NAME -f ./OVERRIDES.yaml

如需了解详情,请参阅 apigeectl

删除所有组件

如需删除 Hybrid 的所有集群组件(包括由 apigeectl init 命令创建的组件),请将 apigeectl delete 命令与 --all 标志搭配使用。务必指定您安装运行时组件所用的相同替换文件:

例如:

apigeectl delete -f ./OVERRIDES.yaml --all

如需了解详情,请参阅 apigeectl