跳到內容

裝置上的命令

有兩個獨立的命令集可以存取 Customer Edge,且兩者互不包含。

  • 裝置上,Site CLI 擁有 6 個頂層命令82 個 execcli 子命令
  • 透過網路debug 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

三次運行均返回完全相同的命令集 — 名稱相同,不僅僅是總數相同,且最後一次是在不同的部署環境,具有不同的 site 與資源名稱。因此,命令介面不會隨註冊狀態改變,缺少的命令確實不存在,而非尚未提供。

對照 debug API 的 34 個命令,有兩個數字值得釐清:

  • 51execcli 子命令沒有對應的 API。
  • 55 是涵蓋整個裝置上介面後的相同計算結果,因為它還包含四個 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 pages 的劣質副本的關鍵所在。

可在裝置上使用但此處不予記錄 — 這些是作業系統與第三方常駐程式,而非 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 會中斷該節點上的工作負載。