crossplane-function-runner 是一个用于 Crossplane 的参考 Composition Function 运行器镜像,旨在为 Kubernetes 集群中的 Crossplane 控制平面提供标准化的 Composition Function 执行环境。该镜像作为 Crossplane 合成逻辑扩展的基础组件,负责加载、执行用户定义的 Composition Function,并与 Crossplane API 进行交互,实现自定义资源合成逻辑的落地。
FunctionIO)接收与输出响应crossplane-api 服务或外部暴露地址)4.2.1 拉取镜像
bashdocker pull 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: 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: 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: 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 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务