用途:Tilt 自动化本地 Kubernetes 开发循环,监听文件变化、构建镜像并部署到集群。配置写在 Tiltfile(Starlark,Python 方言)中,一个 resource 将镜像构建与 k8s 部署(或本地命令)组合为可管理单元。
主要能力:CLI 支持 tilt up(可加 --stream、指定资源)、tilt ci --timeout 30m、tilt down、tilt args;日志用 tilt logs -f、--level、--source、--since、--tail、--json;资源管理用 tilt get uiresources、describe、trigger、enable/disable、wait;调试用 tilt doctor、get filewatches、dump engine/webview、tilt docker -- build。Tilt API 服务默认在 localhost:10350。
构建策略:标准 Dockerfile 用 docker_build(ref, context);自定义工具链用 custom_build(ref, cmd, deps),须用 $EXPECTED_REF 打标签;非 Docker 构建器加 skips_local_docker=True;Compose 用 docker_compose;Helm/Kustomize 用 k8s_yaml(helm(...)) 或 kustomize(...)。
实时更新:用 live_update 替代整镜像重建,顺序为 fall_back_on(files) → sync(local, remote) → run(cmd, trigger=files) → restart_container()。首次 tilt up 总是全量构建,实时更新需容器已运行。
资源配置:k8s_resource 支持 port_forwards、resource_deps、labels、trigger_mode;local_resource 支持 cmd、serve_cmd、deps、allow_parallel、readiness_probe。本地资源默认串行,镜像构建默认并发 3,可用 update_settings(max_parallel_updates=N) 调整。resource_deps 仅以首次就绪为门槛。
限制与注意:Starlark 无 while/try-except/class/递归;.tiltignore 不影响 Docker 构建上下文,需用 .dockerignore;local() 不追踪文件依赖,应改用 local_resource;run() 触发文件须被 sync() 覆盖;CRD Pod 卡住可设 pod_readiness='ignore'。本技能不是 Kubernetes 入门,也不授权擅自启动、重启或拆除开发环境。