olares-doctor

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

doctor (runtime diagnosis)

doctor(运行时诊断)

Shared front door: load
../olares-shared/SKILL.md
for suite routing, active-profile selection, platform entry points, and the auth proceed/stop gate. Load its auth reference only when login, profile switching, token storage, or auth recovery is actually needed.
This skill is a thin diagnostic router over Market, Cluster, and Dashboard. Load the shared application-state model when interpreting lifecycle states, TTLs, serialized downloads, or
running
. Use
olares-cli doctor <verb> --help
for syntax.
统一入口:加载
../olares-shared/SKILL.md
以获取套件路由、活跃配置文件选择、平台入口点以及认证继续/停止网关。仅在实际需要登录、配置文件切换、令牌存储或认证恢复时,才加载其认证参考内容。
该技能是基于Market、Cluster和Dashboard的轻量诊断路由工具。解读生命周期状态、TTL、序列化下载或
running
状态时,请加载共享的应用状态模型。语法说明可使用
olares-cli doctor <verb> --help
查看。

When to use

使用场景

  • An install/upgrade is stuck or never reaches
    running
    ; an app won't start.
  • An app crashes / restarts repeatedly (CrashLoopBackOff, exit codes, config errors).
  • An image won't pull (
    ImagePullBackOff
    /
    ErrImagePull
    / wrong arch), or you want to find unused local images.
  • An app is
    running
    but its entrance is unreachable / errors / times out.
  • The system or an app is slow, or a GPU/resource binding is rejected (
    node-pressure
    ).
Both catalog apps (installed via
market
) and your own dev apps (deployed via
chart
) route runtime failures here.
Once the root cause is found, the fix for a dev app you authored is usually a chart edit — hand back to
../olares-chart/SKILL.md
.
Mental model:
doctor
answers "why is this broken and what do I do next?" Diagnosis is read-only by default; the only mutation is the explicitly approved
thirdleveldomain --force-dedupe
repair. The four-skill develop->deploy->debug combo is
chart
+
market
+
olares-shared
+
doctor
.
  • 安装/升级停滞,始终无法进入
    running
    状态;应用无法启动。
  • 应用崩溃/反复重启(CrashLoopBackOff、退出码、配置错误)。
  • 镜像拉取失败(
    ImagePullBackOff
    /
    ErrImagePull
    /架构不匹配),或需要查找未使用的本地镜像。
  • 应用显示
    running
    但入口无法访问/报错/超时。
  • 系统或应用运行缓慢,GPU/资源绑定被拒绝(
    node-pressure
    )。
**通过
market
安装的目录应用,以及通过
chart
部署的自定义开发应用,其运行时故障均在此路由处理。**找到根本原因后,若故障属于你编写的开发应用,修复工作通常需要编辑chart——请转至
../olares-chart/SKILL.md
核心逻辑
doctor
用于解答*“为什么出现故障,下一步该怎么做?”*默认情况下诊断为只读操作;唯一的变更操作是需明确授权的
thirdleveldomain --force-dedupe
修复。开发->部署->调试的四技能组合为
chart
+
market
+
olares-shared
+
doctor

Symptom routing

症状路由

SymptomReference
Install/upgrade stuck; never reaches
running
; sits in
pending
/
downloading
/
installing
/
initializing
; a fresh install ended in
stopped
references/olares-doctor-app-stuck.md
App crashes / restarts (CrashLoopBackOff, non-zero exit,
CreateContainerConfigError
, permission errors)
references/olares-doctor-app-crash.md
Image won't pull (
ImagePullBackOff
/
ErrImagePull
/
InvalidImageName
/ arch mismatch); finding unused local images
references/olares-doctor-image.md
App is
running
but the entrance is unreachable / 5xx / times out / blank
references/olares-doctor-running-unhealthy.md
System or app slow; resource pressure; GPU/compute binding rejected (
node-pressure
)
references/olares-doctor-resources.md
A model that is configured but does not answer is diagnosed one layer up first:
olares-router
separates the gateway, its access control and the model application's own download/engine state from the pod-level failures here, and routes back when the cause is below the application.
First, rule out the normal queue. Before declaring an install stuck, check whether another app is
downloading
— app-service runs one download at a time, so a
pending
row is often just queuing (see the appstate reference and the app-stuck reference).
症状参考文档
安装/升级停滞;始终无法进入
running
状态;停留在
pending
/
downloading
/
installing
/
initializing
状态;全新安装最终处于
stopped
references/olares-doctor-app-stuck.md
应用崩溃/重启(CrashLoopBackOff、非零退出码、
CreateContainerConfigError
、权限错误)
references/olares-doctor-app-crash.md
镜像拉取失败(
ImagePullBackOff
/
ErrImagePull
/
InvalidImageName
/架构不匹配);查找未使用的本地镜像
references/olares-doctor-image.md
应用显示
running
但入口无法访问/返回5xx/超时/空白
references/olares-doctor-running-unhealthy.md
系统或应用运行缓慢;资源压力;GPU/计算绑定被拒绝(
node-pressure
references/olares-doctor-resources.md
已配置但无响应的模型需先在上一层诊断:
olares-router
会将网关、访问控制、模型应用自身的下载/引擎状态与此处的Pod级故障分离,当故障源于应用下层时再路由回此处。
首先排除正常排队情况:在判定安装停滞前,请检查是否有其他应用处于
downloading
状态——app-service一次仅运行一个下载任务,因此
pending
状态通常只是排队等待(请查看应用状态参考文档和应用停滞参考文档)。

Verb index

命令索引

CommandPurposeRead when triggered
images
Full local image inventory annotated with workload references; unused candidatesimage diagnosis
thirdleveldomain
Audit duplicate/reserved third-level domains; optional repairdomain audit and repair
命令用途触发时阅读文档
images
带工作负载标注的完整本地镜像清单;识别可清理的未使用镜像镜像诊断
thirdleveldomain
审计重复/保留的三级域名;可选修复操作域名审计与修复

How doctor gathers evidence (orchestration, not ownership)

doctor收集证据的方式(编排而非拥有)

  • Lifecycle state/source comes from
    olares-market
    .
  • Pods, events, logs, and workloads come from
    olares-cluster
    .
  • Pressure and utilization come from
    olares-dashboard
    .
  • Namespace discovery follows the shared platform model.
Correlate evidence by time and object ownership. A Market timeout is not failure;
running
proves only entrance TCP reachability; a fresh install can settle at
stopped
after scheduling failure without a
*Failed
lifecycle state.
  • 生命周期状态/来源来自
    olares-market
  • Pod、事件、日志和工作负载来自
    olares-cluster
  • 资源压力与使用率来自
    olares-dashboard
  • 命名空间发现遵循共享的平台模型
需按时间和对象归属关联证据。Market超时不代表故障;
running
仅证明入口TCP可达;全新安装可能因调度失败停留在
stopped
状态,而不会出现
*Failed
生命周期状态。

Safety and escalation

安全与升级规范

  • Diagnosis is read-only by default. Do not restart, delete, scale, cancel, prune, or edit a chart as an automatic diagnostic step.
  • thirdleveldomain --force-dedupe
    mutates Application resources. Show the proposed changes and obtain explicit approval first.
  • An unused-image report is evidence, not authorization to remove images.
  • System namespace evidence commonly requires admin visibility. On 403/404, use the app's own evidence and report the missing visibility; do not switch identities without approval.
  • Stop when the app/user/namespace is ambiguous, required logs need a higher role, or the fix crosses into chart editing, lifecycle mutation, or host administration.
  • 默认情况下诊断为只读操作。请勿将重启、删除、扩容、取消、清理或编辑chart作为自动诊断步骤。
  • thirdleveldomain --force-dedupe
    会修改Application资源。需先展示拟变更内容并获得明确授权。
  • 未使用镜像报告仅作为证据,而非删除镜像的授权依据。
  • 系统命名空间的证据通常需要管理员权限。遇到403/404错误时,请使用应用自身的证据并报告权限缺失;未经授权请勿切换身份。
  • 当应用/用户/命名空间不明确、所需日志需要更高权限,或修复工作涉及chart编辑、生命周期变更或主机管理时,请停止操作。