crossplane-function-runner 是一个用于 Crossplane 的参考 Composition Function 运行器镜像,旨在为 Kubernetes 集群中的 Crossplane 控制平面提供标准化的 Composition Function 执行环境。该镜像作为 Crossplane 合成逻辑扩展的基础组件,负责加载、执行用户定义的 Composition Function,并与 Crossplane API 进行交互,实现自定义资源合成逻辑的落地。
FunctionIO)接收与输出响应crossplane-api 服务或外部暴露地址)bashdocker pull crossplane-function-runner:latest # 或指定版本,如 v0.1.0
通过 docker run 启动运行器,挂载函数代码目录并配置 Crossplane API 地址:
bashdocker run -d \ --name crossplane-function-runner \ -v /path/to/local/functions:/functions # 挂载本地函数目录(含函数二进制/Wasm模块) \ -e CROSSPLANE_API_URL=[***] \ # 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: crossplane-function-runner:latest args: ["--log-level", "info"] ports: - containerPort: 8080 env: - name: CROSSPLANE_API_URL value: "[***]" # 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: crossplane-function-runner:latest container_name: crossplane-function-runner ports: - "8080:8080" volumes: - ./local-functions:/functions # 本地函数代码目录(存放 test-function.wasm 或二进制) environment: - CROSSPLANE_API_URL=[***] # 对接模拟的 Crossplane API 服务 - LOG_LEVEL=debug # 开启调试日志 - DEBUG_MODE=true - FUNCTION_LOAD_MODE=local depends_on: - crossplane-api-mock # 模拟 Crossplane API 的服务(实际环境移除) crossplane-api-mock: image: 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 动态拉取(需函数支持热加载)来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429