
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
crossplane-function-runner 是一个用于 Crossplane 的参考 Composition Function 运行器镜像,旨在为 Kubernetes 集群中的 Crossplane 控制平面提供标准化的 Composition Function 执行环境。该镜像作为 Crossplane 合成逻辑扩展的基础组件,负责加载、执行用户定义的 Composition Function,并与 Crossplane API 进行交互,实现自定义资源合成逻辑的落地。
FunctionIO)接收与输出响应crossplane-api 服务或外部暴露地址)4.2.1 拉取镜像
bashdocker pull docker.xuanyuan.run/crossplane-function-runner:latest # 或指定版本,如 v0.1.0
4.2.2 本地 Docker 运行
通过 docker run 启动运行器,挂载函数代码目录并配置 Crossplane API 地址:
bashdocker run -d \ --name crossplane-function-runner \ -v /path/to/local/functions:/functions # 挂载本地函数目录(含函数二进制/Wasm模块) \ -e CROSSPLANE_API_URL=https://crossplane-api.default.svc.cluster.local:443 \ # Crossplane API 地址(必填) \ -e LOG_LEVEL=info \ # 日志级别(默认 info) \ -e FUNCTIONS_DIR=/functions \ # 函数代码存放目录(默认 /functions) \ -p 8080:8080 \ # 暴露运行器监听端口(默认 8080) \ crossplane-function-runner:latest
在 Kubernetes 集群中部署时,建议通过 Deployment 管理,并挂载包含函数代码的 ConfigMap/Secret:
yamlapiVersion: apps/v1 kind: Deployment metadata: name: crossplane-function-runner namespace: crossplane-system spec: replicas: 1 selector: matchLabels: app: function-runner template: metadata: labels: app: function-runner spec: containers: - name: runner image: docker.xuanyuan.run/crossplane-function-runner:latest args: ["--log-level", "info"] ports: - containerPort: 8080 env: - name: CROSSPLANE_API_URL value: "https://crossplane-api.crossplane-system.svc.cluster.local:443" # Crossplane API 内部服务地址 - name: LOG_LEVEL value: "info" - name: FUNCTIONS_DIR value: "/functions" volumeMounts: - name: functions-volume mountPath: /functions # 挂载函数代码目录 volumes: - name: functions-volume configMap: name: crossplane-functions # 包含函数代码的 ConfigMap(需提前创建)
运行器支持以下函数加载方式,通过 FUNCTION_LOAD_MODE 环境变量指定(默认 local):
local:加载本地目录(FUNCTIONS_DIR)中的函数文件(二进制/Wasm)http:从远程 HTTP 服务拉取函数(需配置 FUNCTION_HTTP_URL 环境变量)secret:从 Kubernetes Secret 中加载(需挂载 Secret 到 FUNCTIONS_DIR)| 参数名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
--log-level | 日志级别(DEBUG/INFO/WARN/ERROR) | string | info |
--listen-addr | 运行器监听地址(格式:IP:端口) | string | 0.0.0.0:8080 |
--functions-dir | 函数代码存放目录 | string | /functions |
--debug | 启用调试模式(打印详细请求/响应日志) | bool | false |
| 变量名 | 说明 | 必填 | 默认值 |
|---|---|---|---|
CROSSPLANE_API_URL | Crossplane API 地址(格式:https://<host>:<port>) | 是 | - |
LOG_LEVEL | 日志级别(优先级高于命令行 --log-level) | 否 | info |
LISTEN_ADDR | 运行器监听地址(优先级高于命令行 --listen-addr) | 否 | 0.0.0.0:8080 |
FUNCTIONS_DIR | 函数代码存放目录(优先级高于命令行 --functions-dir) | 否 | /functions |
FUNCTION_LOAD_MODE | 函数加载方式(local/http/secret) | 否 | local |
FUNCTION_HTTP_URL | 当 FUNCTION_LOAD_MODE=http 时,远程函数拉取地址 | 否 | - |
DEBUG_MODE | 启用调试模式(true/false,优先级高于命令行 --debug) | 否 | false |
CROSSPLANE_TIMEOUT | 与 Crossplane API 通信的超时时间(单位:秒) | 否 | 30 |
通过 docker-compose 快速搭建本地测试环境(含 Crossplane 控制平面模拟,实际场景需对接真实 Crossplane):
yamlversion: "3.8" services: function-runner: image: docker.xuanyuan.run/crossplane-function-runner:latest container_name: crossplane-function-runner ports: - "8080:8080" volumes: - ./local-functions:/functions # 本地函数代码目录(存放 test-function.wasm 或二进制) environment: - CROSSPLANE_API_URL=https://crossplane-api:443 # 对接模拟的 Crossplane API 服务 - LOG_LEVEL=debug # 开启调试日志 - DEBUG_MODE=true - FUNCTION_LOAD_MODE=local depends_on: - crossplane-api-mock # 模拟 Crossplane API 的服务(实际环境移除) crossplane-api-mock: image: docker.xuanyuan.run/nginx:alpine # 仅用于模拟 API 服务,实际环境替换为真实 Crossplane API container_name: crossplane-api-mock ports: - "443:443" volumes: - ./mock-api-cert:/etc/nginx/certs # 模拟 HTTPS 证书 - ./mock-api-config:/etc/nginx/conf.d # 模拟 API 响应配置
livenessProbe/readinessProbe,检查 http://localhost:8080/health 端点)FUNCTION_LOAD_MODE=http 动态拉取(需函数支持热加载)您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务