
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
数据计算基础设施操作员微服务
Operator Service是实现Ocean Protocol https://github.com/oceanprotocol/OEPs/tree/master/12#infrastructure-orchestration 规范的微服务,负责管理工作流执行请求。通常该服务通过https://github.com/oceanprotocol/brizo%E9%9B%86%E6%88%90%EF%BC%8C%E4%BD%86%E4%B9%9F%E5%8F%AF%E7%8B%AC%E7%AB%8B%E8%B0%83%E7%94%A8%E3%80%82%E5%85%B6%E6%A0%B8%E5%BF%83%E8%81%8C%E8%B4%A3%E6%98%AF%E4%B8%8EK8s%E9%9B%86%E7%BE%A4%E5%BB%BA%E7%AB%8B%E9%80%9A%E4%BF%A1%EF%BC%8C%E5%A4%84%E7%90%86%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%9A%84%E5%85%A8%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E7%AE%A1%E7%90%86%EF%BC%8C%E4%B8%94%E4%B8%8D%E6%8F%90%E4%BE%9B%E5%AD%98%E5%82%A8%E8%83%BD%E5%8A%9B%EF%BC%8C%E6%89%80%E6%9C%89%E7%8A%B6%E6%80%81%E7%9B%B4%E6%8E%A5%E5%AD%98%E5%82%A8%E5%9C%A8K8s%E9%9B%86%E7%BE%A4%E4%B8%AD%E3%80%82
适用于Ocean Protocol生态中需要实现"数据计算"(Compute to the Data)功能的场景,特别是需要在K8s基础设施上管理算法工作流执行的场景。可作为独立微服务部署,或与Brizo代理集成,为数据提供方和算法执行方提供工作流管理能力。
Operator Service需与K8s环境建立连接以管理工作流。以下以连接AWS上的K8s集群为例说明搭建步骤。
安装AWS和K8s工具
安装AWS CLI:
bash$ sudo pip3 install awscli --upgrade $ aws --version aws-cli/1.16.225 Python/3.7.3 Linux/5.0.0-25-generic botocore/1.12.215
安装aws-iam-authenticator:
bash$ curl -o aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/linux/amd64/aws-iam-authenticator chmod +x ./aws-iam-authenticator
安装Kubectl:
bash$ curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl $ chmod +x ./kubectl $ sudo mv ./kubectl /usr/local/bin/kubectl
安装Minikube(本地K8s集群):
bashcurl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube
启动Minikube(非root用户):
bashminikube start
验证配置:
bashkubectl config view
工具详细文档:
- https://aws.amazon.com/cli/
- https://kubernetes.io/docs/tasks/tools/install-kubectl/
- https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html
- https://minikube.sigs.k8s.io/docs/start/
安装和配置PostgreSQL数据库
安装依赖(以Ubuntu为例):
bashsudo apt-get install libpq-dev
配置环境变量:
bashexport POSTGRES_USER=myuser export POSTGRES_PASSWORD=mypass export POSTGRES_HOST=localhost export POSTGRES_DB=mydb
配置管理员密钥(首次运行需初始化数据库):
bashexport ALLOWED_ADMINS=["myAdminSecret"]
运行服务
创建并激活虚拟环境:
bashvirtualenv venv source venv/bin/activate pip install -r requirements_dev.txt
启动服务:
bashexport FLASK_APP=operator_service/run.py flask run --host=0.0.0.0 --port 8050
初始化数据库(首次运行):
pythonimport requests headers = {"Admin": "myAdminSecret"} requests.post(f"{API_URL}/pgsqlinit", headers=headers)
访问Swagger API文档:
http://0.0.0.0:8050/api/v1/docs/
示例API调用:
bash$ curl -X GET "http://localhost:8050/api/v1/operator/list" -H "accept: application/json" ["9f9178dcffd34130a3158ce9ca3d15ff"]
| 环境变量 | 描述 |
|---|---|
| ALGO_POD_TIMEOUT | 算法允许运行的最大时间(秒),超时后将被终止 |
| STORAGE_EXPIRY | 作业文件输出的最大存储时间(秒) |
| POSTGRES_DB | PostgreSQL数据库名称 |
| POSTGRES_USER | PostgreSQL用户名 |
| POSTGRES_PASSWORD | PostgreSQL密码 |
| POSTGRES_HOST | PostgreSQL主机地址 |
| POSTGRES_PORT | PostgreSQL端口 |
| SIGNATURE_REQUIRED | 是否需要Brizo签名(0=不需要,1=需要) |
| ALLOWED_PROVIDERS | 允许访问端点的提供方JSON数组 |
| ALLOWED_ADMINS | 允许访问管理员路由的管理员数组 |
| OPERATOR_ADDRESS | 计算环境使用的地址(重要:对应的私钥必须在operator-engine环境中设置) |
| DEFAULT_NAMESPACE | 运行作业的命名空间 |
| X-API-KEY | 下载计算输出时添加的X-API-KEY头(用于IPFS认证) |
| CLIENT-ID | 下载计算输出时添加的CLIENT-ID头(用于IPFS认证) |
| LOG_CFG | 日志文件位置 |
| LOG_LEVEL | 日志级别 |
通过Travis执行自动化测试,使用tox和pytest框架。
使用bumpversion.sh脚本更新项目版本,通过指定{major|minor|patch}参数进行主版本、次版本或补丁版本的更新:
bash./bumpversion.sh major # 主版本更新 ./bumpversion.sh minor # 次版本更新 ./bumpversion.sh patch # 补丁版本更新
Copyright 2022 Ocean Protocol Foundation Ltd.
基于Apache License 2.0许可("许可证")授权;除非遵守许可证,否则不得使用此文件。您可以在以下地址获取许可证副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用***要求或书面同意,否则根据许可证分发的软件按"原样"分发,不提供任何明示或暗示的担保或条件。有关许可证下权限和限制的具体语言,请参见许可证。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务