从未上线的站点
于 2026-07-28 从本部署的一个 CE 上采集。sitecli/capture-manifest.json
记录了采集自哪个节点,scripts/capture-sitecli.sh --check 会针对实时 CE
重新校验命令接口。
-
确认你查询的租户是否正确。 这只需一条命令,之所以放在首位,是因为一旦搞错,后续每一步都会 给你错误的结论:在你没有查看的那个租户中运行良好的机群,与一个从未注册过的机群在表现上无从区分。
Terminal window cd terraformterraform output -raw xc_tenant # the tenant this deployment belongs toterraform output -raw xc_env_tenant # the tenant your shell is exportingf5-sales-demof5-sales-demo两者不一致,或者你认为有效的凭据却返回了一个裸的
401?这正是为另一个租户签发的令牌所表现出的 症状,它已经让本部署付出了一次完整重建的代价(issue 696)。 -
确认租户端的认知。 站点未出现在站点列表中,与出现但状态不是
ONLINE,是两个不同的问题。Terminal window curl -sS -H "Authorization: APIToken $XCSH_API_TOKEN" \"$XCSH_API_URL/api/config/namespaces/system/sites" | jq -r '.items[].name'如果站点存在且报告为
ONLINE,说明注册已成功,你走错了排查流程。 -
找到该站点的注册记录及其状态。 一个节点可能已完成注册但仍在等待审批,从外部看起来与失败完全一样。
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'在健康的机群上,该命令不返回任何内容,因为审批是自动化的。
-
确认虚拟机确实在运行,不要先假定是软件故障。
Terminal window az vm list -d -g <resource-group> --query "[].{name:name,power:powerState}" -o tableName Power---------------- ----------f5-xc-ce-vm-01 VM runningf5-xc-ce-vm-02 VM runningf5-xc-ce-vm-03 VM runningmcn-ce-ha-client VM running -
接入串行控制台。 交互式使用需要一个真实终端;接入过程本身也可以改用 websocket 脚本化 —— 参见 串行控制台。
Terminal window az serial-console connect -g <resource-group> -n <vm-name>如果连接被拒绝,请先检查该虚拟机是否已启用引导诊断,再断定节点不可达;该前置条件及其失败模式在 串行控制台页面中有说明。
-
按此顺序阅读控制台输出。 先看 cloud-init —— 一个 cloud-init 从未完成的节点没有任何可用于注册的配置。 然后看注册尝试本身,接着看 DNS:如果节点无法解析
register.ves.volterra.io,后续的一切都无法工作。 -
一旦节点变为
ONLINE,用health进行验证, 并预期看到state: PROVISIONED。
- 你指向了错误的租户,因此一个正常的机群看起来像不存在。见步骤 1。
- cloud-init 未完成,因此
/etc/vpm/config.yaml缺失或有误。 - 注册令牌已过期、已被使用,或来自另一个租户。
- 没有到
register.ves.volterra.io的出站路由。 - 时钟偏差过大导致证书失效 —— 之后可以用
chronyc-sources快速排除,但在节点上线前无法执行。 在可以使用 SSH 时,SSH 登录横幅会在你运行任何命令之前报告NTP: Synced以及解析器的状态。