RunPod 模板详解 | AI生成和翻译

首页 2026.07

问题:在RunPod中,“Your templates”指的是什么?当它说“预先配置你的Docker镜像一次,然后在Pods和Serverless中重复使用它们”时,是什么意思?

答案:

RunPod 模板 只是一个容器的保存规范——它是位于Docker镜像之上的元数据层,而非镜像本身。你只需定义一次,之后在启动计算资源时直接引用它,无需每次都重新输入相同的配置。

模板实际存储的内容:

Template = {
  container_image: "docker.io/you/your-image:tag",  # 来自Docker Hub / GHCR / 私有仓库
  container_disk_size_gb: 20,
  volume_disk_size_gb: 50,          # 持久化卷(如有)
  volume_mount_path: "/workspace",
  docker_start_command: "python3 rp_handler.py",  # 或入口点覆盖
  env_vars: {"HF_TOKEN": "<SECRET>", "MODEL_NAME": "..."},
  ports: "8888/http,22/tcp",        # Pod的暴露端口(Jupyter、SSH)
  is_serverless: false,             # 影响哪些表面可以使用它
}

Pods vs Serverless——同一模板,不同运行时语义:

  Pods Serverless
生命周期 长期运行,手动启停 临时工作器,按需启动,缩至零
入口点 通常通过SSH/Jupyter进入运行中的容器 必须调用 runpod.serverless.start({"handler": handler})
计费 运行时按小时计费 按处理请求的实际秒数计费
网络 暴露端口(8888、22等) 无暴露端口——请求/响应通过RunPod的队列进行

同一Docker镜像通常不能直接同时用于两者:Pod镜像预期无限期运行并提供交互式访问(SSH、Jupyter),而Serverless镜像必须实现RunPod Python SDK的处理程序模式,并在每个作业后优雅退出——一个GPU Cloud模板如果没有Serverless处理程序,则无法在Serverless中工作,因此不建议将设计用于Pods的镜像用于Serverless。

因此,“预先配置一次,在Pods和Serverless中重复使用”实际意味着:你可以将多个端点/Pod配置指向同一底层镜像(如果你构建得足够通用——例如,一个同时包含交互式入口点和由环境变量控制的rp_handler.py的镜像),而且每次部署时无需重新定义磁盘大小、环境变量、暴露端口等。这是一种部署配置的DRY机制,而非两个运行时之间的神奇兼容层。

如果你确实希望一个镜像同时服务于两者,实用的构建模式:

FROM nvidia/cuda:12.4.0-runtime-ubuntu22.04
COPY . /workspace
WORKDIR /workspace
RUN pip install runpod torch transformers

# entrypoint.sh在容器启动时决定模式
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
#!/bin/bash
# entrypoint.sh
if [ "$RUNPOD_SERVERLESS" = "1" ]; then
    exec python3 rp_handler.py   # runpod.serverless.start(...)
else
    exec /start.sh               # 用于交互式Pod使用的jupyter lab / sshd
fi

然后一个模板,两个部署目标:在创建Serverless端点时将 RUNPOD_SERVERLESS=1 作为环境变量覆盖,对于Pod则不设置该变量。

管理位置: console.runpod.io/serverless/user/templates 用于Serverless作用域的模板,以及对应的Pods模板页面用于GPU Cloud——模板也可以通过RunPod Python SDK编程方式创建,例如 runpod.create_pod("test", "runpod/stack", "NVIDIA GeForce RTX 3070"),如果你希望在CI/CD中脚本化模板创建,而不是通过UI点击。

参考:


AI生成和翻译,但整理分享仍需精力。如果觉得有帮助,欢迎 捐助支持。 微信:@lzwjavaWeChat QR · X: @lzwjava · 打个招呼 👋

返回 捐助