跳到內容

從未上線的站點

於 2026-07-28 從本部署環境的其中一個 CE 擷取。sitecli/capture-manifest.json 記錄了擷取自哪個節點,而 scripts/capture-sitecli.sh --check 會針對執行中的 CE 重新驗證指令介面。

  1. 確認您查詢的是正確的租戶。 這只需要一道指令,而它排在第一位是因為一旦弄錯, 後續每個步驟都會給您錯誤的訊息:一個位於您並未查看的租戶中、狀況良好的機群, 與一個從未註冊的機群看起來毫無差別。

    Terminal window
    cd terraform
    terraform output -raw xc_tenant # the tenant this deployment belongs to
    terraform output -raw xc_env_tenant # the tenant your shell is exporting
    f5-sales-demo
    f5-sales-demo

    兩者不一致,或是您認為有效的憑證卻回傳單純的 401?這正是為其他租戶簽發的權杖 所表現出的症狀,而它已經讓本部署環境付出了一次完整重建的代價 (issue 696)。

  2. 確認租戶端所認知的狀態。 站點清單中「不存在」與「存在但狀態並非 ONLINE」 是兩種不同的問題。

    Terminal window
    curl -sS -H "Authorization: APIToken $XCSH_API_TOKEN" \
    "$XCSH_API_URL/api/config/namespaces/system/sites" | jq -r '.items[].name'

    若站點存在且回報 ONLINE,表示註冊已成功,而您正處於錯誤的排查流程中。

  3. 找出站點的註冊記錄及其狀態。 節點可能已完成註冊,但仍在等待核准, 而這從外部看來與失敗完全相同。

    Terminal window
    curl -sS -H "Authorization: APIToken $XCSH_API_TOKEN" \
    "$XCSH_API_URL/api/register/namespaces/system/registrations_by_site/<site>" \
    | jq -r '.items[] | "\(.name) \(.object.status.current_state) \(.object.spec.gc_spec.infra.hostname)"'
    r-a97e20c8-b7e1-483d-bd76-34a64ff8bc78 ONLINE f5-xc-ce-vm-01

    完全沒有任何項目表示節點尚未註冊——請前往序列主控台。若項目處於 ONLINE 以外的 狀態,表示它已完成註冊,但之後有其他環節失敗,這屬於另一種調查方向。

    若要掃描整個命名空間中所有等待核准的項目,listregistrationsbystate 會以 POST 主體的形式接收狀態值:

    Terminal window
    curl -sS -X POST -H "Authorization: APIToken $XCSH_API_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"namespace":"system","state":"PENDING"}' \
    "$XCSH_API_URL/api/register/namespaces/system/listregistrationsbystate" | jq -r '.items[].name'

    在健康的機群上這不會回傳任何內容,因為核准已自動化。

  4. 在假定為軟體故障之前,先確認虛擬機確實正在執行

    Terminal window
    az vm list -d -g <resource-group> --query "[].{name:name,power:powerState}" -o table
    Name Power
    ---------------- ----------
    f5-xc-ce-vm-01 VM running
    f5-xc-ce-vm-02 VM running
    f5-xc-ce-vm-03 VM running
    mcn-ce-ha-client VM running
  5. 連接序列主控台。 以互動方式操作時需要真正的終端機;連接動作本身也可以 透過 websocket 以腳本執行——請參閱 序列主控台

    Terminal window
    az serial-console connect -g <resource-group> -n <vm-name>

    若被拒絕,在斷定節點無法連線之前,請先檢查該虛擬機是否已啟用開機診斷; 該前置條件及其失效模式已在 序列主控台頁面說明。

  6. 依照此順序閱讀主控台顯示的內容。 先看 cloud-init——cloud-init 從未完成的節點 沒有可用於註冊的設定。接著看註冊嘗試本身,然後是 DNS:若節點無法解析 register.ves.volterra.io,其下游的一切都無法運作。

  7. 一旦節點進入 ONLINE 狀態,請以 health 驗證,並預期看到 state: PROVISIONED

  • 您指向了錯誤的租戶,因此一個運作正常的機群看起來像是不存在。請見步驟 1。
  • cloud-init 未完成,因此 /etc/vpm/config.yaml 不存在或內容有誤。
  • 註冊權杖已過期、已被使用,或來自其他租戶。
  • 沒有連往 register.ves.volterra.io 的出向路由。
  • 時鐘偏移大到足以使憑證失效——之後可用 chronyc-sources 快速排除, 但在節點上線前無法取用。當 SSH 可用時,SSH 登入橫幅會在您執行任何指令之前 就回報 NTP: Synced 以及解析器的狀態。