Customer Edge 診斷
Customer Edge(CE)是本儲存庫佈建至 Azure 的 F5 Distributed Cloud 節點 —
terraform/modules/ce-node,以 volterraedgeservices/volterra-node
Marketplace 映像檔建置。
它執行資料平面(Argo)、控制平面(Vega)、一個 Envoy Proxy、一套 Kubernetes
堆疊,以及 vpm —— 負責註冊節點並管理節點上其他所有項目的代理程式。
當 CE 出現異常時,Site CLI 就是診斷工具。第一個決定是判斷適用哪一種存取路徑, 選錯會浪費時間,而且症狀看起來就像節點壞掉一樣。
四種存取路徑,彼此並不可互換
Section titled “四種存取路徑,彼此並不可互換”ONLINE. Scriptable, read-only, and covers 34 commands.Debug API 透過 F5 Distributed Cloud 控制平面連上節點。
這正是這項區分之所以重要的原因:只有在節點已註冊並回報 ONLINE 之後,API 才能回應。
註冊失敗的節點 —— cloud-init 有誤、權杖過期、無法路由至
register.ves.volterra.io —— 正是你最需要診斷的情況,
也正是 API 無法提供服務的情況。
當你想使用 F5 自家的疑難排解 UI,而非執行特定指令時,Site Console
是首選。它對你的要求最少 —— 不需要金鑰、不需要跳板主機、節點也不需要公用 IP ——
因為誰可以連線變成一項 Azure RBAC 決策,而且無論站台是否已註冊它都能回應。它需要 Azure Bastion,
本部署以 enable_bastion 控管,且預設不會佈建。
SSH 是唯一能觸及設備完整指令介面的途徑 ——
Debug API 只公開 34 個指令,而節點本身提供的遠不止於此。有兩項限制。
sshd 僅在節點的內部(SLI)位址上回應,因此需要一台位於 VNet 內的主機;
此外金鑰是由 cloud-init 在首次開機時寫入的,因為站台物件上的 ssh_key 欄位是無效的 ——
vpm 會略過 admin 使用者,永遠不會套用它。因此若要在執行中的節點上啟用,就必須將其汰換重建。
所以:如果站台為 ONLINE 且 34 個指令已足夠,請使用 Debug API。若需要 UI,或節點從未註冊
但仍有網路路徑,請使用 Site Console。如果你需要其餘的指令介面且能連到 VNet,請使用 SSH。
如果節點完全沒有可用的網路路徑,序列主控台是唯一的進入途徑。
以下規則適用於下列各頁的每一個指令。
- 除非你有十足把握,否則只做唯讀操作。 指令介面分為兩個權限層級,而
Exec層級要麼會變更節點狀態,要麼會讀取狀態標記。這些頁面上沒有任何內容會執行Exec指令,擷取工具也不會。 - 切勿從指令名稱推斷它是安全的。
ip-link-set讀起來像查詢,實際上會關閉介面。systemctl-restart-crio會在資料平面運作中重啟容器執行環境。 - 優先選擇能回答問題的最小範圍指令。
health與diagnosis能以低成本摘要節點狀態;flow-l會傾印每一條即時流量,而flow-l-match則針對單一連線回答同樣的問題。 - CE 承載實際流量。 這些是共用的展示環境。請假設有人正在使用你正在除錯的站台進行簡報。
本文件涵蓋的內容
Section titled “本文件涵蓋的內容”本租戶所執行的軟體版本上,所有可透過 Debug API 存取的指令,每一個都附有從實際節點擷取的輸出, 而非從別處轉錄而來。
指令參考列出全部指令及其類別、權限層級與傳輸方式; 工作流程則將它們串接成你在出問題時實際會使用的操作序列。
Site CLI 中僅限於節點本機的部分 —— configure、configure-network、
factory-reset、upgrade 以及約六十個其他 ExecCLI 指令 —— 並未涵蓋在內,
因為它們的輸出並未像下列各頁那樣從實際節點擷取。
不過,它們已不再遙不可及。scripts/sitecli_ssh_harvest.py 會透過 SSH
驅動設備自身的自動完成選單,並記錄設備對每個指令所給出的說明,
如此一來這個指令介面就能被實際量測,而非靠猜測。它的執行採預設拒絕 ——
它會列舉所有項目,但只執行允許清單中的指令 ——
因為未經驗證的指令語法,以及未經驗證的指令作用,正是本文件存在所要避免重蹈覆轍的缺陷。