apigeectl

apigeectl 是用于在 Kubernetes 集群中安装和管理 Apigee Hybrid 的命令行界面 (CLI)。如需了解如何下载并安装 apigeectl,请参阅下载并安装 apigeectl

apigeectl 的应用范围

通过使用 apigeectl 标志,您可以控制命令将配置更改应用于哪些范围。如需大致了解 Apigee 混合运行时内的范围,请参阅运行时服务配置概览

范围组件apigeectl 标志
存储 Cassandra ‑‑datastore
内存中存储 Redis ‑‑redis
环境 运行时
Synchronizer
UDCA
‑‑all‑envs
‑‑env
组织 Apigee Connect Agent
MART
Watcher
‑‑org
报告 Logger
指标
‑‑telemetry

apigeectl 语法

apigeectl [command] [flags]

其中:

  • command:指定您要执行的操作。如需查看命令的完整列表,请参阅 apigeectl 命令

  • flags:指定命令参数。如需查看标志的完整列表,请参阅 apigeectl 标志

apigeectl 命令

下表列出了 apigeectl 命令:

命令 说明
apply

将 Apigee Hybrid 运行时组件的配置应用到 Kubernetes 集群。

不带标志的 apigeectl apply 会将更改应用于集群中的所有组件。

apigeectl 标志 ‑‑all‑envs‑‑datastore‑‑dry‑run‑‑env‑f‑‑file‑override‑config‑‑help‑‑org‑‑print‑yaml‑‑redis‑‑settings virtualhosts‑‑telemetry‑‑v

check‑ready

检查混合组件 Pod 的状态。准备好所有组件 Pod 后,系统就会输出“所有容器都准备就绪”消息。对于自动编写脚本,请注意,当所有容器都准备就绪后,命令将退出并显示状态为 0。当至少有一个 Pod 尚未准备就绪时,命令将退出并显示状态为 1。

apigeectl 标志‑f‑‑file‑override‑config‑‑help‑‑v

delete

从集群中删除混合组件。使用 ‑‑all 标志可移除所有组件。如果省略 ‑‑all,则系统只会移除 Apigee 特定组件(使用 apigeectl init 安装的组件不会被删除)。Apigee 特定组件是使用 apply 命令安装的组件。

不带任何可选标志的 apigeectl delete 会将 delete 命令应用于集群中部署的所有组件。

apigeectl diagnostic delete ‑f OVERRIDES_FILE 会删除由 apigeectl diagnostic 创建的 apigee‑diagnostic 命名空间。‑f / ‑‑file‑override‑config 标志是 apigeectl diagnostic delete 所必需的

apigeectl 标志‑‑all‑‑all‑envs‑‑datastore‑‑env‑f‑‑file‑override‑config‑‑help‑‑org‑‑redis‑‑telemetry‑‑v

diagnostic

调用诊断收集器,可按需捕获 Apigee Hybrid 实例的 Kubernetes 组件的诊断数据,并将其存储在 Google Cloud 存储桶中。

诊断收集器需要一个已命名的 Google Cloud 存储桶、一个具有 Storage Admin 角色的服务账号以及一个添加到 overrides 文件中的 diagnostic: 节。请参阅:

当您调用诊断收集器时,它会创建一个“apigee‑diagnostic”Kubernetes 命名空间。再次调用诊断收集器之前,您必须使用 apigeectl diagnostic delete 将其删除。

调用诊断收集器:

apigeectl diagnostic ‑f OVERRIDES_FILE

删除诊断收集器:

apigeectl diagnostic delete ‑f OVERRIDES_FILE

apigeectl flags: ‑‑file‑override‑config

encode

返回指定组织或指定组织内指定环境的所有 ApigeeDeployment 的编码名称列表。编码名称包括组件的名称,该名称包含组织的哈希名称;如果使用 ‑‑env 标志,则该名称包含环境的哈希名称。Apigee Hybrid 会创建组织和环境的哈希名称,以避免命名空间发生冲突。

您必须使用 ‑‑org org‑name,或结合使用带有 ‑‑env env‑name 标志的 ‑‑org org‑nameencode。例如:

./apigeectl encode ‑‑org hybrid‑example
List of ApigeeDeployments are:
  apigee‑connect‑agent‑hybrid‑example‑6a82f8a
  apigee‑mart‑hybrid‑example‑6a82f8a
  apigee‑watcher‑hybrid‑example‑6a82f8a
./apigeectl encode ‑‑org hybrid‑example ‑‑env example‑env
List of ApigeeDeployments are:
  apigee‑runtime‑hybrid‑example‑example‑env‑9e87e2d
  apigee‑synchronizer‑hybrid‑example‑example‑env‑9e87e2d
  apigee‑udca‑hybrid‑example‑example‑env‑9e87e2d

apigeectl 标志‑‑env‑‑org

help 输出在线帮助。
init

在 Apigee 系统命名空间中安装 Apigee Operators 和 CRD。

进行全新安装或升级后运行 apigeectl init,然后再运行 apigeectl apply

apigeectl 标志‑f‑‑file‑override‑config‑‑help‑‑v

version 输出 CLI 版本信息。

apigeectl 标志‑‑help

apigeectl 标志

下表列出了 apigeectl 标志:

标志 说明
‑‑all 仅限 delete:从集群中删除整个 Apigee Hybrid 安装,但 ASM (Istio) 和 cert-manager 除外。
‑‑all‑envs

apigeectl 命令应用于在替换配置文件中指定的组织下的所有环境。

‑‑datastore

将配置应用于数据存储区范围 (Cassandra)。

‑‑dry‑run 在不更改集群的情况下执行指定的命令。与 ‑‑print‑yaml 结合使用可将呈现的对象规范输出到文件中。

根据您运行的 kubectl 版本,‑‑dry‑run 必须与以下两个值之一结合使用。使用 gcloud version 检查您的 kubectl 版本:

  • kubectl 1.17.x 或更低版本:‑‑dry‑run=true
  • kubectl 1.18.x 或更高版本:‑‑dry‑run=client
‑‑env env‑name

将配置应用于指定的环境。此标志会将配置应用于环境范围组件:apigee-runtime、apigee-synchronizer 和 apigee-udca。

‑‑env 必须与 ‑‑org 标志结合使用。例如:

apigeectl apply ‑‑org hybrid‑example ‑‑env example‑env \
      ‑f overrides/overrides.yaml
‑f
‑‑file‑override‑config
指定一个包含混合部署的自定义配置属性的 YAML 文件。默认值为 ./overrides.yamlapplycheck‑readydeleteinit 命令需要替换文件。

您必须使用此标志指定完整路径。如需了解详情,请参阅管理运行时层面组件

‑h
‑‑help
显示命令的帮助。
‑‑org

将配置应用于指定的组织。此标志会将配置应用于组织范围组件:apigee-connect-agent、apigee-mart 和 apigee-watcher。

‑‑print‑yaml 将配置模板输出输出到 stdout。如需查看使用此标志的示例,请参阅将配置输出到文件
‑‑redis

将配置应用于内存中数据存储范围 (Redis)。

‑‑restore

将 Cassandra 恢复到通过 overrides.yaml 文件的 restore 配置中的 snapshotTimestamp 属性指定的先前保存快照。系统会根据 overrides.yaml 文件中的 backup 配置从 Cloud Storage 存储桶或远程服务器恢复备份。如需了解详情,请参阅从备份恢复区域

‑s
‑‑settings virtualhosts

指定命令适用的配置。目前,只有 runtime 组件中的 virtualhosts 配置支持此标志。如果仅更改 virtualhosts 属性,请使用此标志。

例如,如果您更改替换文件中的 virtualhosts 配置,请使用以下命令将更改应用于集群:

apigeectl apply ‑f my‑overrides.yaml ‑‑settings virtualhosts \
    ‑‑org example‑org ‑‑env example‑env
‑‑telemetry

应用遥测组件(如 apigee-logger 和 apigee-metrics)的配置。

‑‑v int

将详细日志输出到 stderr。int 是一个整数,用于设置详细程度。int‑‑v 所必需的。此选项的行为与 kubectl ‑‑v 选项相同。

注意:此选项取代了已弃用的 ‑‑verbose 选项。

示例

初始化集群配置

使用 init 将前提条件组件配置应用于您的集群。您必须先运行 init 命令,然后再运行 apply

apigeectl init ‑f my_overrides.yaml

应用集群配置

如需将混合配置应用于 Kubernetes 集群,请使用 apply 命令。首次运行 apply 时,系统将在您的集群中创建所有混合运行时组件。如果要更改配置,请重新运行 apply 以仅应用更改,或使用标志以仅将更改应用于特定范围。

以下示例将混合运行时平面组件的配置应用到您的集群:

apigeectl apply ‑f my_overrides.yaml

应用单个组件的配置

如果只希望特定组件使用 apply 命令,请使用 apigeectl 标志中所述的标志。

以下示例仅应用 Cassandra 组件的配置:

apigeectl apply ‑‑datastore ‑f my_overrides.yaml

将配置输出到文件中

如果要调试安装问题,您可以将整个集群配置输出到文件中以便可以检查配置设置,这种做法非常有用。‑‑print‑yaml 标志可将混合配置输出到 stdout,‑‑dry‑run 标志允许命令在不更改集群的情况下运行。

apigeectl apply ‑f my_overrides.yaml ‑‑dry‑run=client ‑‑print‑yaml > apigee‑hybrid.yaml

检查 Pod 状态

以下示例会检查部署到集群的 Pod 的状态:

apigeectl check‑ready ‑f overrides/overrides.yaml
All containers ready in namespace 'my-namespace'

从集群中删除混合版本

以下示例只会删除 Kubernetes 集群的混合运行时组件。如需删除所有组件,请使用 ‑‑all 标志。

apigeectl delete ‑f my_overrides.yaml