Code Monkey home page Code Monkey logo

secretflow / kuscia Goto Github PK

View Code? Open in Web Editor NEW
66.0 6.0 45.0 11.67 MB

Kuscia(Kubernetes-based Secure Collaborative InfrA) is a K8s-based privacy-preserving computing task orchestration framework.

Home Page: https://www.secretflow.org.cn/docs/kuscia/latest/zh-Hans

License: Apache License 2.0

Makefile 0.11% Dockerfile 0.09% Go 91.79% Shell 4.27% Python 3.62% Starlark 0.12%
data-analysis federated-learning kubernetes machine-learning privacy-preserving secure-multiparty-computation trusted-execution-environment

kuscia's Introduction


CircleCI

简体中文English

SecretFlow is a unified framework for privacy-preserving data intelligence and machine learning. To achieve this goal, it provides:

  • An abstract device layer consists of plain devices and secret devices which encapsulate various cryptographic protocols.
  • A device flow layer modeling higher algorithms as device object flow and DAG.
  • An algorithm layer to do data analysis and machine learning with horizontal or vertical partitioned data.
  • A workflow layer that seamlessly integrates data processing, model training, and hyperparameter tuning.

Documentation

SecretFlow Related Projects

  • Kuscia: A lightweight privacy-preserving computing task orchestration framework based on K3s.
  • SCQL: A system that allows multiple distrusting parties to run joint analysis without revealing their private data.
  • SPU: A provable, measurable secure computation device, which provides computation ability while keeping your private data protected.
  • HEU: A high-performance homomorphic encryption algorithm library.
  • YACL: A C++ library that contains cryptography, network and io modules which other SecretFlow code depends on.

Install

Please check INSTALLATION.md

Deployment

Please check DEPLOYMENT.md

Learn PETs

We also provide a curated list of papers and SecretFlow's tutorials on Privacy-Enhancing Technologies (PETs).

Please check AWESOME-PETS.md

Contributing

Please check CONTRIBUTING.md

Benchmarks

Please check OVERALL_BENCHMARK.md

Disclaimer

Non-release versions of SecretFlow are prohibited from using in any production environment due to possible bugs, glitches, lack of functionality, security issues or other problems.

kuscia's People

Contributors

6fj avatar afranxi avatar anakinxc avatar beacox avatar bulletjet786 avatar chaogaofeng avatar cho-chem avatar codeporterl avatar cs1317 avatar eiji911 avatar gshilei avatar haha-zwx-ooo avatar hdkoutann avatar hulk-zhk avatar ian-huu avatar imwangyt avatar likethewindgone avatar longshan-ant avatar rayshaw001 avatar ruhengchen avatar santiago-wjq avatar tongke6 avatar tonywu6 avatar uniquemarvin avatar vancasola avatar wangzul avatar yanzhuangz avatar yujun4464 avatar yushiqie avatar zaiweiwoaini avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

kuscia's Issues

验证 Kuscia 开发文档《构建命令》的构建步骤和脚本正确性

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:验证 Kuscia 开发文档《构建命令》的构建步骤和脚本正确性
  • 技术方向:Kuscia/docs
  • 任务难度:热身🌟

详细要求

请基于 Kuscia master 验证上述文档的具体操作流程和脚本是否能够成功运行。在部署脚本的同时,也欢迎对文档内容通顺(语句与错别字)进行修正。
说明:不需要编译 Kuscia-Envoy,依赖默认的 Kuscia-Envoy 镜像即可。

能力要求

  • 了解基本 git 操作
  • 熟悉 Docker、shell
  • 对 Kuscia 有一定了解,成功运行过部分示例文档

操作指引

验证 Kuscia 《快速入门》文档,包括文档流程和 standalone.sh 脚本

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:验证 Kuscia 《快速入门》文档和脚本,包括文档流程和 standalone.sh 脚本验证,保证文档和脚本的正确性
  • 技术方向:Kuscia/docs
  • 任务难度:热身🌟

详细要求

请基于 Kuscia master 验证上述文档的具体操作流程和脚本是否能够成功运行。在部署脚本的同时,也欢迎对文档内容通顺(语句与错别字)进行修正。

能力要求

  • 了解基本 git 操作
  • 熟悉 Docker、shell
  • 对 Kuscia 有一定了解,成功运行过部分示例文档

操作指引

优化 Kusica 部署脚本输出

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:优化 Kusica 部署脚本输出
  • 技术方向:SF/Kuscia
  • 任务难度:进阶🌟🌟

详细要求

  • 功能性
    • 去除 start_standalone 脚本执行过程中的无效输出
    • 增加 start_standalone 脚本执行过程中对用户友好的输出内容
    • 优化 start_standalone 脚本执行过程中的输出文案
  • 准确性:
    • 不影响部署的核心逻辑
    • 输出文案准确易懂
  • 提交说明:关联该 ISSUE 并提交代码至 https://github.com/secretflow/kuscia/tree/main/docs/tutorial

能力要求

  • 了解基本 git 操作
  • 对 Kuscia 的部署流程有一定了解
  • 熟悉 shell script

操作说明

[特别任务]Kuscia End-to-End 网络监控指标采集

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:Kuscia End-to-End网络监控指标采集
  • 技术方向:监控报警、可观测性
  • 任务难度:挑战🌟🌟🌟

背景

在隐私计算场景中,不同节点通常是跨域部署的,我们希望能够监测两个节点之间端到端的网络质量。
为了描述清楚问题,假设有三个机构分别部署了三个自治节点 alice、bob、joke;alice 与 bob、alice 与 joke均有联合计算项目。
在 alice 这一侧,需要分别统计 alice 与 bob、alice 与 joke 的之间的网络链路的带宽、健康度指标。由于节点的入口和出口流量都会经过 Envoy,因此我们将需求转换为统计 alice 侧的 Envoy 与 bob 侧的 Envoy 之间的 tcp connections 的健康度、传输速率。

另一方面,考虑到入口流量通常经由机构网关转发到Envoy,即Envoy作为Server端时,Envoy看到的tcp链接的client side并非Remote节点的出口ip而是本节点所属机构的网关。因此我们只统计Envoy作为Client端(主动打开)的tcp链接上的指标。

How

  1. 了解 Envoy
  2. 如何知道 local 节点是哪个节点?
    在节点容器内执行curl 127.0.0.1:1054,可以看到例如下面的返回值,从而解析出namespace,即节点的DomainID。
    {"namespace":"alice"}
  3. 如何知道 local 节点连接了哪些节点?节点的入口地址是什么?
    curl 127.0.0.1:10000/config_dump从中解析出cluster_name前缀匹配${localDomainID}-to-${RemoteDomainID}-Protocol的的cluster。如下图所示,其中endpoints[i].lb_endpoints中address和port即为Remote节点域名和端口,域名可能对应多个ip。
  4. 需要统计哪些指标?
    统计包括但不限于重传超时 rto、重传率 retrans、delivery_rate、send_bps、recv_bps、total_conenctions、重传率(超过阈值)异常的Conenctions占比。
    以及envoy statistics提供的upstream_rq_rx_reset、upstream_rq_tx_reset、rq_pending_open、rq_open等。
    有些指标可能需要利用两次统计的差值来计算。
  5. 如何获取local节点与remote节点之间的tcp connections statistics?
    参考socket statistics,注意需要按照3中的Destination Address将connection statistics分组。
    以及envoy statistics,包含tcp_statistics、tls_statistics、circuit-breakers-statistics等,已经是按cluster聚合过的,需要评估下仅envoy statistics是否覆盖socket statistics能够提供的信息。

详细要求

  • 功能性:
    • 要求控制采集脚本本身的计算资源使用率,分别给出【5S、15S、30S】采集周期、[1W、5W、10W、20W、100W】Active conenctions下的Memory、CPU、NetIO的使用量的趋势图。
    • 支持采集指标项可配置,以便于增删Envoy或采集工具已经支持的指标
    • 考虑到中心化模式下,指标会从Lite节点推动到Master,需要控制推送的指标数据量,我们希望推送的指标已经是在本地聚合过后的指标;若采用socket statistics方案,需要支持sum、avg、max、min、rate等聚合函数,并支持可配置聚合函数。
    • 你可以直接基于prometheus提供的client来实现按照prometheus的格式来暴露指标。
    • 产出文档,包括脚本使用文档;指标说明文档,包括含义和使用说明。
  • 代码规范:https://github.com/uber-go/guide/blob/master/style.md
  • 提交说明:
    • 关联该 ISSUE 并先准备详细的设计方案文档,包括具体指标项和方案,请在 ISSUE 下评论提交方案,经过确认后进行开发。
    • 功能开发完成后,关联该 ISSUE 并提交代码至 https://github.com/secretflow/kuscia
    • 建议使用 go 或 python 语言开发,不建议使用 shell 语言开发。

能力要求

  • 熟悉 Kuscia、Envoy。
  • 熟悉 golang或python。

用MVP部署包,去安装部署,出现问题?

Issue Type

Bug

Source

binary

Secretflow Version

1.0

OS Platform and Distribution

centos 7.6

Python version

python 3.9

Bazel version

No response

GCC/Compiler version

No response

What happend and What you expected to happen.

这算成功还是失败?
那接下来要如何操作呢?
感觉还没分开部署的方便,有问题,还无处下手

Reproduction code to reproduce the issue.

Cluster domain route from alice to bob created successfully
Successfully copied 2.56kB to /tmp/bob.domain.csr
Successfully copied 2.56kB to flkj-kuscia-lite-alice:/home/kuscia/etc/certs/bob.domain.csr
Signature ok
subject=CN = bob
Getting CA Private Key
Successfully copied 3.07kB to /tmp/alice.ca.crt
Successfully copied 3.07kB to flkj-kuscia-master:/home/kuscia/etc/certs/alice.ca.crt
Successfully copied 2.56kB to /tmp/bob-2-alice.crt
Successfully copied 2.56kB to flkj-kuscia-master:/home/kuscia/etc/certs/bob-2-alice.crt
clusterdomainroute.kuscia.secretflow/bob-alice created
Cluster domain route from bob to alice created successfully
Found the secretflow image 'secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/secretflow-lite-anolis8:1.0.0b2' on host
Start importing image 'secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/secretflow-lite-anolis8:1.0.0b2' ...
unpacking secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/secretflow-lite-anolis8:1.0.0b2 (sha256:b13bd49275c55a4c59f34e92860f1a8462b90f861578a1879e1d0b75ee66e089)...done
Successfully imported image 'secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/secretflow-lite-anolis8:1.0.0b2' to container 'flkj-kuscia-lite-alice' ...
Found the secretflow image 'secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/secretflow-lite-anolis8:1.0.0b2' on host
Start importing image 'secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/secretflow-lite-anolis8:1.0.0b2' ...
unpacking secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/secretflow-lite-anolis8:1.0.0b2 (sha256:b13bd49275c55a4c59f34e92860f1a8462b90f861578a1879e1d0b75ee66e089)...done
Successfully imported image 'secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/secretflow-lite-anolis8:1.0.0b2' to container 'flkj-kuscia-lite-bob' ...
Unable to connect to the server: net/http: TLS handshake timeout

MVP 平台相关问题

1、MVP平台部署时创建账户秘密遗忘如何修改?是否只能够重新部署。

2、MVP平台是否可以更改默认配置例如增加节点、导入数据,是否有类似配置文件的方式?

Kuscia Command 配置加载重构

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:Kuscia Command 中加载配置文件和初始化配置的逻辑重构
  • 技术方向:节点部署
  • 任务难度:进阶🌟🌟

详细要求

能力要求

  • 了解基本 git 操作
  • 对 Kuscia 有一定了解
  • 了解 K8S 或 K3S
  • 熟悉 Golang

操作说明

Kuscia 统一数据源访问代理 DataProxy 支持通用数据源

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:Kuscia 统一数据源访问代理 DataProxy 支持通用数据源
  • 技术方向:多数据源适配、存储
  • 任务难度:进阶🌟🌟

详细要求

Kuscia 统一数据源访问代理 DataProxy 旨在为用户屏蔽异构数据源的差异,提供统一的读写接口;并支持文件上传下载的方式,将本地文件上传到 Remote 数据源,或将 Remote 数据源上的数据下载到本地文件系统。
欢迎社区开发者一起共建,支持更多的数据源类型。

能力要求

  • 了解基本 git 操作
  • 对 Kuscia 有一定了解
  • 了解 分布式文件存储
  • 熟悉 Golang

操作说明

  • 请在认领该 ISSUE 后,说明计划对接的数据源类型,请在 ISSUE 下评论提交方案,经过我们确认后进行开发。
  • Kuscia开发参考

为 Kuscia 增加集成测试:KusciaAPI 测试

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:为 Kuscia 增加集成测试:KusciaAPI 测试
  • 技术方向:集成测试
  • 任务难度:进阶🌟🌟
  • 任务期望完成时间:4-5 周

详细要求

能力要求

  • 熟悉 Docker
  • 熟悉 shell 语法
  • 熟悉 KusciaAPI

参考内容

Kuscia controllers 新增 Gc-controller 实现

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:Kuscia controllers 新增 Gc-controller 实现
  • 技术方向:任务调度、资源管理
  • 任务难度:进阶🌟🌟
  • 任务期望完成时间:4-5 周

详细要求

在 Kuscia 中有很多 Resource,例如 KusciaJob, DomainData 等。随着时间的推移,积攒的历史 Resource 会消耗 Kuscia 的存储,因此需要新增 Kuscia Gc-controller 来定时的清理无用的 Resource 。

  • 功能性:
    • 支持定时清理 KusciaJob Resource
    • 支持定时清理 DomainData Resource
  • 准确性:
    • 保证满足特定规则的无用的 Resource 成功被清理
    • 保证正常使用的 Resource 不会被清理
  • 提交说明:
  • 代码规范:https://github.com/uber-go/guide/blob/master/style.md

能力要求

  • 对 Kuscia 原理比较了解
  • 熟悉 K8s,熟悉 K8s CRD
  • 熟悉 golang

参考内容

部署MVP遇到的问题

Issue Type

Bug

Source

binary

Secretflow Version

1

OS Platform and Distribution

1

Python version

1

Bazel version

No response

GCC/Compiler version

No response

What happend and What you expected to happen.

按着官网的步骤部署,用户名和密码都设置成功,最后一步报这个错误[Error] Probe gateway in namespace 'kuscia-system' failed. Please check the log

Reproduction code to reproduce the issue.

The user and password have been set up successfully.
3b0ef4e8000576996e92bbd5a91bc441872307933235f9b7701f7fa0d0f111a5
Starting container wuyisheng-kuscia-master ...
/home/kuscia/etc/certs /home/kuscia
Generating RSA private key, 2048 bit long modulus (2 primes)
..............................+++++
..................................................................+++++
e is 65537 (0x010001)
Generating RSA private key, 2048 bit long modulus (2 primes)
.............................................+++++
....................................................+++++
e is 65537 (0x010001)
/home/kuscia
5656acee6388ca061ae2ee0fd8fe9912648fce214268877296dde011a7136b81
[Error] Probe gateway in namespace 'kuscia-system' failed. Please check the log

发现FATE作业文档疑似有误

在验证kuscia《如何运行一个 FATE 作业》教程文档时,发现文档疑似有误
#26

image
没有找到${USER}-fate-kuscia-lite-bob容器:
image

登入 Bob lite 容器,应该是:
docker exec -it ${USER}-kuscia-lite-bob bash

但是登入${USER}-kuscia-lite-bob后,执行crictl ps,并没有找到 部署 FATE 的 container:fate-deploy-bob
image

Kuscia 支持 vault 密钥托管后端

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:Kuscia 支持 vault 密钥托管后端
  • 技术方向:密钥管理
  • 任务难度:挑战🌟🌟🌟
  • 任务期望完成时间:8 周

详细要求
Kuscia 作为安全的隐私计算基础设施,需要给应用提供密钥管理的能力,在开源场景,我们选取了 vault 作为 Kuscia 密钥托管的后端之一。
查看https://github.com/secretflow/kuscia/blob/main/pkg/secretbackend/backend.go,可看到secretbackend接口说明,实现该接口,并增加单测逻辑,可参考mem-backend的实现。

  • 功能性
    • 开发 vault-backend 插件,使得 Kuscia 支持 vault 作为密钥托管的后端。
  • 准确性
    • 通过 Kuscia 密钥管理 API 可以正确的从 vault 中存取密钥。
  • 提交说明:

能力要求

  • 对 Kuscia 原理有一定了解
  • 熟悉 golang

操作说明

kuscia跑psi性能下降问题

Issue Type

Bug

Source

binary

Secretflow Version

kuscia p2p

OS Platform and Distribution

ubuntu1804

Python version

3.8.13

Bazel version

No response

GCC/Compiler version

No response

What happend and What you expected to happen.

两个SPU测试,点对点使用KKRT_PSI_2PC协议,1000万对1000万求交,500万交集的耗时:42秒。

用kuscia运行psi的时间:secretflow-task-20230712174246   8m34s

Reproduction code to reproduce the issue.

几乎是10倍的下降,什么原因呢,有没有办法提速

Kusica K3S API 白名单

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:Kuscia K3S API 白名单
  • 技术方向:网络授权
  • 任务难度:进阶🌟🌟

详细要求

能力要求

  • 了解基本 git 操作
  • 对 Kuscia 有一定了解
  • 了解 K8S 或 K3S
  • 熟悉 Golang

操作说明

  • 请将测试结果的截图贴在 ISSUE 下,包括请求白名单列表之中的API和之外的 API 的响应截图。
  • Kuscia 开发参考:Kuscia 开发指南

多节点部署

文档多机部署点对点集群
image
上面显示的部署alice和bob节点,每一方只能一个节点吗(如果是,生产环境下基本是不可用的,也不叫集群了),怎么往每一方添加节点呢

GRPC调用失败

panic: rpc error: code = Unimplemented desc = unknown service proto.JobService [recovered]
panic: rpc error: code = Unimplemented desc = unknown service proto.JobService。
winddows本地容器化部署中心节点样例。查询不到相关grpc服务,http端口正常,请问有GRPC客户端调用样例吗

:~/go/bin$ ./grpcurl -plaintext localhost:8083 list
Failed to dial target host "localhost:8083": context deadline exceeded,本地和虚拟机上使用grpcurl也访问不到服务列表

为 Kuscia 新增《如何使用 Kuscia API 运行一个 SecretFlow 作业》教程文档

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:为 Kuscia 新增《如何使用 Kuscia API 运行一个 SecretFlow 作业》教程文档
  • 技术方向:Kuscia/docs
  • 任务难度:进阶🌟🌟

详细要求

在文档 《如何运行一个 SecretFlow 作业》 中介绍了如何使用 K8s API 来执行作业,在 K8s API 的基础上,Kuscia 还封装了一层 Kuscia API 。希望你可以参考 《如何运行一个 SecretFlow 作业》 文档的内容新增一篇 “如何使用 Kuscia API 运行一个 SecretFlow 作业” 的教程文档,包括以下部分:

  • 介绍如何使用 Kuscia API 发起创建作业(KusciaJob)的请求
  • 介绍如何使用 Kuscia API 发起查询作业(KusciaJob)详细状态的请求
  • 介绍如何使用 Kuscia API 发起查询作业中某个任务(KusciaTask)的详细状态的请求
  • 介绍如何使用 Kuscia API 发起删除作业(KusciaJob)的请求

同时需要保证内容正确性,包括:

  • 在 Kuscia 根目录使用 make docs 命令编译成功
  • 用浏览器打开 docs/_build/html/index.html 查看新增的文档渲染正常
  • 按照文档中的步骤可以成功运行一个 Secretflow 作业

其他说明:

能力要求

  • 了解基本 git 操作
  • 了解 RESTful API
  • 对 Kuscia 有一定了解

操作说明

  • 参考内容:KusciaJob 接口文档参考
  • Kuscia API 服务部署在 Master 容器中,默认监听 8082 端口
  • 访问 Kuscia API 服务需要使用 /home/kuscia/etc/certs 目录中的 MTLS 证书: ca.crt,kusciaapi-client.key,kusciaapi-client.crt

kuscia多机部署手册

你好,之前有多机部署的手册,现在找不到了,请问是在更新吗,什么时候可以提供

Kuscia ClusterDomainRoute 的 MTLS 模式增加Ready 状态

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:ClusterDomainRoute的 MTLS 模式增加 Ready 状态
  • 技术方向:节点管理、网络授权
  • 任务难度:进阶🌟🌟
  • 任务时间:4-5 周

详细要求

  • 功能性:ClusterDomainRoute 的 MTLS 模式需要通过判断节点的 DomainRoute 模块上报的 status 来判断 MTLS 模式是否 Ready。
  • 正确性:
    • 如果是所有在线的被授权方节点都和授权方节点建立了正常的 MTLS 链接,则状态应该为 Ready。
    • 有一个及以上在线的被授权方节点无法和授权方节点建立正常的 MTLS 链接,则状态应该为NotReady。
  • 代码规范:https://github.com/uber-go/guide/blob/master/style.md
  • 提交说明:
  • 能力要求:
    • 了解基本 git 操作
    • 对 Kuscia 有一定了解
    • 了解 K8S 或 K3S
    • 熟悉 Golang

操作说明

Kuscia 互联互通传输模块支持 GRPC 协议

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:Kuscia 传输模块 Transport 支持 GRPC 协议开发任务
  • 技术方向:互联互通、通信传输
  • 任务难度:进阶🌟🌟

详细要求

能力要求

  • 熟悉 Golang、GRPC

验证 Kuscia《如何运行一个secertflow任务》教程文档,包括文档流程和 create_example_job.sh 脚本

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:验证 Kuscia《如何运行一个secertflow任务》教程文档,包括验证文档流程和create_example_job.sh 脚本,保证文档和脚本的正确性
  • 技术方向:Kuscia/docs
  • 任务难度:热身🌟

详细要求

请基于 Kuscia master 验证上述文档的具体操作流程和脚本是否能够成功运行。在部署脚本的同时,也欢迎对文档内容通顺(语句与错别字)进行修正。

能力要求

  • 了解基本 git 操作
  • 熟悉 Docker、shell
  • 对 Kuscia 有一定了解,成功运行过部分示例文档

操作指引

测试任务执行失败

apiVersion: kuscia.secretflow/v1alpha1
kind: KusciaTask
metadata:
creationTimestamp: "2023-07-27T05:40:07Z"
generation: 1
labels:
kuscia.secretflow/controller: kuscia-job
kuscia.secretflow/interconn-protocol-type: kuscia
kuscia.secretflow/job-id: secretflow-task-20230727134002
kuscia.secretflow/self-cluster-as-initiator: "true"
kuscia.secretflow/task-alias: single-psi
name: secretflow-task-20230727134002-single-psi
ownerReferences:

  • apiVersion: kuscia.secretflow/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: KusciaJob
    name: secretflow-task-20230727134002
    uid: 2784e949-1042-46cf-892e-088427b65185
    resourceVersion: "36218"
    uid: 7bfaa775-6ffd-4d22-99f5-5a70504be60e
    spec:
    initiator: alice
    parties:
  • appImageRef: secretflow-image
    domainID: alice
    template:
    spec: {}
  • appImageRef: secretflow-image
    domainID: bob
    template:
    spec: {}
    scheduleConfig: {}
    taskInputConfig: '{"sf_datasource_config":{"bob":{"id":"default-data-source"},"alice":{"id":"default-data-source"}},"sf_cluster_desc":{"parties":["alice","bob"],"devices":[{"name":"spu","type":"spu","parties":["alice","bob"],"config":"{"runtime_config":{"protocol":"REF2K","field":"FM64"},"link_desc":{"connect_retry_times":60,"connect_retry_interval_ms":1000,"brpc_channel_protocol":"http","brpc_channel_connection_type":"pooled","recv_timeout_ms":1200000,"http_timeout_ms":1200000}}"},{"name":"heu","type":"heu","parties":["alice","bob"],"config":"{"mode":
    "PHEU", "schema": "paillier", "key_size": 2048}"}]},"sf_node_eval_param":{"domain":"preprocessing","name":"psi","version":"0.0.1","attr_paths":["input/receiver_input/key","input/sender_input/key","protocol","precheck_input","bucket_size","curve_type"],"attrs":[{"ss":["id1"]},{"ss":["id2"]},{"s":"ECDH_PSI_2PC"},{"b":true},{"i64":"1048576"},{"s":"CURVE_FOURQ"}],"inputs":[{"type":"sf.table.individual","meta":{"@type":"type.googleapis.com/secretflow.component.IndividualTable","schema":{"ids":["id1"],"features":["age","education","default","balance","housing","loan","day","duration","campaign","pdays","previous","job_blue-collar","job_entrepreneur","job_housemaid","job_management","job_retired","job_self-employed","job_services","job_student","job_technician","job_unemployed","marital_divorced","marital_married","marital_single"],"id_types":["str"],"feature_types":["f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32"]},"num_lines":"-1"},"data_refs":[{"uri":"alice.csv","party":"alice","format":"csv"}]},{"type":"sf.table.individual","meta":{"@type":"type.googleapis.com/secretflow.component.IndividualTable","schema":{"ids":["id2"],"features":["contact_cellular","contact_telephone","contact_unknown","month_apr","month_aug","month_dec","month_feb","month_jan","month_jul","month_jun","month_mar","month_may","month_nov","month_oct","month_sep","poutcome_failure","poutcome_other","poutcome_success","poutcome_unknown"],"labels":["y"],"id_types":["str"],"feature_types":["f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32","f32"],"label_types":["i32"]},"num_lines":"-1"},"data_refs":[{"uri":"bob.csv","party":"bob","format":"csv"}]}]},"sf_output_uris":["psi-output.csv"],"sf_output_ids":["psi-output"]}'
    status:
    completionTime: "2023-07-27T06:01:24Z"
    conditions:
  • lastTransitionTime: "2023-07-27T05:40:07Z"
    status: "True"
    type: ResourceCreated
  • lastTransitionTime: "2023-07-27T06:01:19Z"
    status: "True"
    type: Running
  • lastTransitionTime: "2023-07-27T06:01:24Z"
    status: "False"
    type: Success
    lastReconcileTime: "2023-07-27T06:01:24Z"
    message: The remaining non-failed parties counts 1 is less than the task success
    threshold 2
    partyTaskStatus:
  • domainID: alice
    message: Kuscia task failed
    phase: Failed
  • domainID: bob
    phase: Failed
    phase: Failed
    podStatuses:
    alice/secretflow-task-20230727134002-single-psi-0:
    namespace: alice
    nodeName: root-kuscia-autonomy-alice
    podName: secretflow-task-20230727134002-single-psi-0
    podPhase: Failed
    bob/secretflow-task-20230727134002-single-psi-0:
    namespace: bob
    podName: secretflow-task-20230727134002-single-psi-0
    podPhase: Failed
    reason: Error
    terminationLog: 'container[secretflow] terminated state reason "Error", message:
    "ds(absl::Now() - gcs_last_alive_time_) < ::RayConfig::instance().gcs_rpc_server_reconnect_timeout_s()
    Failed to connect to GCS within 60 seconds\n*** StackTrace Information ***\n/usr/local/lib/python3.8/site-packages/ray/_raylet.so(+0xcf00ea)
    [0x7fea412a90ea] ray::operator<<()\n/usr/local/lib/python3.8/site-packages/ray/_raylet.so(+0xcf1bd2)
    [0x7fea412aabd2] ray::SpdLogMessage::Flush()\n/usr/local/lib/python3.8/site-packages/ray/_raylet.so(_ZN3ray6RayLogD1Ev+0x37)
    [0x7fea412aaee7] ray::RayLog::~RayLog()\n/usr/local/lib/python3.8/site-packages/ray/_raylet.so(+0x746a2d)
    [0x7fea40cffa2d] ray::rpc::GcsRpcClient::CheckChannelStatus()\n/usr/local/lib/python3.8/site-packages/ray/_raylet.so(_ZN5boost4asio6detail12wait_handlerIZN3ray3rpc12GcsRpcClient15SetupCheckTimerEvEUlNS_6system10error_codeEE_NS0_9execution12any_executorIJNS9_12context_as_tIRNS0_17execution_contextEEENS9_6detail8blocking7never_tILi0EEENS9_11prefer_onlyINSG_10possibly_tILi0EEEEENSJ_INSF_16outstanding_work9tracked_tILi0EEEEENSJ_INSN_11untracked_tILi0EEEEENSJ_INSF_12relationship6fork_tILi0EEEEENSJ_INSU_14continuation_tILi0EEEEEEEEE11do_completeEPvPNS1_19scheduler_operationERKS7_m+0x303)
    [0x7fea40cffed3] boost::asio::detail::wait_handler<>::do_complete()\n/usr/local/lib/python3.8/site-packages/ray/_raylet.so(+0xd00d7b)
    [0x7fea412b9d7b] boost::asio::detail::scheduler::do_run_one()\n/usr/local/lib/python3.8/site-packages/ray/_raylet.so(+0xd01fb1)
    [0x7fea412bafb1] boost::asio::detail::scheduler::run()\n/usr/local/lib/python3.8/site-packages/ray/_raylet.so(+0xd02220)
    [0x7fea412bb220] boost::asio::io_context::run()\n/usr/local/lib/python3.8/site-packages/ray/_raylet.so(+0x56abf8)
    [0x7fea40b23bf8] std::thread::_State_impl<>::_M_run()\n/usr/local/lib/python3.8/site-packages/ray/_raylet.so(+0xe35fd0)
    [0x7fea413eefd0] execute_native_thread_routine\n/lib64/libpthread.so.0(+0x81cf)
    [0x7fea428081cf] start_thread\n/lib64/libc.so.6(clone+0x43) [0x7fea41839dd3]
    clone\n\n''\n2023-07-27 05:49:56,646|bob|CRITICAL|secretflow|entry.py:start_ray:68|
    This process will exit now!\n"'
    startTime: "2023-07-27T05:40:07Z"

为 Kuscia 增加集成测试:复杂任务场景

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:为 Kuscia 增加集成测试:复杂任务场景
  • 技术方向:集成测试
  • 任务难度:进阶🌟🌟
  • 任务期望完成时间:8 周

详细要求

为了确保 Kuscia 的健壮性,我们需要尽可能集成测试各种复杂情况下的 KusciaJob 都能表现出正确的行为。下面是已经想到的场景,你也可以增加更多的场景。

  • 功能性:
    • 对于新创建的节点,KusciaJob 应该能够正确的和其进行交互并完成任务。
    • 删除并重新创建某个节点的 DomainRoute,KusciaJob应该能够正确的和其进行交互并完成任务。
    • 对于导致单方失败的 KusciaJob,应该正确的进入到 Failed 状态,并释放其持有的资源。导致单方失败的 KusciaJob 可以通过类似删除某方的数据文件等形式构造。
    • 你可以添加你想到的其它场景。
    • 将该测试集继承到 Kuscia集成测试脚本逻辑
  • 正确性:
    • 基于最新的镜像,参考 Makefile 运行集成测试的所有测试集,无失败用例。
  • 代码规范:https://github.com/uber-go/guide/blob/master/style.md
  • 提交说明:
    • 关联该 ISSUE 并先准备详细的设计方案文档,请在 ISSUE 下评论提交方案,经过我们确认后进行开发。
    • 功能开发完成后,关联该 ISSUE 并提交代码至 https://github.com/secretflow/kuscia

能力要求

  • 熟悉 Docker
  • 熟悉 shell 语法

参考内容

点对点模式部署运行报错

根据操作文档进行操作

点对点组网模式#

启动集群,会拉起两个 docker 容器,分别表示 Autonomy 节点 alice 和 bob。

./start_standalone.sh p2p

登入 alice 节点容器(或 bob 节点容器)。

docker exec -it ${USER}-kuscia-autonomy-alice bash

创建并启动作业(两方 PSI 任务)。

scripts/user/create_example_job.sh

查看作业状态。

kubectl get kj

image

docker logs root-kuscia-autonomy-bob
2023-07-17 11:19:32.102 INFO status/status_manager.go:634 Status for pod "secretflow-task-20230717111921-single-psi-0_bob(5826f340-a6ee-4854-bded-47f0469804a8)" updated successfully, statusVersion=4, status={Failed [{Initialized True 0001-01-01 00:00:00 +0000 UTC 2023-07-17 11:19:24 +0800 CST } {Ready False 0001-01-01 00:00:00 +0000 UTC 2023-07-17 11:19:31 +0800 CST PodFailed } {ContainersReady False 0001-01-01 00:00:00 +0000 UTC 2023-07-17 11:19:31 +0800 CST PodFailed } {PodScheduled True 0001-01-01 00:00:00 +0000 UTC 2023-07-17 11:19:24 +0800 CST }] 172.18.0.3 [] 2023-07-17 11:19:24 +0800 CST [] [{secretflow {nil nil &ContainerStateTerminated{ExitCode:1,Signal:0,Reason:Error,Message:entry.py", line 255, in
main()
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1157, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/secretflow/kuscia/entry.py", line 237, in main
sf_cluster_config = get_sf_cluster_config(task_conf, datamesh_addr, datasource_id)
File "/usr/local/lib/python3.8/site-packages/secretflow/kuscia/sf_config.py", line 142, in get_sf_cluster_config
return compose_sf_cluster_config(
File "/usr/local/lib/python3.8/site-packages/secretflow/kuscia/sf_config.py", line 86, in compose_sf_cluster_config
domain_data_source = get_domain_data_source(stub, datasource_id)
File "/usr/local/lib/python3.8/site-packages/secretflow/kuscia/datamesh.py", line 94, in get_domain_data_source
ret = stub.QueryDomainDataSource(QueryDomainDataSourceRequest(datasource_id=id))
File "/usr/local/lib/python3.8/site-packages/grpc/_channel.py", line 946, in call
return _end_unary_response_blocking(state, call, False, None)
File "/usr/local/lib/python3.8/site-packages/grpc/_channel.py", line 849, in _end_unary_response_blocking
raise _InactiveRpcError(state)
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.UNAVAILABLE
details = "DNS resolution failed for datamesh:8071: C-ares status is not ARES_SUCCESS qtype=A name=datamesh is_balancer=0: Domain name not found"
debug_error_string = "UNKNOWN:DNS resolution failed for datamesh:8071: C-ares status is not ARES_SUCCESS qtype=A name=datamesh is_balancer=0: Domain name not found {created_time:"2023-07-17T03:19:31.226849931+00:00", grpc_status:14}"

KusciaAPI/KusciaJob 支持指定任务应用容器资源(CPU/Memory)容量开发任务

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:KusciaAPI/KusciaJob 支持指定任务应用容器资源(CPU/Memory)容量开发任务
  • 技术方向:任务调度
  • 任务难度:进阶🌟🌟
  • 任务期望完成时间:4-5 周

详细要求

  • 功能性:
    • KusciaJob 支持 PartyTemplate 字段,通过该字段,在创建 KusciaJob 时能够自定义任务应用容器的资源(CPU/Memory)容量大小
    • KusciaAPI Job接口支持配置任务应用容器的资源(CPU/Memory)容量大小
  • 正确性:代码开发完成后,基于最新的代码构建镜像,然后使用构建的镜像部署 Kuscia,通过 KusciaAPI 下发 Job,在 Kuscia 中通过命令 kubectl get kj/kubectl get kt/kubectl get pod -n {namespace} 可以看到自定义容器资源大小生效,并且作业能够成功运行完成
  • 代码规范:https://github.com/uber-go/guide/blob/master/style.md
  • 提交说明:
    • 关联该 ISSUE 并先准备和提交接口改动/类型修改等方案文档,请在 ISSUE 下评论提交方案,经过我们确认后进行开发。
    • 功能开发完成后,关联该 ISSUE 并提交代码至 https://github.com/secretflow/kuscia
  • 提示:
    • 在修改完 kusciajob_types.go 后,在 kuscia 根目录下执行以下命令可以更新K8s Clients代码和更新后的CRD
      • make gen-clientset
      • make manifests
    • 在修改完 KusciaJob Job 接口 job.proto 后,在 kuscia 根目录下执行以下命令可以生成Golang对应的pb代码
      • make gen-proto-code
    • 基于最新的代码构建镜像
      • make image

能力要求

  • 熟悉 Golang、Protobuf
  • 熟悉 K8s Controller 机制
  • 熟悉 K8s CRD 概念

参考内容

验证 Kuscia《如何运行一个互联互通银联 BFIA 协议作业》教程文档,包括文档流程和 bfia 脚本

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

详细要求

请基于 Kuscia master 验证上述文档的具体操作流程和脚本是否能够成功运行。在部署脚本的同时,也欢迎对文档内容通顺(语句与错别字)进行修正。

能力要求

  • 了解基本 git 操作
  • 熟悉 Docker、shell
  • 对 Kuscia 有一定了解,成功运行过部分示例文档

操作指引

为 Kuscia 增加集成测试:平台示例任务

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:为 Kuscia 增加集成测试:平台示例任务
  • 技术方向:集成测试
  • 任务难度:进阶🌟🌟
  • 任务期望完成时间:4-5 周

详细要求

Kuscia 平台 MVP 产品目前已经提供了部署包,在 MVP 产品中,提供了两个示例任务:联合圈人和金融风控。请体验 Secretpad 产品,并将联合圈人和金融风控这两个示例任务作为 KusciaJob 用例添加进测试用例

  • 功能性:
    • 参考 KusciaAPI 接入文档,为 KusciaAPI文档 中相关接口提供集成测试集。关于平台的示例任务的 KusciaJob,你可以通过在 MVP 平台上提交任务,并通过 kubectl 获取到 KusciaJob 的示例内容,你可能需要做些调整才能集成到测试中。
    • 将该测试集继承到 Kuscia集成测试脚本逻辑
  • 正确性:
    • 基于最新的镜像,参考 Makefile 运行集成测试的所有测试集,无失败用例。
  • 代码规范:https://github.com/uber-go/guide/blob/master/style.md
  • 提交说明:
    • 关联该 ISSUE 并先准备详细的设计方案文档,请在 ISSUE 下评论提交方案,经过我们确认后进行开发。
    • 功能开发完成后,关联该 ISSUE 并提交代码至 https://github.com/secretflow/kuscia

能力要求

  • 熟悉 Docker
  • 熟悉 shell 语法

参考内容

为 Kuscia 增加 stop 和 uninstall 脚本

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:为 Kuscia 增加 stop 和 uninstall 脚本
  • 技术方向:节点部署
  • 任务难度:进阶🌟🌟

详细要求

  • 功能性:
  • 为 Kuscia 增加 stop 脚本,将已运行的 kuscia 容器停止。需要支持可以停止不同模式部署的容器,也需要支持停止所有的 kuscia 容器。
  • 为 Kuscia 增加 uninstall 脚本,将已停止的 kuscia 容器清除。需要支持可以清除不同模式部署的容器和 volume 等,也需要支持一键清除所有的 kuscia 容器、volume 和 network。
  • 正确性:
    • uninstall 脚本只能清除已停止的 kuscia 容器。如果容器没有被手动停止,需要停止清除逻辑并提示用户先停止容器。
  • 代码规范:https://github.com/uber-go/guide/blob/master/style.md
  • 提交说明:
    • 关联该 ISSUE 并先准备详细的设计方案文档,请在 ISSUE 下评论提交方案,经过确认后进行开发。
    • 功能开发完成后,关联该 ISSUE 并提交代码至 https://github.com/secretflow/kuscia

能力要求

  • 熟悉 docker
  • 熟悉 shell 语法

操作说明

KusciaTask 任务支持全链路时间观测开发任务

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:KusciaTask 任务支持全链路时间观测开发任务
  • 技术方向:可观测性
  • 任务难度:进阶🌟🌟

详细要求:

  • 功能性:
    • KusciaTask Controller 支持创建的任务 Pod 资源时间观测,包括 Pod 调度到节点上的时间戳/节点拉起 Pod 容器的时间戳
    • KusciaTask Controller 支持创建的任务 Service 资源时间观测,包括节点 Gateway 处理完 Service(Endpoints) 的时间戳
  • 正确性:代码开发完成后,基于最新的代码构建镜像,然后使用构建的镜像部署 Kuscia,然后下发 KusciaJob 作业,观察 KusciaJob 作业下的 KusciaTask 任务所包含的观测到的 Pod 资源时间戳和 Service 资源时间戳是否正确
  • 代码规范:https://github.com/uber-go/guide/blob/master/style.md
  • 提交说明:
    • 关联该 ISSUE 并先准备详细的设计方案文档,请在 ISSUE 下评论提交方案,经过我们确认后进行开发。
    • 功能开发完成后,关联该 ISSUE 并提交代码至 https://github.com/secretflow/kuscia
  • 提示:
    • 在 KusciaTask CRD 中新增 Pod 和 Service 的观测性时间指标
    • 在修改完 kusciatask_types.go 后,在 Kuscia 根目录下执行以下命令可以更新 K8s Clients 代码和更新后的 CRD
      • make gen-clientset
      • make manifests
    • 基于最新的代码构建镜像
      • make image

能力要求

  • 熟悉 Golang、Protobuf
  • 熟悉 K8s Controller 机制
  • 熟悉 K8s CRD 概念

操作说明

验证 Kuscia 《如何运行一个 FATE 作业》教程文档,包括文档流程和 FATE 脚本

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~
若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:验证 Kuscia 《如何运行一个 FATE 作业》教程文档,包括文档流程和 FATE 脚本
  • 技术方向:Kuscia/docs
  • 任务难度:热身🌟

详细要求

请基于 Kuscia master 验证上述文档的具体操作流程和脚本是否能够成功运行。在部署脚本的同时,也欢迎对文档内容通顺(语句与错别字)进行修正。

能力要求

  • 了解基本 git 操作
  • 熟悉 Docker、shell
  • 对 Kuscia、FATE 有一定了解

操作指引

你的Ubuntu版本是哪个? 以及是用的WSL方式?

          你的Ubuntu版本是哪个? 以及是用的WSL方式?

还有就是你并没有在docker中跑kuscia,直接使用的Ubuntu本地编译kuscia,然后直接执行的模式是吗?

Originally posted by @longshan-ant in #104 (comment)

是的,我在Ubuntu本地编译执行的,版本是Ubuntu 22.04.3 ,是源码在编辑器内编译执行的。
我现在碰到了这个情况:var/logs/envoy/envoy.log
[2023-09-07 15:50:57.912][5485][info][config] [external/envoy/source/extensions/listener_managers/listener_manager/listener_manager_impl.cc:852] all dependencies initialized. starting workers
[2023-09-07 15:50:57.965][5485][warning][config] [external/envoy/source/common/config/grpc_stream.h:162] StreamRoutes gRPC config stream to xds-cluster closed: 13,
[2023-09-07 15:50:57.965][5485][warning][config] [external/envoy/source/common/config/grpc_stream.h:162] StreamRoutes gRPC config stream to xds-cluster closed: 13,
[2023-09-07 15:50:57.965][5485][warning][config] [external/envoy/source/common/config/grpc_stream.h:162] StreamListeners gRPC config stream to xds-cluster closed: 13,
[2023-09-07 15:50:57.965][5485][warning][config] [external/envoy/source/common/config/grpc_stream.h:162] StreamClusters gRPC config stream to xds-cluster closed: 13,
[2023-09-07 15:50:57.970][5485][warning][main] [external/envoy/source/server/server.cc:854] caught ENVOY_SIGTERM
[2023-09-07 15:50:57.970][5485][info][main] [external/envoy/source/server/server.cc:985] shutting down server instance
[2023-09-07 15:50:57.970][5485][info][main] [external/envoy/source/server/server.cc:920] main dispatch loop exited
[2023-09-07 15:50:57.971][5485][info][main] [external/envoy/source/server/server.cc:972] exiting

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.