本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

本工具是一款基于文件驱动的自动化管理程序,用于监控指定文件夹下的命令文件。当检测到新增或更新的命令文件时,程序将解析文件内容并执行其中定义的HTTP命令(主要针对eKuiper流处理引擎),执行完成后将文件信息记录至历史文件(.history)中,避免重复处理。
.history文件,记录已处理的命令文件名及时间戳程序通过YAML格式的配置文件进行参数设置,示例及参数说明如下:
port: 9081 # eKuiper服务端口 timeout: 500 # 命令执行超时时间(单位:毫秒) intervalTime: 60 # 文件夹检查间隔(单位:秒) ip: "127.0.0.1" # eKuiper服务IP地址 logPath: "./log/kubernetes.log" # 日志文件保存路径 commandDir: "./sample/" # 命令文件所在目录路径
| 参数名 | 类型 | 描述 | 默认值示例 |
|---|---|---|---|
| port | int | eKuiper服务端口 | 9081 |
| timeout | int | 命令执行超时时间(毫秒) | 500 |
| intervalTime | int | 文件夹检查间隔(秒) | 60 |
| ip | string | eKuiper服务IP地址 | "127.0.0.1" |
| logPath | string | 日志文件保存路径 | "./log/kubernetes.log" |
| commandDir | string | 命令文件监控目录路径 | "./sample/" |
命令文件为JSON格式,用于定义待执行的HTTP请求集合。文件需放置在commandDir配置指定的目录下,程序将自动监控并处理。
| 字段名 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
| commands | 否 | array | HTTP命令集合,每个元素为一个请求 |
| url | 否 | string | HTTP请求路径(相对于eKuiper IP:Port) |
| method | 否 | string | HTTP请求方法(post/get/delete/put等) |
| description | 是 | string | 操作描述(可选,用于日志记录) |
| data | 否 | json object | 请求体数据(创建操作时必填) |
单个命令文件可包含一个或多个HTTP请求,示例如下:
{ "commands": [ { "url": "/streams", "description": "创建stream1", "method": "post", "data": { "sql": "create stream stream1 (id bigint, name string) WITH (datasource = \"topic/temp\", FORMAT = \"json\");" } }, { "url": "/streams/stream1", "description": "查询stream1", "method": "get" } ] }
通过以下命令编译生成可执行文件:
go build -o tools/kubernetes/kuiper-kubernetes-tool tools/kubernetes/main.go
编译后生成的可执行文件路径:tools/kubernetes/kuiper-kubernetes-tool
准备配置文件
创建config.yaml,配置eKuiper连接信息、监控目录等参数(详见4.1节)。
准备命令文件
在commandDir目录下创建JSON格式的命令文件(详见4.2节)。
启动程序
执行编译后的可执行文件,程序将自动加载配置并开始监控命令目录:
./kuiper-kubernetes-tool # 需与config.yaml在同一目录,或通过参数指定配置文件路径
查看结果
logPath配置的日志文件.history文件,记录处理记录# 编译阶段 FROM golang:1.18-alpine AS builder WORKDIR /app COPY . . RUN go mod download RUN go build -o kuiper-kubernetes-tool tools/kubernetes/main.go # 运行阶段 FROM alpine:3.16 WORKDIR /app COPY --from=builder /app/kuiper-kubernetes-tool . COPY config.yaml . # 复制配置文件(或通过挂载外部配置) # 创建命令目录和日志目录 RUN mkdir -p /app/commands /app/log # 运行程序 CMD ["./kuiper-kubernetes-tool"]
docker run -d \ --name kuiper-tool \ -v /host/config.yaml:/app/config.yaml \ # 挂载外部配置文件 -v /host/commands:/app/commands \ # 挂载命令文件目录(需与config.yaml中commandDir一致) -v /host/log:/app/log \ # 挂载日志目录(需与config.yaml中logPath一致) kuiper-kubernetes-tool:latest
version: "3" services: kuiper-tool: build: . volumes: - ./config.yaml:/app/config.yaml - ./commands:/app/commands - ./log:/app/log restart: always environment: - EKUIPER_IP=192.168.1.100 # 可通过环境变量覆盖配置文件中的eKuiper IP(需程序支持环境变量注入)
{ "commands": [ { "url": "/streams", "description": "创建stream1", "method": "post", "data": { "sql": "create stream stream1 (id bigint, name string, score float) WITH (datasource = \"topic/temperature\", FORMAT = \"json\", KEY = \"id\");" } } ] }
{ "commands": [ { "url": "/streams", "description": "查询所有流", "method": "get" } ] }
{ "commands": [ { "url": "/streams/stream1", "description": "查询stream1详情", "method": "get" } ] }
{ "commands": [ { "url": "/streams/stream1", "description": "删除stream1", "method": "delete" } ] }
{ "commands": [ { "url": "/rules", "description": "创建rule1", "method": "post", "data": { "id": "rule1", "sql": "SELECT * FROM stream1", "actions": [{"log": {}}] } } ] }
{ "commands": [ { "url": "/rules/rule1/stop", "description": "停止rule1", "method": "post" }, { "url": "/rules/rule1/start", "description": "启动rule1", "method": "post" } ] }
{ "commands": [ { "url": "/rules/rule1/status", "description": "查询rule1状态", "method": "get" } ] }
单个命令文件可按顺序执行多个关联操作,示例如下:
{ "commands": [ { "url": "/streams", "description": "创建stream1", "method": "post", "data": { "sql": "create stream stream1 (id bigint) WITH (datasource = \"topic/temp\");" } }, { "url": "/rules", "description": "创建rule1", "method": "post", "data": { "id": "rule1", "sql": "SELECT * FROM stream1", "actions": [{"log": {}}] } }, { "url": "/rules/rule1/start", "description": "启动rule1", "method": "post" } ] }
程序处理命令文件后,会在命令文件所在目录(commandDir)生成.history文件,记录已处理的文件信息,格式如下:
[ { "name": "sample.json", // 已处理的命令文件名 "loadTime": 1594362344 // 处理时间戳(Unix时间,秒级) } ]
说明:
.history文件用于避免重复处理同一命令文件.history中对应记录或修改文件名commandDir目录需提前创建,且程序需有读写权限logPath、commandDir)若为相对路径,需相对于程序运行目录



免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429