管理运行时层面组件

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

替换文件简介

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

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

进行配置更改

如需更改 Hybrid 运行时平面组件的配置,请修改替换文件,并使用 Helm 升级与该组件对应的图表。 以下图表显示了哪些图表与哪些 Apigee Hybrid 组件相对应:

范围组件Helm 图表
Apigee Operator Apigee Operator apigee-operator
存储 Cassandra apigee-datastore
内存中存储 Redis apigee-redis
报告 Logger
Metrics
apigee-telemetry
入站流量 Apigee 入站流量网关 apigee-ingress-manager
组织 Apigee Connect Agent
MART
UDCA
Watcher
apigee-org
环境 Runtime
Synchronizer
apigee-env
环境组 virtualhost apigee-virtualhost

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

  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: 20
    ...
  4. 升级环境。
  5. 一次只能安装一个环境。使用 --set env=ENV_NAME 指定环境。

    试运行:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE \
    --dry-run
    
    • ENV_RELEASE_NAME 是您之前安装 apigee-env 图表时使用的名称。在 Hybrid v1.10 中,该名称通常是 apigee-env-ENV_NAME。在 Hybrid v1.11 及更高版本中,该名称通常是 ENV_NAME
    • ENV_NAME 是您要升级的环境的名称。
    • OVERRIDES_FILE 是 v.1.3.6 的新替换文件
  6. 升级图表:
  7. helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE
    
  8. 通过检查相应环境的状态来验证它已启动并正在运行:
  9. kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-org1-dev-xxx            running     2d

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

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

如何使用配置参考文档

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

ao.image.pullPolicy

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

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

ao:
  image:
    pullPolicy: Always

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

cassandra:
  auth:
    admin:
      password: abc123

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

使用预定义替换文件示例

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

默认配置简介

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 Kubernetes pod 的键值对映射。您可以为配置属性参考文档中列出的以下属性创建自定义注释:

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

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

runtime:
  annotations:
    businessunit: "bu1"

测试合并的配置

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

kubectl apply -k  apigee-operator/etc/crds/default/
      
helm upgrade operator apigee-operator/ \
  --install \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  -f OVERRIDES_FILE.yaml \
  --dry-run
helm upgrade ingress-manager apigee-ingress-manager/ /
  --install \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  -f OVERRIDES_FILE.yaml \
  --dry-run

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

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

例如:

helm upgrade test-1-env apigee-env/ \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  --set env=test-1-env \
  -f test-1-env-overrides.yaml

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

运行时平面组件包括 synchronizermartruntimecassandraudca

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

例如:

使用 Helm,您必须单独删除每个组件。例如,如需删除 cassandra 组件,请使用以下命令:

helm -n APIGEE_NAMESPACE delete datastore

在上述示例中,安装了数据存储区组件,并将其命名为“datastore”。如果您在安装时使用了其他名称,则需要提供该名称以删除组件。例如,您安装 apigee-datastore 图表时使用了 helm install my-cassandra-storage apigee-datastore/。您需要使用以下命令将其删除:

helm delete -n apigee my-cassandra-storage

如需重新创建一个或多个特定组件(在此示例中为环境组),请运行以下命令:

helm upgrade ENV_GROUP apigee-virtualhost/ \
  --install \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  --set envgroup=ENV_GROUP_NAME \
  -f OVERRIDES_FILE.yaml