裝置上的命令
有兩個獨立的命令集可以存取 Customer Edge,且兩者互不包含。
- 裝置上,Site CLI 擁有 6 個頂層命令與 82 個
execcli子命令。 - 透過網路,debug API 有其獨立的 34 個命令目錄。
裝置上的大部分介面沒有對應的 API:整個 Vega 控制平面、Envoy 封裝器、封包擷取、kubelet 參數集、edit-* 檔案以及輔助 root 存取配對,只能從裝置上存取。
存取這些功能需要 SSH 或序列主控台,以及一個在任何文件中都找不到的要點:
計量方式與命令集的重疊情況
Section titled “計量方式與命令集的重疊情況”以下命令集並非從廠商文件轉錄而來,而是透過 scripts/sitecli_ssh_harvest.py 從實際節點讀取,並連同出處一併提交至 sitecli/exec-catalog.json。共進行三次運行,分別對應三種註冊狀態:
| 計量時機 | 頂層 | execcli |
|---|---|---|
site_state: PROVISIONING | 6 | 82 |
site_state: PROVISIONED | 6 | 82 |
site_state: ONLINE | 6 | 82 |
三次運行均返回完全相同的命令集 — 名稱相同,不僅僅是總數相同,且最後一次是在不同的部署環境,具有不同的 site 與資源名稱。因此,命令介面不會隨註冊狀態改變,缺少的命令確實不存在,而非尚未提供。
對照 debug API 的 34 個命令,有兩個數字值得釐清:
- 51 個
execcli子命令沒有對應的 API。 - 55 是涵蓋整個裝置上介面後的相同計算結果,因為它還包含四個
configure*命令,這些命令位於頂層而非execcli之下。
兩者均正確;若讀者重新計算其中一個而得到另一個,並非出錯。此處所有數字均來自 sitecli/catalog.json 與 sitecli/exec-catalog.json。
哪些有完整文件,哪些僅列出清單
Section titled “哪些有完整文件,哪些僅列出清單”Customer Edge 運行 Linux 及多個第三方常駐程式。為其命令撰寫文件會與其本身的參考資料重複,且暗示 F5 擁有這些軟體,因此原則是:為 F5 的軟體撰寫文件,其餘則僅記錄 CE 特有的部分。
共分三個層級,因為「我們的」與「他們的」並非清晰的界線。此分類記錄於 sitecli/command-classification.json。
| 層級 | 處理方式 |
|---|---|
| F5 軟體 | 完整文件 — 用途、語法、參數、擷取的輸出內容、注意事項。Argo、Vega、vpm、vifdump、configure*、edit-* 集合、kubelet 參數、root 存取。 |
| CE 特定解讀 | 其輸出在 CE 上具有特定含義的第三方工具。記錄 CE 特定的解讀方式,工具本身的語義留給上游文件。 |
| 直通 | 純 Linux 或第三方工具,無 CE 特有內容可說明。列為可用,並指向上游文件。無說明文字。 |
此區別決定是否需要建立對應頁面,也是讓本文件不至於淪為 man pages 的劣質副本的關鍵所在。
vegactl 命令:設定物件、內部查詢表、追蹤緩衝區,以及哪個節點持有主要角色。vifdump 命令。已有文件記錄,但不在此執行:它們會將擷取檔案寫入節點。edit-* 命令,用於開啟節點上 F5 擁有的檔案。xuser root 帳號。由支援團隊指示操作,且會留下節點的修改記錄。configure* 命令。可在裝置上使用但此處不予記錄 — 這些是作業系統與第三方常駐程式,而非 F5 的軟體,其本身的參考資料優於本頁所能提供的任何內容。
| 命令 | 上游文件 |
|---|---|
ping, netstat, lsof, ip, ip-link-show, nmcli, tracepath | iproute2, NetworkManager |
top, check-mem, sysctl, load-sysctl-conf, journalctl, files, rpm-ostree, chronyc-sources | coreutils, 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-multipathd | systemd |
systemctl-restart-crio, systemctl-restart-docker, systemctl-restart-kubelet, systemctl-restart-iscsid, systemctl-restart-multipathd | systemd — 其中每一個都會中斷節點上的工作負載 |
其中兩個值得注意,即使它們沒有對應頁面。files 執行檔案操作,且只會在 /tmp 下寫入。而每個 systemctl-restart-* 本質上都是破壞性操作 — 重新啟動 crio 或 kubelet 會中斷該節點上的工作負載。