FAQ
kruntimes 是 Kubernetes scheduler 的替代品吗?
不是。Kubernetes 仍然负责调度 Runtime Pods。kruntimes 负责在这些预热的 Runtime Pods 内部调度单个 Runs。
kruntimes 会为每个 Run 创建一个 Pod 吗?
不会。Run 是一个 CRD object。scheduler 会把它分配到已有且有可用 capacity 的 Runtime Pod。
内置 runtimes 可以安全运行不可信代码吗?
不可以。内置 Bash 和 Python runtimes 仅适用于 trusted code。它们不提供 per-Run 进程、 文件系统、网络、CPU、内存或 ServiceAccount 隔离。
对于不可信 workloads,请使用 namespace 隔离,或实现具备更强隔离能力的 custom runtimes。
Logs 存在哪里?
完整 stdout 和 stderr 会作为带 Run UID 的结构化 runtimed logs 输出。它们不会被完整复制到
Run.status.message。
Artifacts 存在哪里?
Artifacts 写入 $KRUNTIME_ARTIFACTS_DIR,并通过配置的 ArtifactStore 持久化到 etcd 之外。
Run.status.artifactRefs 存储紧凑 metadata。
为什么 Run 一直 Pending?
通常是因为没有匹配的健康 Runtime Pod 具备可用 capacity。见 Troubleshooting 。
Timeout 时会发生什么?
Timeout 会以 Timeout 终态 phase 结束。它不会被报告为泛化的 Failed。
kruntimes 提供什么执行保证?
执行语义是 at-least-once。Runtime Servers 必须让重复 Execute delivery 具备确定性且安全。
Runtime 可以使用自定义 ServiceAccount 吗?
可以。设置 Runtime.spec.template.spec.serviceAccountName。Runtime controller 会为 runtimed
权限创建 namespace-scoped RBAC。
API 稳定了吗?
还没有。项目处于 v0.x experimental,CRDs 是 v1alpha1。
如何 benchmark scheduler?
见 Performance Benchmarks 。benchmark execution 是贡献者 workflow, 并假设存在本地开发环境。