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--verbose

check‑ready

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

apigeectl 标志-f--file-override-config--help--verbose

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--verbose

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 运算符和 CRD。

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

apigeectl 标志-f--file-override-config--help--verbose

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

(在 v1.6.6 中引入)将 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)的配置。

--verbose

将详细日志输出到 stderr。

示例

初始化集群配置

使用 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