跳转到内容

设备内置命令

有两套独立的命令集可访问 Customer Edge,且两者互不包含。

  • 设备本地,Site CLI 拥有 6 个顶级命令82 个 execcli 子命令
  • 通过网络调试 API 拥有独立的 34 个命令目录。

大多数设备本地功能没有对应的 API 等效项:整个 Vega 控制平面、Envoy 包装器、数据包捕获、kubelet 参数集、edit-* 文件以及辅助 root 访问对,均只能从设备本地访问。

访问这些功能需要使用 SSH串口控制台,以及一个在任何文档中均未提及的内容:

以下命令集并非从供应商文档中转录,而是通过 scripts/sitecli_ssh_harvest.py 从实时节点读取,并连同其来源信息提交至 sitecli/exec-catalog.json。共进行了三次测量,分别处于三种注册状态:

测量时机顶级命令execcli
site_state: PROVISIONING682
site_state: PROVISIONED682
site_state: ONLINE682

三次测量返回了完全相同的命令集——不仅总数相同,命令名称也完全一致;且最后一次测量来自不同的部署环境,站点和资源名称均不同。因此,命令集不会随注册状态变化,某个命令若不存在,则是真实缺失,而非尚未开放。

与调试 API 的 34 个命令对比,有两个数字值得区分:

  • 51execcli 子命令没有对应的 API 等效项。
  • 55 是将整个设备本地命令面统计后得出的数字,因为它还包括 4 个 configure* 命令——这些命令位于顶级而非 execcli 之下。

两个数字均正确;若读者重新计算其中一个后得到另一个,并不说明有误。本文所有数字均源自 sitecli/catalog.jsonsitecli/exec-catalog.json

哪些命令有完整文档,哪些仅作列举

Section titled “哪些命令有完整文档,哪些仅作列举”

Customer Edge 运行 Linux 及若干第三方守护进程。为其命令编写文档会与上游参考资料重复,并暗示 F5 拥有这些软件的所有权,因此原则是:为 F5 的软件编写文档,对其他软件仅记录 CE 特有的内容。

共分三个层级,因为”我们的”和”第三方的”并非泾渭分明。分类结果记录在 sitecli/command-classification.json 中。

层级处理方式
F5 软件完整文档——用途、语法、参数、捕获的输出、关注要点。涵盖 Argo、Vega、vpmvifdumpconfigure*edit-* 集、kubelet 参数、root 访问。
CE 特有解读某个第三方工具的输出在 CE 上具有特殊含义。记录 CE 特有的解读方式,工具本身的语义留由上游文档说明。
直通标准 Linux 或第三方工具,无 CE 特有内容。仅列出其可用性并指向上游文档,不提供说明性文字。

该分类决定了是否需要为命令创建独立页面,也是避免本文档沦为 man 手册劣质副本的关键所在。

以下命令在设备上可用,但本文档不作介绍——它们属于操作系统和第三方守护进程,而非 F5 的软件,其上游参考资料远比本文能提供的更为权威。

命令上游
ping, netstat, lsof, ip, ip-link-show, nmcli, tracepathiproute2, NetworkManager
top, check-mem, sysctl, load-sysctl-conf, journalctl, files, rpm-ostree, chronyc-sourcescoreutils, procps, systemd, rpm-ostree, chrony
edit-etc-hosts, edit-sysctl-conf这些文件属于操作系统
systemctl-status-crio, systemctl-status-docker, systemctl-status-kubelet, systemctl-status-iscsid, systemctl-status-multipathdsystemd
systemctl-restart-crio, systemctl-restart-docker, systemctl-restart-kubelet, systemctl-restart-iscsid, systemctl-restart-multipathdsystemd——每个命令都会中断节点上的工作负载

其中两个命令虽无独立页面,但值得特别说明。files 执行文件操作,且只会在 /tmp 目录下写入。每个 systemctl-restart-* 命令从定义上就具有破坏性——重启 criokubelet 会中断该节点上的工作负载。