
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
这是博客文章《Hosting a Plumber API with Kubernetes》(链接:[***]
Kubernetes的核心概念是容器。将应用及其运行所需的软件打包成一个容器,即可在未安装该应用或依赖的机器上运行。例如,Rocker项目提供包含R或RStudio的容器,无需本地安装即可使用。最常用的容器创建与运行工具是Docker。
容器解决了诸多问题:可打包R脚本与依赖包的精确版本以实现可复现分析;通过Plumber将R脚本转为API并放入容器,运行容器即可托管API;同一机器可运行多个容器(即使应用无关),如同时运行依赖R 3.6和4.0的应用。
Kubernetes针对多容器运行的复杂性设计。用户只需描述期望的系统状态(如“始终运行3个容器A和2个容器B”),Kubernetes会尽力实现。
Kubernetes通常运行在多机器集群上,可在多机器上运行同一容器的副本(replicas)以分担负载或实现故障冗余。容器被视为临时且可替换的,便于应对需求激增时的扩容。
Kubernetes的层级结构:
Plumber API包含两个文件:
plumber.R:实现基础API端点:
/parity:判断整数奇偶性/wait:等待5秒后返回格式化当前时间/fail:将alive全局变量设为FALSE/quit:执行quit()退出API进程/health:若alive为TRUE返回"OK",否则抛出错误entrypoint.R:加载依赖并运行Plumber API,可通过Rscript entrypoint.R执行Dockerfile用于构建运行entrypoint.R并暴露8000端口的镜像。构建命令:
bashdocker build -t mdneuzerling/plumber-on-k8s <文件所在目录>
运行镜像命令:
bashdocker run -p 8000:8000 docker.xuanyuan.run/mdneuzerling/plumber-on-k8s
镜像可托管于Docker Hub等容器仓库。
Kubernetes通过YAML文件配置期望状态。该API需以下配置:
deployment.yaml:配置Kubernetes集群上的部署,包含3个镜像副本,并通过/health端点配置存活与就绪探针service.yaml:实现对部署中Pod的8000端口的服务暴露ingress.yaml:将服务暴露到外部,以便查询API(本地部署需考虑防火墙设置)应用YAML文件命令:
bashkubectl apply -f https://raw.githubusercontent.com/mdneuzerling/plumber-on-k8s/main/deployment.yaml
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务