Tilt开发环境管理Skill tilt

Tilt开发环境管理技能专注于通过CLI命令和Tiltfile配置实现Kubernetes微服务的自动化开发工作流。该技能涵盖实时重载监控、容器化开发环境管理、自动化构建部署、资源状态查询和日志分析等核心功能。关键词包括:Tilt开发工具、Kubernetes开发环境、微服务实时重载、容器化开发、DevOps自动化、Tiltfile配置、云原生开发工具、CI/CD集成。

Docker/K8s 0 次安装 0 次浏览 更新于 2/28/2026

name: tilt description: 通过CLI和Tiltfile编写管理Tilt开发环境。使用Tilt或Tiltfiles时必须使用。

Tilt开发环境

自动重载行为

Tilt会主动进行实时重载。永远不要建议重启tilt up或手动刷新资源——在几乎所有情况下,Tilt都会自动处理。

什么会自动重载

变更类型 发生什么 你的操作
Tiltfile编辑 Tilt在保存时重新评估整个Tiltfile 只需保存文件
带有live_update的源代码 文件同步到容器而无需重建 只需保存文件
没有live_update的源代码 自动触发完整镜像重建 只需保存文件
Kubernetes清单 资源自动重新应用 只需保存文件
带有HMR的前端 浏览器通过热模块替换更新 只需保存文件
带有监视工具的后端 通过nodemon/air/watchexec重启进程 只需保存文件

何时确实需要重启

仅在以下情况下需要重启tilt up

  • Tilt版本升级
  • 更改Tilt的端口或主机设置
  • 从Tilt崩溃中恢复
  • Kubernetes上下文更改(切换集群)

验证更新已应用

不要重启,而是验证更新是否已传播:

# 保存后检查资源状态
tilt get uiresource/<名称> -o json | jq '.status.updateStatus'

# 监视更新完成
tilt wait --for=condition=Ready uiresource/<名称> --timeout=60s

# 检查最近的日志以确认重载
tilt logs <资源> --since 1m
tilt logs <资源> --since 5m | rg -i "reload|restart|updated|synced"

运行tilt up

始终在tmux会话中使用send-keys运行tilt up 这确保:

  • Tilt在Claude Code会话重载后仍然存活
  • Shell初始化运行(PATH、direnv等)
SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)

# 在tmux中启动tilt(幂等,send-keys用于正确的shell初始化)
if ! tmux has-session -t "$SESSION" 2>/dev/null; then
  tmux new-session -d -s "$SESSION" -n tilt
  tmux send-keys -t "$SESSION:tilt" 'tilt up' Enter
  echo "已在tmux会话中启动tilt: $SESSION"
elif ! tmux list-windows -t "$SESSION" -F '#{window_name}' | grep -q "^tilt$"; then
  tmux new-window -t "$SESSION" -n tilt
  tmux send-keys -t "$SESSION:tilt" 'tilt up' Enter
  echo "已将会话添加到窗口: $SESSION"
else
  echo "Tilt已在会话中运行: $SESSION"
fi

检查tilt输出:

SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
tmux capture-pane -p -t "$SESSION:tilt" -S -50

停止tilt:

SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
tmux send-keys -t "$SESSION:tilt" C-c

永远不要在前台直接运行tilt up或使用run_in_background。始终使用tmux。

指令

  • 使用tilt get uiresources -o json以编程方式查询资源状态
  • 使用tilt get uiresource/<名称> -o json获取详细的单个资源状态
  • 使用带有--since--tail--json标志的tilt logs进行日志检索
  • 使用tilt trigger <资源>在自动重载未触发时强制更新
  • 使用tilt wait阻塞直到资源达到就绪状态
  • 对于Tiltfile编写,请参阅@TILTFILE_API.md
  • 对于完整的CLI参考和JSON解析模式,请参阅@CLI_REFERENCE.md

快速参考

检查资源状态

tilt get uiresources -o json | jq '.items[] | {name: .metadata.name, runtime: .status.runtimeStatus, update: .status.updateStatus}'

等待资源就绪

tilt wait --for=condition=Ready uiresource/<名称> --timeout=120s

获取资源日志

tilt logs <资源>              # 当前日志
tilt logs <资源> --since 5m   # 最近5分钟的日志
tilt logs <资源> --tail 100   # 最后100行
tilt logs --json                  # JSON行输出

触发更新

tilt trigger <资源>

生命周期命令

tilt up        # 启动Tilt
tilt down      # 停止并清理
tilt ci        # CI/批处理模式

资源状态值

  • RuntimeStatus: unknown, none, pending, ok, error, not_applicable
  • UpdateStatus: none, pending, in_progress, ok, error, not_applicable

参考